Skip to content

IDE Extensions

Claude Code runs the same agentic loop whether you launch it from a terminal or an IDE. The difference is purely the interface layer on top — the engine is identical.

IDE extensions add a graphical shell around that engine: inline diff review, file @-mentions, conversation history panels, and editor-native keyboard shortcuts. If you are comfortable in the terminal and do not need to inspect diffs visually, the CLI is perfectly capable. If you want to accept or reject individual hunks, reference files by typing @, or browse past sessions without leaving your editor, an extension pays for itself immediately.

Feature Matrix

FeatureTerminalVS CodeJetBrains
Inline diff review
@-mention files with line ranges
Plan review UI (markdown preview)
Conversation history panel
Interactive per-hunk diff selection
IDE diagnostic sharing (lint/errors)
Selection auto-context
All terminal capabilities

Both extensions include the full Claude Code CLI in their bundle. You can drop into the integrated terminal and run claude directly to access CLI-only features like tab completion, ! bash shortcuts, and headless -p mode.

Architecture

Both IDE integrations run Claude Code as a local process and connect to it over a local MCP server the extension spins up. Your code never passes through the IDE vendor’s servers — the same Anthropic API call happens as in the terminal.

graph TB subgraph IDE["Your IDE (VS Code or JetBrains)"] UI["Extension UI\n(diffs, chat panel, history)"] MCP["Local MCP Server\n(127.0.0.1, random port)"] end subgraph Engine["Claude Code Engine"] CLI["claude CLI process"] Tools["Read · Write · Bash · Grep · Glob"] end API["Anthropic API\n(claude-sonnet / claude-opus)"] UI <-->|"commands / events"| MCP MCP <-->|"tool calls"| CLI CLI --> Tools CLI <-->|"HTTPS"| API style UI fill:#0D2840,stroke:#1A4A70,color:#E8ECF1 style MCP fill:#25153D,stroke:#4A2878,color:#E8ECF1 style CLI fill:#0D2E1A,stroke:#1A5030,color:#E8ECF1 style Tools fill:#0D2E1A,stroke:#1A5030,color:#E8ECF1 style API fill:#3A2510,stroke:#6B4520,color:#E8ECF1

The MCP server is an implementation detail — it is hidden from /mcp and requires no configuration. It exposes two model-visible tools: getDiagnostics (reads lint/type errors from the IDE’s Problems panel) and executeCode (runs cells in Jupyter notebooks, always with a confirmation prompt).

When to Use an IDE Extension vs the Terminal

Prefer the IDE extension when:

  • You want to review Claude’s proposed changes as a side-by-side diff before accepting
  • You are working across multiple files and want to use @filename to reference them by name (VS Code)
  • You want to select a block of code and ask Claude about it without copy-pasting
  • You want to browse and resume past conversations from a sidebar panel

Stay in the terminal when:

  • You need headless claude -p for scripts or CI pipelines
  • You want tab completion, !bash shortcuts, or pipe input (git diff | claude -p "...")
  • You are SSH’d into a remote machine
  • You prefer a minimal surface area

Guides

  • VS Code Extension — install, @-mentions, plan mode, conversation history, keyboard shortcuts
  • JetBrains Plugin — install, interactive diff selection, selection context, supported IDEs