Model or dataset
andrepimenta/claude-code-chat avatar
andrepimenta/claude-code-chat

claude-code-chat: a VS Code chat panel that wraps the Claude Code CLI

Beautiful Claude Code Chat Interface for VS Code

1,087 stars164 forksJavaScriptNOASSERTION

At a glance

What is it?
The extension replaces the Claude Code terminal session with a webview chat, adds git-backed checkpoints and a marketplace for MCP servers, skills and plugins. It is a UI layer, not a replacement for the CLI, and the README is explicit that some of its behaviour depends on what Claude Code already does.
Who is it for?
Install it if you already run Claude Code and want diffs, image attachments and checkpoint restore inside the editor rather than in a terminal, and if you are comfortable with the extension reading and writing ~/.claude.json and .mcp.json on your behalf. Do not install it if your workflow depends on a terminal-only setup, on a locked-down marketplace policy, or on scripted non-interactive runs, because the extension is a graphical front end and not a headless tool.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 84 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The terminal is the interface claude-code-chat removes

Claude Code normally runs as a command-line session. You type prompts, approve tool calls and read diffs as terminal text. The extension's opening line states the goal directly: "No more terminal commands. Chat with Claude Code through a beautiful, intuitive interface right inside VS Code." That sentence defines both the audience and the boundary. This is for people who already use Claude Code and want the conversation rendered as a chat panel with syntax highlighting, copy buttons and an inline diff viewer instead of scrollback. It is not a new agent, a new model router or a hosted service. The README describes the extension as "Built by Claude Code for Claude Code", which is a statement about how it was authored, not about what it does at runtime. The practical audience is a developer who lives in VS Code or Cursor, wants file references typed with @, and finds the terminal's rendering of multi-file edits hard to read. Anyone who prefers piping prompts from a shell script, or who runs Claude Code on a remote box without a GUI, gets nothing from this.

A webview front end over the Claude Code session

The architecture visible in the README is a VS Code extension that hosts a chat webview and drives a Claude Code session underneath. Streaming responses, tool execution and permission prompts are surfaced as UI events rather than terminal output. Tool calls arrive as interactive permission dialogs with command previews, and the README describes an "Always Allow" mechanism that matches command patterns for common tools such as npm, git and docker. Slash commands are handled separately: typing "/" opens a modal listing the commands, and the README says those commands "open directly in VS Code terminal with WSL support" while running with the current conversation context. That split matters. Not everything is reimplemented in the webview. Some of it is still the CLI, opened in a terminal panel, which means the extension is a coordinator between three surfaces: the chat webview, the terminal and the underlying Claude Code process. The README also lists a sidebar mode with "automatic switching between main and sidebar views" and persistent sessions across panel switches, so the same session state is shared between two view containers.

Checkpoints are git commits, and that shapes what they can undo

The feature the README gives the most space to is checkpoint restore. It states the mechanism plainly: an "Automatic Git-based backup system for safe experimentation", with the ability to "Browse and restore from any conversation checkpoint". Because the backup is git-based, the restore boundary is whatever git tracks. Untracked files, ignored build output, database state, environment changes and anything written outside the repository are outside that boundary unless the extension does something the README does not describe. The README does not say whether checkpoints are commits on the current branch, stashes, or a separate ref, and it does not describe how a restore interacts with uncommitted work you made yourself between checkpoints. Those are the questions to answer before trusting it on a repository with a dirty working tree. The same section advertises "Real-time cost and token tracking" and session statistics, which are readouts rather than control mechanisms; they tell you what a session cost, not how to cap it.

The MCP, skills and plugins marketplace writes to real config files

Version 2.0 added a marketplace panel. According to the README it browses "30+ featured servers" such as GitHub, Slack, Stripe and Notion, searches across an add-mcp curated registry and the official Anthropic registry, and installs with pre-filled configuration including environment variables, headers and OAuth. The install targets are named: MCP servers go to `.mcp.json` or `~/.claude.json`, and skills go to `.claude/skills/`, with a choice between project and global scope. That is the most consequential part of the extension, because it means a click inside a chat panel results in a write to a config file that other Claude Code sessions read. The project-scoped `.mcp.json` is a file you commit and share with a team; the global `~/.claude.json` applies to every project on the machine. A marketplace browsing step is convenient, but it shifts the review burden: the extension pre-fills configuration and you still have to read what an OAuth block or an environment variable actually grants. The README does not describe a signing or provenance check on the registry entries it lists.

YOLO mode is the design decision worth arguing about

The permissions system ships with three postures. Interactive dialogs show tool information and command previews. Pattern matching lets you always allow npm, git or docker. Then there is "YOLO Mode - Skip all permission checks for power users". The README presents this as a feature for power users and gives no guardrails around it. Combined with a git-backed checkpoint system, the intended workflow is presumably that you can let the agent run and roll back if it goes wrong. That works only within the checkpoint boundary described above. A destructive command that touches something outside the repository, or that pushes, or that deletes an untracked file, is not undone by restoring a checkpoint. The extension also offers "Plan First Mode" and thinking intensity levels (Think, Think Hard, Think Harder, Ultrathink), and the README notes that "Higher thinking levels consume mo" before the text is cut off. So the two knobs pull in opposite directions: more thinking burns more tokens, and YOLO mode removes the pause where you would notice the spend.

Model routing and where the request actually goes

The model selection section is broader than the extension's name suggests. It lists quick buttons for GPT, Gemini, MiniMax, Kimi, GLM and DeepSeek, plus Opus, Sonnet and a Default option that uses "your configured model setting". It also advertises "150+ OpenCredits Models" and a provider choice between "OpenCredits vs Anthropic" for Claude models. The README does not explain what OpenCredits is, how credentials are stored, or what the data path looks like when a non-Anthropic model is selected. That is a gap worth flagging rather than glossing over: a chat panel that can route prompts to a third-party provider needs a clear statement of where those prompts go, and the supplied material does not contain one. If your organisation has rules about which endpoints receive source code, resolve that question before enabling anything other than the default.

Compared with running Claude Code in the integrated terminal

The honest alternative is not another extension. It is the thing this project wraps: running Claude Code in VS Code's integrated terminal, which is what most people do today and what the README positions itself against. The difference in approach is where the rendering and the state live. In the terminal, diffs are text, permissions are prompts, and history is your shell scrollback plus whatever Claude Code persists itself. In claude-code-chat, diffs get an inline viewer with a button that opens "VS Code's native side-by-side diff editor", long diffs are truncated with an expand control, and images can be pasted with a thumbnail preview strip before sending. The terminal gives you scriptability and a smaller attack surface; the extension gives you a visual diff and image attachments. If you never attach screenshots and you read diffs fine in a terminal, the extension's main value proposition does not apply to you. If you routinely paste UI screenshots into prompts, the terminal is genuinely awkward and this is the gap it fills.

Maintenance, licence and what to check first

The repository metadata reports the licence as NOASSERTION, which means no recognised SPDX identifier was detected. That is not the same as having no licence, and it is not the same as being unlicensed, but it does mean you should read the LICENSE file in the repository yourself before shipping the extension in a corporate environment. Nothing in the supplied material states redistribution or modification terms. On maintenance: the repository is not archived, the last push date is 2026-06-24, and releases moved from 2.0.4 in April 2026 to 2.0.6, then v2.1.0 in June 2026. That cadence suggests active work, but the material does not include a changelog, so the scope of each release is unverified here. The extension depends on the Claude Code CLI being present and configured, so its upgrade cost is partly Claude Code's upgrade cost: when the CLI changes its command set or config format, the wrapper has to follow. Practical first checks, all traceable to the README: confirm the CLI is installed and working before installing the extension, verify that installing an MCP server writes to the `.mcp.json` or `~/.claude.json` path you expect, and test checkpoint restore in a throwaway repository so you learn what it does and does not cover.

Editorial conclusion

Install it if you already run Claude Code and want diffs, image attachments and checkpoint restore inside the editor rather than in a terminal, and if you are comfortable with the extension reading and writing ~/.claude.json and .mcp.json on your behalf. Do not install it if your workflow depends on a terminal-only setup, on a locked-down marketplace policy, or on scripted non-interactive runs, because the extension is a graphical front end and not a headless tool. Before adopting, open the extension's repository and confirm the licence terms, since the metadata reports NOASSERTION rather than a recognised identifier, then install v2.1.0 and check that the checkpoint restore actually creates a git commit in a scratch repository before you rely on it for real work.

Official sources

  1. andrepimenta/claude-code-chat on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
Community notes

Community notes