FIX May 17, 2026 10 min read

Fix VS Code AI Extension Conflicts: Tested Solutions for Keybinding, Autocomplete, and Performance Issues

TL;DR AI extensions conflict when multiple providers fight for the same autocomplete, inline suggestion, or keybinding slots. Fix by disabling duplicate providers, resolving keybinding collisions, or isolating extensions into separate…

by Bugi 10 min
TL;DR

  • AI extensions conflict when multiple providers fight for the same autocomplete, inline suggestion, or keybinding slots.
  • Fix by disabling duplicate providers, resolving keybinding collisions, or isolating extensions into separate VS Code profiles.
  • Performance issues from concurrent AI extensions compound — disable what you’re not actively using.

Overview

Running multiple AI coding extensions in VS Code — GitHub Copilot, Codeium, Tabnine, Continue, Cursor-style plugins, Amazon Q — causes predictable failures. Duplicate inline suggestions overlay each other. Keybindings stop responding. CPU usage spikes as competing language servers process the same keystrokes. This article covers the most common conflict patterns and provides tested fixes for each.

What Causes This Error

VS Code’s extension architecture allows only one inline completion provider to display at a time. When multiple AI extensions register as InlineCompletionItemProvider, the editor must arbitrate. The result: suggestions flicker, disappear, or show the wrong provider’s output.

Common symptoms:

[Extension Host] Inline completion provider from 'GitHub.copilot' is already registered
Keybinding conflict: Tab is bound to multiple commands (copilot.acceptSuggestion, codeium.acceptSuggestion)
[Error] Extension host terminated unexpectedly. Reason: out of memory

Root causes fall into three categories:

Provider collision — Two extensions both register for inline completions. VS Code picks one semi-randomly per keystroke. You see flickering or missing suggestions.

Keybinding overlapTab, Escape, Ctrl+Enter, and Alt+] are overloaded by multiple AI tools. The wrong handler fires, or none does.

Resource exhaustion — Each AI extension spawns its own language server process, sends context to its API on every keystroke (or debounced interval), and holds state in memory. Three concurrent AI extensions can easily consume 2-4 GB of extension host memory.

Danger
Never resolve conflicts by modifying files inside ~/.vscode/extensions/ directly. Updates will overwrite your changes silently.

Solution 1: Disable Competing Inline Completion Providers

The most reliable fix. Keep one AI autocomplete provider active; disable the rest at the settings level (not uninstall — you may want them later).

Open VS Code settings JSON (Ctrl + Shift + P → “Preferences: Open User Settings (JSON)”) and add:

{
  "editor.inlineSuggest.enabled": true,
  "github.copilot.enable": {
    "*": true
  },
  "codeium.enableConfig": {
    "*": false
  },
  "tabnine.experimentalAutoImports": false,
  "tabnine.disable": true
}

Replace the enabled/disabled extensions based on which provider you want active.

1
Identify active AI extensions
Run code --list-extensions | grep -iE "copilot|codeium|tabnine|continue|amazon" in terminal.
2
Disable all but one via settings
Use extension-specific disable flags in settings.json — not the Extensions sidebar toggle.
3
Reload the window
Ctrl + Shift + P → “Developer: Reload Window” to restart extension host.

Why settings-level disable instead of the GUI toggle: the Extensions sidebar “Disable” button sometimes leaves event listeners registered until the next full restart. The settings flag prevents the provider from registering at startup.

Solution 2: Resolve Keybinding Conflicts

When Tab accepts the wrong suggestion or does nothing, the keybinding resolver is hitting a conflict.

Keyboard Shortcuts

$ Ctrl+Shift+P → "Open Keyboard Shortcuts (JSON)"
// Shows all user keybinding overrides

Diagnose with the built-in conflict detector: Ctrl + K, Ctrl + S → type “Tab” in the search → look for entries with a ⚠️ conflict icon.

Add explicit when clauses to isolate each extension’s bindings in keybindings.json:

[
  {
    "key": "tab",
    "command": "github.copilot.acceptSuggestion",
    "when": "github.copilot.inlineSuggestionVisible && !codeium.inlineSuggestionVisible"
  },
  {
    "key": "tab",
    "command": "codeium.acceptSuggestion",
    "when": "codeium.inlineSuggestionVisible && !github.copilot.inlineSuggestionVisible"
  },
  {
    "key": "tab",
    "command": "acceptSelectedSuggestion",
    "when": "suggestWidgetVisible"
  }
]

This ensures Tab routes to the correct handler based on which provider is actually showing a suggestion.

Tip
Use Alt+] / Alt+[ for one provider and Ctrl+Alt+] / Ctrl+Alt+[ for the other to cycle suggestions without collision.

Solution 3: Use VS Code Profiles to Isolate Extensions

VS Code Profiles (stable since v1.75) let you maintain separate extension sets. Create one profile per AI tool:

# Create profiles from command line
code --profile "Copilot" --install-extension GitHub.copilot
code --profile "Codeium" --install-extension Codeium.codeium

Or via UI: Ctrl + Shift + P → “Profiles: Create Profile” → select only the extensions you want active.

Switch between profiles via the gear icon in the bottom-left Activity Bar or with:

Ctrl+Shift+P → "Profiles: Switch Profile"

This eliminates conflicts entirely because only one AI extension loads per profile. Trade-off: you lose the ability to compare suggestions side-by-side.

Takeaway

Profiles are the cleanest solution when you use different AI tools for different projects or languages.

Solution 4: Fix Extension Host Memory Crashes

If your extension host crashes with OOM errors, AI extensions are likely the cause. Each one buffers file context and maintains WebSocket/HTTP connections.

Check extension host memory usage:

Ctrl+Shift+P → "Developer: Show Running Extensions"

Sort by “Activation Time” and “Memory” columns. AI extensions typically show 200-800 MB each.

Mitigations:

{
  "extensions.experimental.affinity": {
    "GitHub.copilot": 1,
    "Codeium.codeium": 2
  }
}

The affinity setting runs extensions in separate extension host processes. This prevents one extension’s crash from killing others, but increases total memory usage. Only use this if you need both extensions active simultaneously.

For memory reduction without disabling extensions:

{
  "github.copilot.advanced": {
    "debounceDelay": 500
  },
  "codeium.enableSearch": false,
  "tabnine.maxFileSize": 1024
}

Increasing debounce delay reduces API calls. Disabling non-essential sub-features (search, chat, indexing) reclaims memory.

Warning
The extensions.experimental.affinity setting is experimental and may be removed or renamed in future VS Code versions.

Solution 5: Disable AI Extensions per Workspace

For projects where you only want one specific AI tool (e.g., internal codebases that require Amazon Q, open-source work with Copilot):

Create .vscode/extensions.json in your project root:

{
  "recommendations": ["GitHub.copilot"],
  "unwantedRecommendations": ["Codeium.codeium", "TabNine.tabnine"]
}

Then in .vscode/settings.json:

{
  "codeium.enableConfig": {
    "*": false
  }
}

This disables conflicting extensions at the workspace level. Commit .vscode/extensions.json to share the configuration with your team.

Solution 6: Reset Extension State When Nothing Else Works

Nuclear option for corrupted extension state causing persistent conflicts after uninstall/reinstall cycles:

# Close VS Code first
# Linux/macOS
rm -rf ~/.vscode/extensions/github.copilot-*
rm -rf ~/.config/Code/User/globalStorage/github.copilot

# Windows (PowerShell)
Remove-Item -Recurse "$env:USERPROFILE\.vscode\extensions\github.copilot-*"
Remove-Item -Recurse "$env:APPDATA\Code\User\globalStorage\github.copilot"

Then reinstall the extension from the marketplace. This clears cached tokens, stale LSP state, and corrupted completion caches.

Danger
This deletes extension authentication state. You’ll need to re-authenticate with GitHub, Codeium, etc. after clearing.

Still Not Working?

If conflicts persist after trying these solutions:

  • VS Code Issue Tracker — Search for open issues with your specific extension combination at github.com/microsoft/vscode/issues
  • Extension-specific repos — File issues on the conflicting extension’s GitHub repository. Include output from “Developer: Show Running Extensions”
  • VS Code Insiders — Some conflict resolutions ship to Insiders first. Test with code-insiders if you’re on Stable
  • Extension BisectCtrl + Shift + P → “Start Extension Bisect” systematically identifies which extension causes the failure

FAQ

Can I run GitHub Copilot and Codeium at the same time?
Technically yes, but only one can provide inline suggestions at a time. You can configure one for inline completions and the other for chat-only mode. In Codeium settings, disable inline suggestions while keeping the chat panel active. This avoids provider collision while retaining access to both tools.
Why does Tab stop working when I have multiple AI extensions?
Multiple extensions bind to Tab with overlapping when clauses. VS Code’s keybinding resolver can’t determine which handler to call, so it falls through to the default Tab (insert character) behavior. Fix by adding explicit when conditions to your keybindings.json that check provider-specific context keys.
Do AI extension conflicts cause VS Code to crash?
Yes. Each AI extension runs in the shared extension host process by default. If one extension leaks memory or enters an infinite loop processing completions, it can crash the entire extension host, disabling all extensions until restart. Use the extensions.experimental.affinity setting to isolate high-risk extensions into separate processes.
How do I check which AI extension is causing high CPU usage?
Open “Developer: Show Running Extensions” from the Command Palette. The list shows activation time and can be sorted. For real-time CPU monitoring, open the Process Explorer via “Developer: Open Process Explorer” — it shows per-process CPU and memory usage for each extension host.
Will VS Code Profiles sync across devices?
Yes, if you enable Settings Sync. Each profile syncs independently, so your “Copilot” profile on one machine will have the same extensions and settings on another. Create profiles via the Command Palette and toggle sync per-profile in the Profiles management view.
Is there a way to automatically switch AI extensions based on the project?
Use workspace-level settings in .vscode/settings.json to disable specific extensions per project. Combined with VS Code Profiles associated with folders (Settings → Profile associations), you can auto-activate the correct AI tool when opening a project folder.
Do AI extensions conflict with standard IntelliSense?
They can. AI inline suggestions and IntelliSense completions occupy different UI layers — inline ghost text vs. the suggestion widget dropdown. However, some AI extensions also register as completion providers in the suggestion widget, which can push language-server results lower in the list. Set "editor.suggest.showInlineDetails": true to distinguish sources in the widget.
Can I run GitHub Copilot and Codeium at the same time?
Technically yes, but only one can provide inline suggestions at a time. You can configure one for inline completions and the other for chat-only mode. In Codeium settings, disable inline suggestions while keeping the chat panel active. This avoids provider collision while retaining access to both tools.
Why does Tab stop working when I have multiple AI extensions?
Multiple extensions bind to Tab with overlapping when clauses. VS Code’s keybinding resolver can’t determine which handler to call, so it falls through to the default Tab (insert character) behavior. Fix by adding explicit when conditions to your keybindings.json that check provider-specific context keys.
Do AI extension conflicts cause VS Code to crash?
Yes. Each AI extension runs in the shared extension host process by default. If one extension leaks memory or enters an infinite loop processing completions, it can crash the entire extension host, disabling all extensions until restart. Use the extensions.experimental.affinity setting to isolate high-risk extensions into separate processes.
How do I check which AI extension is causing high CPU usage?
Open Developer: Show Running Extensions from the Command Palette. The list shows activation time and can be sorted. For real-time CPU monitoring, open the Process Explorer via Developer: Open Process Explorer — it shows per-process CPU and memory usage for each extension host.
Will VS Code Profiles sync across devices?
Yes, if you enable Settings Sync. Each profile syncs independently, so your Copilot profile on one machine will have the same extensions and settings on another. Create profiles via the Command Palette and toggle sync per-profile in the Profiles management view.
Is there a way to automatically switch AI extensions based on the project?
Use workspace-level settings in .vscode/settings.json to disable specific extensions per project. Combined with VS Code Profiles associated with folders (Settings → Profile associations), you can auto-activate the correct AI tool when opening a project folder.
Do AI extensions conflict with standard IntelliSense?
They can. AI inline suggestions and IntelliSense completions occupy different UI layers — inline ghost text vs. the suggestion widget dropdown. However, some AI extensions also register as completion providers in the suggestion widget, which can push language-server results lower in the list. Set editor.suggest.showInlineDetails to true to distinguish sources in the widget.