Integrate VS Code extensions with Cursor IDE: compatibility, Open VSX registry, VSIX installation, conflict resolution, and essential extensions. Triggers on "cursor extensions", "cursor vscode extensions", "cursor plugins", "cursor marketplace", "open vsx", "vsix install".
Integrate VS Code extensions with Cursor IDE. Covers the Open VSX Registry, VSIX installation for Microsoft-exclusive extensions, conflict resolution with AI features, and recommended extension stacks.
Cursor uses the Open VSX Registry instead of Microsoft's VS Code Marketplace. This is because Microsoft's marketplace terms restrict access to VS Code products only.
Impact: Most popular extensions are on Open VSX. Some Microsoft-published extensions are not.
| Extension | Category |
|---|---|
| ESLint | Linting |
| Prettier | Formatting |
| GitLens | Git visualization |
| Docker | Container management |
| Python | Python language support |
| Pylance | Python analysis (community build) |
| Go | Go language support |
| Rust Analyzer | Rust language support |
| Tailwind CSS IntelliSense | CSS utilities |
| Auto Rename Tag | HTML/JSX editing |
| Error Lens | Inline error display |
| TODO Highlight | Comment highlighting |
| Thunder Client | API testing |
| Extension | Reason | Workaround |
|---|---|---|
| GitHub Copilot | Microsoft exclusive | Use Cursor's built-in AI (better integration) |
| Live Share | Microsoft exclusive | Use other collaboration tools |
| Remote - SSH | Microsoft exclusive | Install via VSIX |
| C# Dev Kit | Microsoft exclusive | Install via VSIX |
| IntelliCode | Microsoft exclusive | Cursor's Tab replaces this |
Cmd+Shift+X → search extension name → Install
For extensions not on Open VSX:
.vsix file)Cmd+Shift+P > Extensions: Install from VSIX....vsix file# Install from Open VSX
cursor --install-extension dbaeumer.vscode-eslint
# Install from VSIX file
cursor --install-extension ~/Downloads/extension.vsix
# List installed extensions
cursor --list-extensions
# Uninstall
cursor --uninstall-extension dbaeumer.vscode-eslint
| Extension | Conflict | Resolution |
|---|---|---|
| GitHub Copilot | Duplicate Tab/ghost text suggestions | Disable Copilot. Cursor's built-in AI is better integrated |
| TabNine | Duplicate inline completions | Disable TabNine |
| Codeium | Duplicate inline completions | Disable Codeium |
| IntelliCode | Duplicate completions | Disable IntelliCode |
| Vim | Ctrl+K/L/I keybinding conflicts | Remap AI shortcuts (see below) |
// keybindings.json
[
{
"key": "ctrl+l",
"command": "aichat.focus",
"when": "!vim.active || vim.mode == 'Normal'"
},
{
"key": "ctrl+k",
"command": "cursor.edit",
"when": "editorTextFocus && vim.mode == 'Normal'"
},
{
"key": "ctrl+i",
"command": "composer.open",
"when": "!vim.active || vim.mode == 'Normal'"
}
]
Cmd+K Cmd+S > search for the conflicting shortcut > see which commands are bound > reassign or disable.
Required:
dbaeumer.vscode-eslint # Linting
esbenp.prettier-vscode # Formatting
bradlc.vscode-tailwindcss # Tailwind CSS (if using)
Recommended:
formulahendry.auto-rename-tag # HTML/JSX tag renaming
usernamehw.errorlens # Inline error display
wix.vscode-import-cost # Import size display
christian-kohler.path-intellisense # Path autocomplete
Required:
ms-python.python # Python language support
charliermarsh.ruff # Fast Python linter
Recommended:
ms-python.debugpy # Python debugger
njpwerner.autodocstring # Docstring generator
ms-toolsai.jupyter # Jupyter notebook support
Go:
golang.go # Official Go extension
Rust:
rust-lang.rust-analyzer # Rust language server
tamasfe.even-better-toml # TOML config files
ms-azuretools.vscode-docker # Docker support
redhat.vscode-yaml # YAML validation
hashicorp.terraform # Terraform HCL support
ms-kubernetes-tools.vscode-kubernetes-tools # Kubernetes
Extensions affect editor performance. Audit regularly:
Cmd+Shift+P > Developer: Show Running Extensions| Extension | Issue | Fix |
|---|---|---|
| GitLens | High CPU on large repos | Disable for repos > 100K commits |
| Prettier (on save) | Slow on large files | Configure file size limit |
| TypeScript | High memory on large projects | Increase tsserver.maxTsServerMemory |
| Spell checker | CPU on large files | Exclude generated files |
// .vscode/settings.json (per project)
{
"extensions.ignoreRecommendations": true
}
Or right-click an extension > Disable (Workspace) to disable only for the current project.
Cursor does not sync extensions between machines automatically like VS Code Settings Sync. To transfer:
# Export extension list
cursor --list-extensions > cursor-extensions.txt
# On new machine, reinstall all
while read ext; do cursor --install-extension "$ext"; done < cursor-extensions.txt