Install
The extension is not published to the VS Code Marketplace yet. Install from the latest.vsix on the GitHub Releases page:
npm run package:ext.
Commands
Every command is available through the command palette (⌘⇧P):
Claude Profile: Switch... prompts a window reload after applying the profile. The reload is required — the official Claude Code extension only re-reads its environment settings when the panel is reopened or the window reloads.Status bar
A status bar item (bottom right) always shows the active profile. Clicking it is a shortcut to Claude Profile: Switch…. The status bar item is tracked machine-wide, matching what’s actually true of the Claude Code panel’s routing (see below).Workspace pinning
Bind a repository folder to a specific profile so you get a modal warning if you open it with the wrong profile active:- Run Claude Profile: Pin This Workspace To….
- Pick the profile the workspace expects.
.vscode/ccp.local.json:
.vscode/ccp.local.json
.gitignore and only ever contains a profile name — never a secret, base URL, or Keychain reference. Opening a pinned workspace while a different profile is active triggers a modal warning before anything proceeds. The check warns; it doesn’t block.
The panel is machine-wide, for every auth type
The official Claude Code extension declares itsclaudeCode.environmentVariables setting with "scope": "application". VS Code enforces application scope as User settings only at the core level — attempting to write it at Workspace or WorkspaceFolder scope throws "can be written only into User settings." (This isn’t an assumption; an earlier version of ccp tried Workspace scope for non-secret profile types and hit that exact error.)
Practical effect: switching profiles in the VS Code Claude Code panel changes it for every open window’s panel, for every auth type, no exceptions.
Real per-context parallelism — for example, personal in one terminal tab and work in another — only exists on the terminal side, via the zsh wrapper function, which genuinely is per-shell. The workspace pin check is there to warn you when the machine-wide panel doesn’t match a workspace’s expectation.
Known limitations
- The extension is macOS-only today, matching the CLI’s Keychain and zsh dependencies.
- The workspace pin check warns rather than blocks — a hard stop on every folder change would be more disruptive than useful.
- Marketplace publishing is on the roadmap; today, installs come from
.vsixfiles on GitHub Releases.