[!NOTE] 100% local. Zero network calls. Claude Code Manager reads ~/.claude/ and renders in your sidebar under a strict CSP. No telemetry, no accounts, no token ever leaves your machine. Even the live Quota card reads Claude Code's own statusline from disk, never the network.

Install

VS Code, Cursor, Windsurf, Antigravity: open Extensions (Ctrl+Shift+X), search Claude Code Manager, click Install.

VSCodium, Theia, Gitpod: install from Open VSX.

Command line: code --install-extension vishalguptax.claude-manager

Open the panel

Three ways, pick whichever is closest:

Way How
Keyboard Ctrl+Alt+C on Windows/Linux, Cmd+Alt+C on macOS
Status bar Click the Claude Code Manager chip at the bottom of the editor
Command palette Ctrl+Shift+P → Claude Code Manager: Open

That's it.

Why it exists

Claude Code is powerful, but the terminal isn't built for browsing. Finding a session you ran last week means scrollback hunting. Editing an MCP server means hand-patching JSON. Keeping track of every custom slash command, hook, and agent is its own job.

Claude Code Manager turns all of it into a sidebar you can click and search. Same Claude Code underneath, just one keystroke closer. It works whether you run the Claude Code CLI, the official VS Code extension, or both. Sessions from either show up in the same list, and Resume sends you back to wherever the session started (configurable).

It also folds the jobs you'd otherwise wire up with separate single-purpose tools into one install: a usage tracker (like ccusage), an account switcher (like claude-swap), and an MCP manager all live in the same sidebar.

So you can switch between Claude accounts in VS Code without a full logout and login, track Claude Code token usage alongside your 5-hour and 7-day subscription quota, manage MCP servers without editing JSON, resume past sessions by project and git branch, and organize your skills, slash commands, hooks, and agents. All of it one click away in your editor.

What's inside

Keyboard shortcuts

Shortcut Action
Ctrl+Alt+C / Cmd+Alt+C Open Claude Code Manager
Ctrl+Shift+P → Claude Code Manager: Open Command palette fallback
Ctrl+Shift+P → Claude Code Manager: Switch Account Native quick-pick profile switcher
Ctrl+Shift+P → Claude Code Manager: Reload Full re-parse + webview re-mount

Configuration

Open Settings (Ctrl+,) and search Claude Code Manager.

Setting Default What it controls
terminal.location editor Open resumed sessions in the editor area or the bottom panel
terminal.editorPosition beside Which editor group terminals land in
sessions.defaultFilter recent Default date filter (recent / week / month / all)
sessions.defaultProject current Default project scope (current workspace or all projects)
sessions.restoreWindowMinutes 30 Time window used to group terminals for Restore Workspace
sessions.resumeIn auto Where Resume / New / Continue opens Claude: auto (match the session's origin), terminal, extension (Claude Code chat tab), or ask (prompt each time)
marketplaceSkillsUrl unset Override URL for the in-panel Skills marketplace link
marketplaceMcpUrl unset Override URL for the in-panel MCP marketplace link

Full reference in docs/DEVELOPMENT.md.

FAQ

Does it send anything to the network? No. Zero network calls, ever. The extension reads ~/.claude/ and renders in a VS Code webview under a strict CSP that blocks every outbound request. The Account tab's Quota card is local too: your 5-hour and 7-day numbers are computed by Claude Code and shown in its statusline, and an opt-in tap caches that render to a file the extension reads from disk. Claude Code Manager never calls Anthropic and never reads your OAuth token.

How does the View button know which terminal hosts which session? Two passive signals, no instrumentation of Claude itself. (1) A SessionStart hook (auto-installed in your global ~/.claude/settings.json, removable) records each CLI boot's {sessionId, ppid} into ~/.claude/.claude-manager/active-sessions.json. The extension matches vscode.Terminal.processId against the recorded parent PID. (2) For VS Code terminals with shell integration, claude --resume <id> typed at any prompt is caught directly from the shell-execution event. cmd.exe (no shell integration) is covered by the hook path. Stale entries auto-prune after 1h or a dead PID.

Where are saved account profiles stored? ~/.claude/manager-accounts/<slug>/. Each slot holds a copy of ~/.claude.json and ~/.claude/.credentials.json plus a small profile.json with the label. These files include OAuth tokens (same plaintext format Claude CLI uses), so treat the folder as sensitive. Remove a profile and its token copy is deleted immediately.

Does it work with Cursor / Windsurf / Antigravity / VSCodium? Yes. It's a standard VS Code extension. Install from the Marketplace (VS Code, Cursor, Windsurf, Antigravity) or Open VSX (VSCodium, Theia, Gitpod).

Do I need Claude Code installed? Yes. Install Claude Code first. Either the CLI, the official VS Code extension, or both works. Claude Code Manager reads from the shared ~/.claude/ directory, so sessions from either surface show up together.

Does it modify my Claude config? Only when you explicitly act: enable or disable an MCP server, edit a permission, restore from a backup, rename or delete a session. There's also one bootstrap write on first activation. The SessionStart hook that powers the View button is added to ~/.claude/settings.json. Remove it from the Hooks tab if you'd rather not have it.

Where does my data live? In ~/.claude/, the same place Claude Code itself uses. The extension never copies, uploads, or duplicates your sessions.

Compatibility

Works on every VS Code-based editor: VS CodeCursorWindsurfAntigravityVSCodiumTheiaCodespacesGitpod

Requires VS Code 1.90+ and Claude Code installed. (On editors older than ~18 months, stay on the 1.10.x line.)

Contributing

Bug reports and PRs are welcome. See docs/DEVELOPMENT.md for local setup, build, and architecture. Browse open issues, open a new one, or check the changelog.

Architecture (v2): the webview is built with Preact + @preact/signals, feature-sliced under src/features/*/webview/, bundled by esbuild as a tiny shell that lazy-loads one code-split chunk per feature tab. Every message between the extension host and the webview flows through a single shared protocol validated at runtime with valibot, so malformed frames are rejected rather than acted on. The webview runs under a strict CSP (default-src 'none', nonce-only scripts) and makes no network calls. Lint + format is Biome; 1,400+ unit tests gate every change. Upgrading from v1? See the v1→v2 migration guide. There's nothing you need to do.

Support

If Claude Code Manager saves you time, consider sponsoring the project. Sponsorship keeps development active and the extension free for everyone.

Disclaimer

Claude Code Manager is an independent, community-built extension. It is not affiliated with, endorsed by, or sponsored by Anthropic. Claude and Claude Code are trademarks of Anthropic, PBC, used here only to describe the files this extension reads on your machine.