Repository navigation
Releases
ccam 0.5.0
ccam switches between multiple Claude Code accounts on one machine. This release adds ccam doctor, which checks your setup and can repair it.
New: ccam doctor
ccam doctorIt checks the whole setup and says what to do about anything that is wrong:
- ccam and the
claudeshim are installed and up to date ~/.ccam/binis on PATH, ahead of the realclaude- Claude Code itself is installed
- each account is signed in and its shared folders still exist
- aliases and the nearest
.ccamrcpoint at accounts that exist
ok ccam is installed in /home/you/.ccam/bin
ok the `claude` shim is in place
FAIL PATH: /usr/local/bin has a `claude` and comes before /home/you/.ccam/bin
fix it with: ccam doctor --fix
ok Claude Code 2.1.316 at /usr/local/bin/claude
warn account work: not signed in
run: ccam login work
ccam doctor --fix repairs what it can: it reinstalls the shim and alias commands, and puts ~/.ccam/bin at the front of PATH. On Windows it changes your user PATH; on macOS and Linux it adds one line to your shell's startup file (.zshrc, .bashrc, .bash_profile, fish's config.fish, or .profile). Plain ccam doctor never changes anything.
Also
ccam setuppoints toccam doctor --fixwhen PATH is not set up.- Linux and macOS now have an end-to-end test (68 checks) that runs on every change.
- A new release is only marked as latest once its binaries are attached, so the one-line installers never see a release without downloads.
Install or upgrade
macOS and Linux
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/ccam/main/install.sh | shWindows (PowerShell)
irm https://raw.githubusercontent.com/jatinkrmalik/ccam/main/install.ps1 | iex| Other ways | Command | Then |
|---|---|---|
| Homebrew | brew install jatinkrmalik/ccam/ccam |
ccam setup |
| npm | npm install -g ccam-cli |
ccam setup |
| Cargo | cargo install ccam |
ccam setup |
Each archive below has a .sha256 file next to it. The binaries are not code-signed, so macOS Gatekeeper and Windows SmartScreen may warn when you run a manually downloaded copy.
Known limits
- Used day to day on Windows only so far. Linux and macOS pass the automated end-to-end test, with a stand-in for Claude Code; please report problems.
- A switch affects new sessions only; a running session keeps its account.
- The Claude desktop app keeps its own sign-in and does not go through ccam.
ccam 0.4.1
ccam switches between multiple Claude Code accounts on one machine. This release makes it easy to install; the tool itself is unchanged from 0.4.0.
Install
macOS and Linux
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/ccam/main/install.sh | shWindows (PowerShell)
irm https://raw.githubusercontent.com/jatinkrmalik/ccam/main/install.ps1 | iex| Other ways | Command | Then |
|---|---|---|
| Homebrew | brew install jatinkrmalik/ccam/ccam |
ccam setup |
| npm | npm install -g ccam-cli |
ccam setup |
| Cargo | cargo install ccam |
ccam setup |
Or download an archive below, unpack it and run ccam setup. Each archive has a .sha256 file next to it. The binaries are not code-signed, so macOS Gatekeeper and Windows SmartScreen may warn when you run a manually downloaded copy.
New
- One-line installers for macOS, Linux and Windows. They download the latest release, verify its checksum, install into
~/.ccam/binand put that folder at the front of your PATH. - Homebrew tap:
jatinkrmalik/ccam. - npm package:
ccam-cli, which downloads the matching binary. The command it installs isccam. - crates.io:
ccam. - README rewritten with an install table and an FAQ.
Behind the scenes
- Releases now publish to crates.io and npm from the release workflow, with no stored tokens.
- The Homebrew formula updates itself when a new release appears.
- CI runs both installers and the npm package on Linux, macOS and Windows.
Known limits
- Used day to day on Windows only so far. macOS and Linux are built and tested automatically but have had little real use; please report problems.
- A switch affects new sessions only; a running session keeps its account.
- The Claude desktop app keeps its own sign-in and does not go through ccam.
ccam 0.4.0
ccam (Claude Code account manager) keeps several Claude Code logins on one machine and lets you choose between them per terminal, per project or globally. This is the first release with downloadable binaries.
Prototype: CLI only. Not affiliated with Anthropic.
Install
- Download the archive for your platform below and unpack it.
- From the unpacked folder, run
ccam setup(.\ccam.exe setupon Windows). - Add the folder it prints to the front of your PATH, then open a new terminal.
| Platform | File |
|---|---|
| Windows x64 | ccam-v0.4.0-x86_64-pc-windows-msvc.zip |
| macOS Apple silicon | ccam-v0.4.0-aarch64-apple-darwin.tar.gz |
| macOS Intel | ccam-v0.4.0-x86_64-apple-darwin.tar.gz |
| Linux x64 (static) | ccam-v0.4.0-x86_64-unknown-linux-musl.tar.gz |
Each archive has a .sha256 file next to it. The binaries are not code-signed, so macOS Gatekeeper and Windows SmartScreen may warn on first run.
What it does
- Accounts.
ccam account add work, thenccam login work. Each account has its own Claude Code config folder, so its own sign-in and history. Your existing~/.claudeis the built-indefaultaccount and is never modified. - Choosing an account.
ccam use worksets it globally,ccam local workwrites a.ccamrcfor the current project, andccam env workswitches one terminal.ccam run work -- <args>runs once without changing anything. - Aliases.
ccam alias cw workmakescwa command that starts Claude Code aswork. - Shared setup. New accounts link skills, agents, commands, plugins,
CLAUDE.mdand settings from~/.claude, unless you pass--isolated. ccam currentshows which accountclaudewould use in the current folder, and why.
Changes since v0.1.0
- Renamed from
cvmtoccam. The command, the~/.ccamfolder, the.ccamrcfile and theCCAM_*variables all follow the new name. There is no migration from~/.cvmor.cvmrc. - Accounts are the main thing. Pinning a Claude Code build is now a debugging feature, off by default (
ccam version on). - One project file,
.ccamrc, replaces the separate profile and version files. - Aliases that are also commands.
ccam profileworks as another name forccam account.- CI builds and tests on Linux, macOS and Windows.
- MIT license file added.
Known limits
- Tested by hand on Windows only. macOS and Linux build and pass the automated tests, but have not been used with a real Claude Code sign-in.
- A switch affects new sessions only; a running session keeps its account.
- The Claude desktop app keeps its own sign-in and does not go through ccam.
- MCP servers added at user scope are per account and need adding once for each.
cvm 0.3.0
Accounts became the main thing; version pinning moved behind a switch. Still named cvm at this point. Source only; no binaries are attached to this release.
Changed
- Version pinning is off by default. Claude Code updates itself and projects rarely depend on one build, so pinning is now a debugging feature. Turn it on with
cvm version on, orCVM_VERSIONS=1for one terminal. - While it is off, version pins in
.cvmrc, aliases and the global choice are kept but ignored, andcvm currentsays so. cvm listshows accounts, who is signed in and their aliases. The grid against versions appears only when pinning is on.
Added
cvm profileas another name forcvm account.
cvm 0.2.0
Accounts and versions became two separate choices that combine freely. Still named cvm at this point. Source only; no binaries are attached to this release.
Added
- Selectors.
work,work@2.1.311,work@stableand@latestare accepted anywhere an account name is. - Aliases that are commands.
cvm alias cw worksaves a choice and creates acwcommand that starts Claude Code with it. - One project file.
.cvmrcholdsaccount = …andversion = …, like.nvmrc. - Version tags.
cvm version tag stable 2.1.311. - Grid view.
cvm listshows accounts against versions. - Project icon and README badges.
Changed
- "Profiles" are now called accounts, under
cvm account add|list|login|remove. .claude-profileand.claude-versionare replaced by.cvmrc.- Account and version resolve separately: alias or
cvm run, then the terminal, then the nearest.cvmrc, then the global choice, then the default.
Fixed
cvm setuprun from a new build now replaces an older installed copy.
cvm 0.1.0
First prototype, under the tool's original name, cvm. Source only; no binaries are attached to this release.
What it did
- Profiles.
cvm add workcreated a separate Claude Code config folder (CLAUDE_CONFIG_DIR) with its own sign-in and history. The existing~/.claudewas the built-indefaultprofile and was never modified. - A
claudeshim.cvm setupput aclaudelauncher on PATH that picked a profile and then started the real Claude Code. - Three scopes.
cvm envfor one terminal,cvm localfor a folder (a.claude-profilefile),cvm useglobally. - Version pins.
cvm version install,pinandlocal(a.claude-versionfile) to hold a profile or folder on one Claude Code build. - Shared setup. New profiles linked skills, agents, commands, plugins,
CLAUDE.mdand settings from~/.claude.
Built and tested on Windows only.