Claude Code Chat Bridge
Unofficial. Not affiliated with, endorsed by, or supported by Anthropic. This extension drives the official Claude Code CLI, which you install and sign in to yourself.
Adds a @claude participant to the VS Code chat panel that hands the task to the Claude Code CLI running on your machine.
Requests to @claude never reach GitHub's servers, so they don't consume Copilot premium requests. The work runs on whatever Claude Code login you already have (a Pro/Max subscription, not the metered API).
What it does
you type "@claude fix X" in the chat panel
-> VS Code routes it to this extension (GitHub is no longer involved)
-> spawns: claude --print --output-format stream-json ...
-> Claude reads/greps/edits your files itself, using its own tools
-> text + an activity log stream back into the chat panel
Edits are applied directly to disk, the same as running Claude Code in a terminal. There is no Accept/Reject diff card — review changes with git or the Source Control view.
Requirements
VS Code 1.95 or newer.
The chat panel, which requires GitHub Copilot (any tier, including Free) installed and signed in. Copilot provides the panel; it does not process @claude messages.
Claude Code installed and signed in. Verify with:
echo "say OK" | claude --print
If that prints an authentication error, run claude in a terminal and sign in with /login. The bridge cannot log in for you — there is no prompt to answer in headless mode.
Install
From the Marketplace
Search for Claude Code Chat Bridge in the Extensions view, or:
code --install-extension hoangphan.claude-code-chat-bridge
From source
cd ~/claude-bridge
npx --yes @vscode/vsce package
code --install-extension claude-code-chat-bridge-0.1.1.vsix
Then reload VS Code (Ctrl+Shift+P -> Developer: Reload Window).
On WSL, run code --install-extension from inside WSL so it installs into the WSL remote where your claude binary lives.
Option B — run without packaging (for a quick try)
code ~/claude-bridge
Press F5. A second VS Code window opens with the extension loaded. Open your project in that window and use @claude there. Closing the window unloads it.
Uninstall
code --uninstall-extension hoangphan.claude-code-chat-bridge
Use it
In the chat panel:
@claude explain how the PMBus frame parser handles CRC errors
@claude add a unit test for the voltage scaling helper
@claude /new <- forget earlier turns, start a fresh session
Follow-up turns resume the same Claude Code session, so it remembers the conversation without re-sending anything.
The current file and selection are passed along as a hint, so "fix this function" works when you have it open.
Settings
| Setting |
Default |
Meaning |
claudeBridge.claudePath |
claude |
Path to the CLI. Auto-detected via your login shell; set an absolute path if detection fails. |
claudeBridge.permissionMode |
acceptEdits |
acceptEdits lets it edit files but refuses shell commands. bypassPermissions also allows shell commands (tests, scripts) unattended. plan is read-only. |
claudeBridge.model |
(empty) |
e.g. opus, sonnet. Empty uses your Claude Code default. |
claudeBridge.streamPartial |
true |
Stream text as it is written rather than in blocks. |
claudeBridge.includeEditorContext |
true |
Tell Claude which file is open and what is selected. |
claudeBridge.showActivity |
true |
Log each read/edit/search in the chat. |
claudeBridge.extraArgs |
[] |
Extra CLI args, e.g. ["--allowedTools", "Read,Grep,Glob,Edit"]. |
About permissionMode
Headless mode has no way to ask you for approval, so anything not pre-approved is refused, not queued. acceptEdits is the safe default: Claude can change files but cannot run commands. Switch to bypassPermissions only in a workspace you trust — it lets Claude run shell commands without asking.
Known limits
- No Accept/Reject diff cards. Getting those means intercepting Claude's edits before they reach disk and replaying them through VS Code's edit API, which also requires faking tool results back to Claude so its reasoning stays consistent. Not done here.
- Two chat conversations whose first message is identical will share one Claude Code session. Use
/new to split them.
- Cancelling stops the CLI, but edits already written to disk stay written.