ccswitch

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 19, 2026 License: MIT Imports: 3 Imported by: 0

README

ccswitch

License CI Go Report Card

Run multiple Claude Code accounts on the same machine — work, personal, side project, client work — and switch between them in one command. Each account keeps its own credentials, history, plugins, and settings.

Pick a profile, run ccswitch use, and you're signed in as that account in seconds. Your other accounts stay exactly where you left them.

Why it exists

  • Claude Code keeps everything in one directory (~/.claude): your login, your settings, your plugins, your history.
  • If you use more than one Claude.ai subscription (work + personal, two clients, etc.), the only built-in option is /logout → browser → /login, every single time. Your context resets each switch.
  • Shell aliases get you partway there, but they don't handle the edge cases (the default profile, orphaned credentials, env-var auth precedence).
  • ccswitch encodes the right conventions so you stop thinking about it.

What you get

  • Fast: a single Go binary, no runtime dependencies, no daemon. ccswitch use execs claude directly.
  • 🔒 Isolated: each profile has its own credentials, history, plugins, MCP servers, memory. Switching is total.
  • 🪶 Light touch: ccswitch never reads your credentials. It just sets CLAUDE_CONFIG_DIR and runs claude — same as you would manually.
  • 🧱 Safe: your existing ~/.claude setup is left alone, available as a built-in default profile. No migration required.
  • 🖥️ Cross-platform: macOS, Linux, Windows.

Install

Download the latest release for your platform from the Releases page.

Set the version you want (see Releases):

VERSION=vX.Y.Z  # e.g. v0.1.0

macOS (Apple Silicon):

curl -fL "https://github.com/binoyPeries/ccswitch/releases/download/${VERSION}/ccswitch_darwin_arm64.tar.gz" | tar -xz && \
  sudo mkdir -p /usr/local/bin && sudo mv ccswitch /usr/local/bin/

macOS (Intel):

curl -fL "https://github.com/binoyPeries/ccswitch/releases/download/${VERSION}/ccswitch_darwin_amd64.tar.gz" | tar -xz && \
  sudo mkdir -p /usr/local/bin && sudo mv ccswitch /usr/local/bin/

Linux (x86_64):

curl -fL "https://github.com/binoyPeries/ccswitch/releases/download/${VERSION}/ccswitch_linux_amd64.tar.gz" | tar -xz && \
  sudo mkdir -p /usr/local/bin && sudo mv ccswitch /usr/local/bin/

Linux (arm64):

curl -fL "https://github.com/binoyPeries/ccswitch/releases/download/${VERSION}/ccswitch_linux_arm64.tar.gz" | tar -xz && \
  sudo mkdir -p /usr/local/bin && sudo mv ccswitch /usr/local/bin/

Windows (x86_64): grab ccswitch_windows_amd64.zip from the Releases page, extract it, and drop ccswitch.exe somewhere on your PATH.

Verify the install:

ccswitch --version

Quick start

Set up a profile for your work account:

ccswitch add work
ccswitch use work
> /login        # signs into your work Claude.ai account, once
> /exit

From now on, this is all you need:

ccswitch use work

Your existing ~/.claude setup is untouched — it's available as a built-in profile called default:

ccswitch use default    # plain claude, exactly like before ccswitch existed

Add as many profiles as you like and switch with ccswitch use <name>.

Commands

Command What it does
ccswitch list Show all profiles (--json for machine output).
ccswitch add <name> Create a new profile. --launch to drop straight into claude for the first /login.
ccswitch use <name> Launch claude with that profile. -- forwards args to claude.
ccswitch rm <name> Remove a profile (prompts to confirm).
ccswitch --version Show version + commit.
ccswitch --help Standard help, also works per subcommand.

Names must be 1–32 chars: lowercase letters, digits, -, or _. default is reserved.

Contributing

git clone https://github.com/binoyPeries/ccswitch
cd ccswitch
make check    # vet + tests + lint (same as CI)
make build    # produces ./bin/ccswitch

CI runs on macOS, Linux, and Windows. Please make sure make check passes before opening a PR.

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
launcher
Package launcher resolves the claude binary and execs it with the per-profile environment.
Package launcher resolves the claude binary and execs it with the per-profile environment.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL