Skip to content

clam

Manage multiple Claude Code accounts on a single machine.

Each account gets its own isolated directory for auth, config, and session data — so two Claude Code accounts never interfere with each other.

Think aws configure + kubectl config use-context, but for Claude Code.

The Problem

Claude Code stores auth tokens, session history, and config in a single directory (~/.claude/). If you use Claude Code with multiple accounts — say, a work account and a personal one — they collide. Logging into one overwrites the other's state.

The Solution

clam gives each account its own isolated profile directory. Switching between accounts is a single command, and clam run launches Claude Code pointing at the right directory automatically.

~/.clam/
├── config.toml      # Profile registry
├── state.toml       # Active profile pointer
└── profiles/
    ├── work/        # Claude Code state for "work" account
    └── personal/    # Claude Code state for "personal" account

Install

brew install jose2kk/tap/clam
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/jose2kk/clam/releases/latest/download/clam-cli-installer.sh | sh
cargo binstall clam-cli
# or: cargo install clam-cli

See Getting Started for all installation options.

Quick Example

# Create two profiles
clam add work --inherit
clam add personal

# Switch between them
clam use work

# Launch Claude Code with the active profile
clam run

Features

  • Profile isolation — each account's auth, config, and sessions live in separate directories
  • Explicit switching — no accidental cross-account leakage
  • Config inheritance — optionally share settings, extensions, and tools across profiles via --inherit
  • Environment sanitizationclam run strips stale CLAUDE_* and ANTHROPIC_* env vars
  • Shell integrationeval "$(clam env)" sets up your current shell session
  • JSON output — machine-readable output for scripting with --json flags
  • Shell completions — tab completion for bash, zsh, and fish

Next Steps