Agentic AI coding assistant for VS Code — powered by your Claude Code subscription.
Marketplace ·
Open VSX ·
Issues
Klaude brings the full Claude Code agent into a native VS Code side panel: streaming chat, multi-file edits with inline diff previews, terminal execution under a permission gate, plan-mode review with inline comments, and the Claude Code Skills marketplace — all driven by your existing Claude.ai Pro / Team / Enterprise subscription. No per-token billing, no separate API key.
Highlights
- 🔐 Subscription-powered. One-click browser sign-in; credentials live in the OS keychain. No API key file on disk.
- 💬 Native side-panel chat. Streaming responses, slash commands,
@-mention files, Cmd+U to send a selection, Cmd+Shift+I to toggle.
- 🛡️ Risk-aware approvals. Three modes —
Ask, Agent, Plan. Every gated action shows an inline card with a live diff / command preview before it runs. Destructive (rm, sudo, force-push) and network (curl, ssh, git push) commands always prompt — never auto-run, even in Agent mode.
- 📝 Plan-mode review. Pop the plan into its own editor tab, leave inline comments on individual steps, and ship the revised plan back to the agent in one click.
- 🧠 Project conventions. Reads
CLAUDE.md / AGENTS.md automatically; one-click "Generate CLAUDE.md" to bootstrap a new repo.
- 🧩 Skills marketplace. Browse and install any skill from claude-plugins.dev directly from the panel.
- 🔌 MCP connectors. Browse and connect remote MCP servers — Linear, Notion, Atlassian, Sentry and more — over OAuth, straight from the panel.
- 🕰 Checkpoints + rewind. Every assistant turn snapshots edited files so you can roll back without leaving the chat.
- 📦 Bundled CLI. Ships with
@anthropic-ai/claude-code — no separate install step.
Getting started
1. Install
Open the Extensions view, search for Klaude, and click Install.
Using Cursor, VSCodium, or Windsurf? Klaude is available on the Open VSX Registry — search for it the same way.
2. Sign in
Open the Klaude side panel (✨ in the activity bar) and follow the welcome screen's Sign in prompt. Klaude launches a secure browser-based sign-in for your Claude.ai subscription — approve the request, and you're returned to VS Code ready to chat.

Token storage:
- Anthropic API keys → VS Code SecretStorage (OS keychain).
- Claude.ai subscription → Claude Code's own credential store (
~/.claude/.credentials.json on Linux, Keychain on macOS).
Klaude never writes to ~/.claude/ itself — only the bundled CLI does, on your behalf.
3. Start a chat
Open any workspace and pick a starter, or just type. @ mentions a file, drag-drop pastes file paths, screenshots paste as image attachments.

Permissions & approvals
Cycle modes with Shift+Tab (when chat is focused) or the Klaude: Cycle Permission Mode command.
| Mode |
Runs without asking |
Prompts you |
| Ask (default) |
Read-only tools (Read, Grep, Glob) |
Every edit, write, and command |
| Agent |
Reads + file edits (Edit / Write / MultiEdit / NotebookEdit) + allow-listed commands |
Anything not pre-approved |
| Plan |
Read-only reasoning — nothing executes |
— (review the plan, then Proceed) |
Always gated — in every mode, even Agent, even if allow-listed:
- 🔴 Destructive —
rm, rmdir, sudo, dd, mkfs, git reset --hard, git push --force, chmod -R, kill -9, fork bombs, and piping a remote script to a shell (curl … | bash).
- 🌐 Network / external —
curl, wget, ssh, scp, rsync, nc, git push / pull / clone, and web-fetch tools.
The agent is also instructed to avoid touching .git, .env*, .ssh, and shell rc files. Connected MCP-server tools are pre-approved (connecting is the consent step).
The approval card
When an action needs your OK, an inline card slides in above the composer with a preview of exactly what will happen:
- File edits → a Cursor-style inline diff.
- Commands → the exact shell line, in a terminal block.
- Other tools → the proposed inputs.
Choose Allow (↵), Deny (Esc), or — for edits — Allow this turn (⇧↵) to stop being re-asked about edits for the rest of the turn. Destructive cards turn red, default focus to Deny, and require an explicit "Allow anyway"; network cards are flagged amber. "Allow this turn" only auto-accepts edits — it never disables the destructive/network gate.
Skills
Skills extend the agent with reusable, scoped capabilities — built-ins, Claude Code agent tools, and any project- or user-scoped skills you've installed. Browse and install from claude-plugins.dev without leaving the panel:

Install scope is per-skill:
- Project →
.claude/skills/<name>/ (committed with your repo)
- User →
~/.claude/skills/<name>/ (available everywhere)
Connectors (MCP)
Connect remote MCP servers — Linear, Notion, Atlassian, Asana, Intercom, Sentry, PayPal, HubSpot, or any custom endpoint — over OAuth without leaving the panel. The agent can then read and act on that data as part of a chat.

Chat in action
@filename inserts a file mention; the contents are sent to the model when relevant.
- Cmd+U with a selection sends the highlighted code straight into the composer.
- Screenshots paste as image attachments — useful for explaining UI bugs.
- Slash commands in the composer trigger built-in workflows or installed skill commands.
- Chat history — browse and resume any past session from the history drawer.

Project conventions
Klaude looks for CLAUDE.md (or AGENTS.md) at your workspace root and injects it into every system prompt. If neither exists, the Generate action analyzes your repo and writes one for you.
Edited files appear as a collapsible card under the assistant turn with line-add / line-remove counts and an Undo button that restores the pre-turn snapshot.
Commands
| Command |
Default keybinding |
| Klaude: New Chat |
— |
| Klaude: Toggle Chat Panel |
Cmd/Ctrl+Shift+I |
| Klaude: Cycle Permission Mode |
Shift+Tab (chat focused) |
| Klaude: Send Selection to Chat |
Cmd/Ctrl+U (editor has selection) |
| Klaude: Comment on Selection |
(editor context menu) |
| Klaude: Generate CLAUDE.md |
— |
| Klaude: Open Connectors |
— |
Settings
| Setting |
Default |
Description |
klaude.model |
default |
Model alias (sonnet, opus, haiku, opusplan, default) or explicit version. default always tracks the latest. Set from the composer's model picker. |
klaude.permissionMode |
default |
default (Ask) / auto (Agent) / plan. |
klaude.effort |
high |
Reasoning effort: low / medium / high / xhigh / max. |
klaude.thinking |
true |
Extended thinking — reason step-by-step before answering. |
klaude.maxTokens |
4096 |
Max output tokens per assistant turn. Lower → fewer rate-limit hits. |
klaude.allowedBashPatterns |
["^git (status\|diff\|log\|branch)$", "^npm (test\|run test)$"] |
Regex allowlist for commands that auto-run in Agent mode. Destructive / network commands are never auto-run, even if matched. |
klaude.claudeBinaryPath |
"" |
Absolute path to a custom claude binary. Empty → the bundled CLI. Point it at a self-updating install so new models appear without a Klaude release. |
How it works
extension.ts
│
▼
ChatPanelProvider ──── postMessage ────▶ React webview (chat / plan / approval UI)
│ ▲ │
│ └──────── permissionResponse ──────────────┘
▼
Orchestrator (per-turn driver)
├─ ClaudeCliProvider bridges the bundled `claude` CLI over stream-json and
│ routes the CLI's `can_use_tool` requests back to you
│ via `--permission-prompt-tool stdio`
├─ decidePermission pure allow/prompt policy: auto-allow reads (+ edits in
│ Agent mode), ALWAYS prompt destructive + network
├─ CheckpointService per-turn snapshots of edited files (rewind / undo)
└─ ConventionsLoader CLAUDE.md / AGENTS.md injection
When the agent wants to use a gated tool, the CLI emits a can_use_tool control request; decidePermission either auto-approves it or the extension forwards it to the webview as an approval card. Your answer travels back over postMessage → a control_response on the CLI's stdin. The core (src/core/*) imports zero VS Code APIs and is unit-tested in isolation; the permission policy and CLI bridge live in src/providers/. The webview is a standalone React app under webview/ that talks to the extension host over postMessage.
Feedback
Thank you for using Klaude! 🙏 It means a lot that you've given it a place in your workflow. Klaude is shaped by the people who use it — so if you have a moment to share how it's working for you, a bug you've hit, or an idea you'd love to see, we'd genuinely appreciate it.
Every bit of feedback, big or small, helps make Klaude better. Thank you. 💛
What people are saying
This space collects feedback from the community. Have something to share? Tell us here and it may land on this list.
Contributing
Klaude is open source and contributions are welcome. Browse the code, open an issue, or send a pull request on GitHub — build, test, and packaging instructions live in the repository.
Privacy
- Your code is sent to Anthropic only when the agent requests a tool that reads it, or when you
@-mention or paste it. The webview never autouploads workspace files.
- Tokens live in the OS keychain via VS Code's SecretStorage API. Klaude does not write credentials to disk under any path it controls.
- Destructive and network commands always surface an approval prompt before they run — in every mode. In Ask mode every edit and command prompts too; Agent mode auto-applies edits (reversible via checkpoints) but still gates deletes, shell, and network calls.
License
MIT