Named after Billy Milligan — the man of many identities.
Billy is a minimal CLI tool for managing multiple Claude Code accounts. It lets you pick which account to use at launch, keeping each account's credentials and settings fully isolated.
Each account gets its own configuration directory (~/.claude-<name>), passed to Claude Code via the CLAUDE_CONFIG_DIR environment variable. The first time you launch an account, Claude Code will walk you through login. After that, credentials are persisted in that directory and login is never asked again.
Account profiles are stored in ~/.config/billy/accounts.json.
- Node.js v18+
- Claude Code installed and available as
claudein your PATH
git clone https://github.com/francescocretti/billy.git
cd billy
npm installThen choose how to install the billy command globally:
Option A — npm link (recommended while developing)
npm linkCreates a symlink from the global npm bin to this project folder. Changes to index.mjs take effect immediately without reinstalling. If you move or delete the project folder, the command breaks.
Option B — npm install -g . (recommended for stable use)
npm install -g .Installs billy as a proper global package, independent of the project folder's location. After any future changes to index.mjs, re-run this command to update.
billyOn first run, you'll only see the option to add a new account:
Billy — Claude Code Switch
◆ Which account do you want to use?
│ ○ + Add account
└
Enter a name (e.g. work or personal). Billy will create an isolated config directory for it and launch Claude Code. Complete the login flow once — Billy will remember it from then on.
On subsequent runs, your saved accounts appear in the list:
Billy — Claude Code Switch
◆ Which account do you want to use?
│ ● work ~/.claude-work
│ ○ personal ~/.claude-personal
│ ○ + Add account
└
Select one and Claude Code starts immediately, no login required.
Open two terminal windows and run billy in each. Select a different account in each window — they run fully independently.
| Path | Contents |
|---|---|
~/.config/billy/accounts.json |
Account list (name + config dir path) |
~/.claude-<name>/ |
Claude Code config, credentials, and settings for that account |
To remove an account, delete its entry from accounts.json and optionally remove its config directory.
If you were already using Claude Code before installing Billy, your existing configuration, memory, settings, and credentials live in ~/.claude. Creating a new account in Billy would start from scratch and lose access to all of that.
To avoid this, manually add your existing directory to ~/.config/billy/accounts.json before running Billy for the first time:
[
{
"id": "personal",
"name": "personal",
"configDir": "/Users/your-username/.claude"
}
]This account will inherit everything from your previous Claude Code setup. Any additional accounts added through Billy will get their own fresh directory.