If you searched claude code vscode, here's the short answer: install the official Anthropic extension (anthropic.claude-code) from the Extensions view, sign in with any paid Claude subscription — no API key — and you're running. It needs VS Code 1.94.0 or later. The longer answer is that Claude Code lives in VS Code three different ways, and picking the right one is the whole game.

Install it in about a minute#

Open the Extensions view — Cmd+Shift+X (macOS) or Ctrl+Shift+X (Windows/Linux) — search "Claude Code", and Install. The publisher is Anthropic; the extension ID is anthropic.claude-code. (Deep link: vscode:extension/anthropic.claude-code.) If it doesn't show up after installing, run Developer: Reload Window from the Command Palette.

Two things people get wrong here:

Using Cursor, Devin Desktop, or Kiro? The same extension installs, via the Open VSX registry. If a fork won't take it, install the CLI and run claude in its integrated terminal.

The three ways to run it — pick one on purpose#

This is the decision that actually matters, and the At a glance table above lays it out. In short:

  1. The graphical panel (default). A dockable Claude panel — right sidebar, left sidebar, or an editor tab. This is the one to use if you want click-to-review diffs: in Manual mode, edits open as a side-by-side original-vs-proposed diff, and on v2.1.275+ you get accept/reject buttons under each individual hunk.
  2. The panel in CLI mode. Prefer the keyboard-driven text UI but still want it docked in the editor? Set claudeCode.useTerminal to true.
  3. The standalone CLI in the integrated terminal. The full feature set — the ! bash shortcut, tab completion, every command and skill. Run claude in VS Code's integrated terminal and it auto-integrates with the editor for diff viewing and diagnostics; from an external terminal, run /ide inside Claude Code to connect it to VS Code.

The reason you can move freely between them: the extension and CLI share conversation history and the same ~/.claude/settings.json. Start a task in the panel, then continue it in a terminal with claude --resume. Same conversation, same config.

The workflow features worth learning#

A few settings that pay for themselves#

Real VS Code extension settings (defaults in parentheses): claudeCode.useTerminal (false), claudeCode.preferredLocation (panel), claudeCode.initialPermissionMode (default), claudeCode.attachOpenFile (true), claudeCode.respectGitIgnore (true), claudeCode.archiveInactiveSessions (14). For the shared file, add "$schema": "https://json.schemastore.org/claude-code-settings.json" to ~/.claude/settings.json for autocomplete on allowed commands, hooks and MCP servers — and use /mcp in the panel (or claude mcp add in the terminal) to wire up servers; both write the same config.

Where it fits#

The VS Code extension isn't a different product from the terminal tool — it's the same agent with a diff reviewer and a plan doc bolted on, which is exactly what you want when the change is big enough that you need to read it before it lands. If you're still choosing an agentic coding environment in the first place, we compared ZCode vs Cursor 3 vs Claude Code on the axis that actually locks you in, and if you'd rather run the model yourself, here are the open-weight coding models worth self-hosting. But for most builders the fastest path is the one above: install the extension, sign in, open Plan mode, and start reviewing diffs instead of writing them.