Compared with the official VS Code extension
This extension aims for parity with Anthropic’s VS Code extension where it makes sense, but Visual Studio is a different host, so several things are done differently, or don’t exist there.
What is the same
Section titled “What is the same”The chat is not a reimplementation of Claude. It drives the real claude.exe, and starts it the
way the VS Code extension does: over the stream-json control protocol, with the CLI told it runs
inside an IDE (CLAUDE_CODE_ENTRYPOINT=claude-vscode). What you get from the CLI is therefore the
CLI’s, not a copy of it:
- The same sessions. One store, the CLI’s own: a conversation started in VS Code or in a terminal shows up here, and vice versa. See Sessions.
- The same commands. The
/palette lists the CLI’s own slash and skill commands, next to the extension’s built-in actions. - The same plugins. Plugins live in the CLI’s store, so what you install here is the same set the CLI, the VS Code extension and the terminal see. See Plugins.
- The same settings and login.
~/.claude/settings.json(permissions, hooks, env) belongs to the CLI, and so does sign-in: the extension holds no credentials. See Authentication and security. - The same editor channel. Visual Studio pushes the editor selection to the CLI over the IDE integration channel, the same way the VS Code extension does.
Because it is the CLI doing the work, a newer CLI is handled by feature-detection, not by pinning a version: the extension never bundles it. See Updating Claude Code.
What follows is where the two part ways.
Two distinct panes, multi-instance
Section titled “Two distinct panes, multi-instance”Open several chats and terminals side by side, each on its own session, docking as tabs. The Chat
pane (WebView2 + SDK-MCP) and the CLI pane (ConPTY + --ide WebSocket) are deliberately separate
startup paths. See Two panes, one extension.
Our own MCP tool suite for Visual Studio
Section titled “Our own MCP tool suite for Visual Studio”The tools wrap VS’s navigation, build and debugger (start/step/breakpoints/inspect/hot-reload) and Error List, capabilities specific to the VS host, built language-agnostic via Roslyn reflection and DTE, not tied to C#/VB only. See MCP tools.
Sub-agents you can see and control
Section titled “Sub-agents you can see and control”Their tool calls are grouped under the Agent row that spawned them (last 3 steps, Show all for the full run) instead of being interleaved into the transcript, and a chip in the composer counts the ones still running; click it to stop any of them, or all. See Sub-agents.
Pane attention notifications
Section titled “Pane attention notifications”With several panes open (or VS in the background), an InfoBar or a layout-proof OS toast tells you which pane needs input or has finished; the VS docked tab can’t carry that state the way VS Code’s editor title does. See Several panes at once.
Native .jsonl sessions
Section titled “Native .jsonl sessions”Sessions are read directly from the CLI’s ~/.claude/projects/<folder>/*.jsonl (head+tail reads to
avoid loading huge files); rename appends a custom-title entry, fork writes a new JSONL; no
separate session store. See Sessions.
Lazy, memory-light history
Section titled “Lazy, memory-light history”The chat holds nothing in memory: the transcript is read from the .jsonl on demand: the newest
page loads first, older history pages in only as you scroll up, and heavy blocks (images, sub-agent
transcripts, full diffs) are fetched only when you actually open them. A very long session opens
fast and stays light instead of loading the whole conversation up front.
Changes opened in Visual Studio’s own diff
Section titled “Changes opened in Visual Studio’s own diff”Opening a file lands you in the real editor (optionally on the referenced lines); an Edit opens in
Visual Studio’s native side-by-side diff (not a static rendered diff), with the editor’s own
colouring and navigation. In a Chat pane the answer is given in the approval prompt. A second,
editable diff (editor_open_diff) shows the whole file against a proposal: Ctrl+S or
Accept hands back the text as you saved it, closing rejects. See
Reviewing changes.
File references in prose are links
Section titled “File references in prose are links”A bare ClaudeInstall.cs:103 written in a sentence is a link here; the VS Code extension only turns
markdown links into file links. See
Clickable file references.
Context gauge, usage and statistics
Section titled “Context gauge, usage and statistics”Rendered natively in the chat, including historical statistics across the current chat, the whole project, or all projects together. See Context, usage & statistics.
Rewind
Section titled “Rewind”Restore the files to the state they were in before any message in the session, leaving the conversation itself untouched; a dry-run preview lists the files and the lines added or removed before anything is written, and clicking a file opens the pre-message copy against the current one in Visual Studio’s diff. See Rewinding files.