Claude Code VS Code Extension and JetBrains Plugin Guide
Install and use the Claude Code VS Code extension and JetBrains plugin: setup, shortcuts, @-mentions, diffs, checkpoints, settings and when to use the CLI.
By Claudekit Team Published 10 min read
Claude Code started in the terminal, but you don’t have to leave your editor to use it. The Claude Code VS Code extension gives you a graphical panel with inline diffs, @-mentions and plan review, and the JetBrains plugin wires the CLI into IntelliJ, PyCharm, WebStorm and friends.
This guide covers installing both, the shortcuts worth memorising, the settings that matter, and when to fall back to the CLI. Details are verified against the official VS Code and JetBrains docs as of October 2026.
VS Code extension vs JetBrains plugin vs CLI
| VS Code extension | JetBrains plugin | CLI in a terminal | |
|---|---|---|---|
| Interface | Native graphical panel | CLI in the IDE terminal | Terminal UI |
| Bundles the CLI | Yes (private copy) | No, install the CLI first | n/a |
| Inline diffs | Yes | Yes, in the IDE diff viewer | Shown in IDE when connected via /ide |
| Selection context | Automatic | Automatic | Automatic when connected |
| All commands and skills | Subset (type / to see) | All (it’s the CLI) | All |
! Bash shortcut, tab completion | No | Yes | Yes |
Install the VS Code extension
Requirements: VS Code 1.94.0 or later, and either a paid Claude subscription (Pro, Max, Team or Enterprise) or a Claude Console account. No API key needed.
- Press
Cmd+Shift+X(Mac) orCtrl+Shift+X(Windows/Linux) to open Extensions. - Search for Claude Code and click Install. The extension ID is
anthropic.claude-code. - If it doesn’t appear, run Developer: Reload Window from the Command Palette.
The extension also installs in Cursor and other VS Code forks (via the Open VSX registry). The extension’s version number matches the Claude Code version it bundles, which helps when a feature needs a minimum version.
If you use Bedrock, Google Cloud’s Agent Platform or Microsoft Foundry, the docs have a separate third-party provider setup.
First run
Open the panel. Click the Spark icon in the editor toolbar (top right, visible when a file is open). Alternatives: the Spark icon in the Activity Bar for the sessions list, ✻ Claude Code in the status bar, or the Command Palette (Cmd+Shift+P / Ctrl+Shift+P, type “Claude Code”).
Sign in. Click Sign in and finish in your browser. If you have ANTHROPIC_API_KEY in your shell but still see the sign-in screen, launch VS Code from a terminal with code . so it inherits your environment.
Send a prompt. Claude automatically sees your selected text and the file you have open. Press Option+K (Mac) or Alt+K (Windows/Linux) to insert an explicit reference like @app.ts#5-10.
Review changes. What happens next depends on the permission mode shown at the bottom of the prompt box:
- In Auto or Edit automatically mode, Claude edits most workspace files without asking.
- In Manual mode, you get a side-by-side diff and a permission prompt. You can accept, reject, or edit the proposed content directly before accepting, and Claude is told you changed it. Newer versions add per-change Accept this change and Reject this change buttons.
Run Claude Code: Open Walkthrough from the Command Palette for a guided tour.
Everyday features
@-mentions and context
Type @ plus a file or folder name. Matching is fuzzy, so @auth finds auth.js or AuthService.ts, and a trailing slash (@src/components/) references a folder. Use @terminal:name to pull in a terminal’s output without copy-pasting.
Paste images from the clipboard, or hold Shift while dragging files into the prompt box to attach them.
Privacy detail: the panel withholds selected text from files matched by files.exclude, search.exclude or .gitignore (with default settings). That filter doesn’t apply when you run the CLI in the integrated terminal, so use a Read deny rule for files that must stay private. Our permission modes guide shows the syntax.
Checkpoints
Hover over any message to reveal the rewind button:
- Fork conversation from here: new branch, code untouched
- Rewind code to here: revert files, keep the conversation
- Fork conversation and rewind code: both
Multiple conversations and layout
Drag the panel to the secondary sidebar (right), primary sidebar (left) or the editor area as a tab. A common setup is your main session in the sidebar and extra tabs for side tasks. Cmd+Shift+Esc / Ctrl+Shift+Esc opens a new conversation tab.
MCP servers and plugins
Type /mcp in the chat panel to add, remove, enable or reconnect MCP servers and handle OAuth. Or run claude mcp add in the integrated terminal; both write to the same config. See our best MCP servers for Claude Code for what to connect first.
Keyboard shortcuts
| Action | Mac | Windows/Linux |
|---|---|---|
| Toggle focus between editor and Claude | Cmd+Esc | Ctrl+Esc |
| New conversation in a tab | Cmd+Shift+Esc | Ctrl+Shift+Esc |
| Insert @-mention for file and selection | Option+K | Alt+K |
| Reopen closed Claude session tab | Cmd+Shift+T | Ctrl+Shift+T |
| Toggle Focus view (hide tool activity) | Ctrl+Option+F | Ctrl+Alt+F |
| New conversation (opt-in) | Cmd+N | Ctrl+N |
Cmd/Ctrl+N only works when Claude is focused and enableNewConversationShortcut is set to true.
Settings worth changing
Open VS Code settings and look under Extensions > Claude Code (keys are prefixed claudeCode.):
| Setting | Default | Why change it |
|---|---|---|
initialPermissionMode | unset | Start new conversations in plan, acceptEdits or default (Manual). Read from user settings only |
preferredLocation | panel | Set sidebar to open Claude on the right |
useCtrlEnterToSend | false | Use Ctrl/Cmd+Enter to send, Enter for new lines |
autosave | true | Saves files before Claude reads or writes them |
respectGitIgnore | true | Excludes gitignored files from search and selection context |
useTerminal | false | Launch Claude in terminal mode instead of the panel |
allowDangerouslySkipPermissions | false | Adds Bypass permissions to the mode selector; sandboxes only |
Shared configuration (permissions, hooks, MCP) belongs in Claude Code’s own settings files, not VS Code settings, so your team and the CLI see it too.
Run the CLI inside VS Code
Some features are CLI-only: the full command list, the ! Bash shortcut and tab completion. To get them without leaving the editor:
- Install the standalone CLI (the extension does not add
claudeto your PATH). - Open the integrated terminal with
Ctrl+`(Windows/Linux) orCmd+`(Mac). - Run
claude.
The CLI auto-connects to the editor for diff viewing and diagnostics. From an external terminal, run /ide inside Claude Code to connect. Both surfaces share history, so claude --resume picks up a conversation you started in the panel.
Our Claude Code slash commands guide lists the commands you gain in the CLI.
JetBrains plugin
Works with most JetBrains IDEs, including IntelliJ IDEA, PyCharm, Android Studio, WebStorm, PhpStorm and GoLand.
Install
- Install the Claude Code CLI first. The plugin doesn’t bundle it and shows “Cannot launch Claude Code” if
claudeisn’t on your PATH. - Install the Claude Code [Beta] plugin from the JetBrains Marketplace and restart the IDE.
What you get
- Quick launch with
Cmd+Esc(Mac) orCtrl+Esc(Windows/Linux) - Diffs in the IDE diff viewer, controlled by the Diff tool option in
/config(autoorterminal) - Selection and open-tab context shared automatically
- File references with
Cmd+Option+K(Mac) orAlt+Ctrl+K(Windows/Linux), such as@src/auth.ts#L1-99 - Diagnostics: Claude can read the IDE’s lint and syntax errors
Run claude in the IDE’s terminal and everything is active. From an external terminal, run /ide; you’ll see a message like Connected to IntelliJ IDEA. Start from the project root so Claude sees the same files.
Fixes for common annoyances
- Esc doesn’t interrupt Claude: in Settings → Tools → Terminal, uncheck “Move focus to the editor with Escape” or delete the “Switch focus to Editor” keybinding.
claudenot found: set the full path in Settings → Tools → Claude Code [Beta] → Claude command.- WSL: set the command to
wsl -d Ubuntu -- bash -lic "claude", replacingUbuntuwith your distribution.
Permission modes work exactly as in the CLI: Shift+Tab to cycle, or --permission-mode at launch.
Which should you use?
- Mostly in VS Code or Cursor, like visual diffs: the extension.
- JetBrains user: the plugin, which gives you the full CLI plus IDE integration.
- Need every command,
!shell shortcuts or heavy scripting: the CLI in the integrated terminal.
Many people combine them: the panel for day-to-day prompts, the terminal for slash commands and headless scripts. If you’re comparing against an editor-first tool, see Claude Code vs Cursor.
Your IDE and your Claude kit
The extension, plugin and CLI all read the same CLAUDE.md, skills, subagents, hooks and MCP config, so a Claude kit you set up once follows you into every editor. Start with a solid CLAUDE.md, then add skills for repeated workflows.
Frequently asked questions
Do I need the Claude Code CLI to use the VS Code extension?
No. The extension bundles its own copy of the CLI for the chat panel. You only need the standalone CLI install if you want to type claude in VS Code's integrated terminal or any other terminal.
Does the Claude Code extension work in Cursor?
Yes. The official docs provide an install link for Cursor, and the extension also installs in other VS Code forks from the Open VSX registry.
Is the JetBrains plugin the same as the VS Code extension?
No. The JetBrains plugin doesn't bundle the CLI. It runs the claude command in your IDE's terminal and connects to it, adding IDE diffs, selection sharing and diagnostics. You need the CLI installed first.
Can I continue a VS Code conversation in the terminal?
Yes. The extension and CLI share conversation history. Run claude --resume in a terminal and pick the conversation from the interactive list.
Which API key do I need for the VS Code extension?
None. Any paid Claude subscription (Pro, Max, Team or Enterprise) or a Claude Console account works, and you sign in through the browser. Bedrock, Agent Platform and Foundry users configure third-party provider settings instead.