Skip to content

Releases

ccam 0.5.0

Choose a tag to compare

@jatinkrmalik jatinkrmalik released this 11 Nov 22:58
c493191

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 doctor

It checks the whole setup and says what to do about anything that is wrong:

  • ccam and the claude shim are installed and up to date
  • ~/.ccam/bin is on PATH, ahead of the real claude
  • Claude Code itself is installed
  • each account is signed in and its shared folders still exist
  • aliases and the nearest .ccamrc point 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 setup points to ccam doctor --fix when 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 | sh

Windows (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

Choose a tag to compare

@jatinkrmalik jatinkrmalik released this 11 Nov 22:02
a399184

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 | sh

Windows (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/bin and 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 is ccam.
  • 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

Choose a tag to compare

@jatinkrmalik jatinkrmalik released this 11 Nov 21:21
107bbac

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

  1. Download the archive for your platform below and unpack it.
  2. From the unpacked folder, run ccam setup (.\ccam.exe setup on Windows).
  3. 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, then ccam login work. Each account has its own Claude Code config folder, so its own sign-in and history. Your existing ~/.claude is the built-in default account and is never modified.
  • Choosing an account. ccam use work sets it globally, ccam local work writes a .ccamrc for the current project, and ccam env work switches one terminal. ccam run work -- <args> runs once without changing anything.
  • Aliases. ccam alias cw work makes cw a command that starts Claude Code as work.
  • Shared setup. New accounts link skills, agents, commands, plugins, CLAUDE.md and settings from ~/.claude, unless you pass --isolated.
  • ccam current shows which account claude would use in the current folder, and why.

Changes since v0.1.0

  • Renamed from cvm to ccam. The command, the ~/.ccam folder, the .ccamrc file and the CCAM_* variables all follow the new name. There is no migration from ~/.cvm or .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 profile works as another name for ccam 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

Choose a tag to compare

@jatinkrmalik jatinkrmalik released this 11 Nov 21:26
e2dbbde

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, or CVM_VERSIONS=1 for one terminal.
  • While it is off, version pins in .cvmrc, aliases and the global choice are kept but ignored, and cvm current says so.
  • cvm list shows accounts, who is signed in and their aliases. The grid against versions appears only when pinning is on.

Added

  • cvm profile as another name for cvm account.

cvm 0.2.0

Choose a tag to compare

@jatinkrmalik jatinkrmalik released this 11 Nov 21:26
c3348f2

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@stable and @latest are accepted anywhere an account name is.
  • Aliases that are commands. cvm alias cw work saves a choice and creates a cw command that starts Claude Code with it.
  • One project file. .cvmrc holds account = … and version = …, like .nvmrc.
  • Version tags. cvm version tag stable 2.1.311.
  • Grid view. cvm list shows accounts against versions.
  • Project icon and README badges.

Changed

  • "Profiles" are now called accounts, under cvm account add|list|login|remove.
  • .claude-profile and .claude-version are 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 setup run from a new build now replaces an older installed copy.

cvm 0.1.0

Choose a tag to compare

@jatinkrmalik jatinkrmalik released this 11 Nov 21:26

First prototype, under the tool's original name, cvm. Source only; no binaries are attached to this release.

What it did

  • Profiles. cvm add work created a separate Claude Code config folder (CLAUDE_CONFIG_DIR) with its own sign-in and history. The existing ~/.claude was the built-in default profile and was never modified.
  • A claude shim. cvm setup put a claude launcher on PATH that picked a profile and then started the real Claude Code.
  • Three scopes. cvm env for one terminal, cvm local for a folder (a .claude-profile file), cvm use globally.
  • Version pins. cvm version install, pin and local (a .claude-version file) to hold a profile or folder on one Claude Code build.
  • Shared setup. New profiles linked skills, agents, commands, plugins, CLAUDE.md and settings from ~/.claude.

Built and tested on Windows only.