Note 04 of 19
Kaibot · personal playbook
Claude Max: the multi-account playbook
Three Max subscriptions. How to see them, swap them, add a client’s token, and pin a project so a client’s burn lands on the right account, automatically.
Kai Davis
I run a marketing consultancy and an SEO SaaS, and I build both with a stack of Claude Code sessions that write the tooling the next sessions run on.
bootstrapping.io · kaidavis.com · keywordmagic.ai · doubleyourecommerce.com
The three accounts
Three separate Max subscriptions, each its own OAuth token and its own weekly reset day. The weekly quota is use-it-or-lose-it, so the reset day is the clock that matters.
| Code | Account | 7d resets |
|---|---|---|
| KSD | Account 1, the daily driver | Thu 2:59pm |
| KME | Account 2, the personal reserve | Fri 12:00am |
| OFF | Account 3, the office spare | Sun 11:00am |
| DYE | Account 4, the agency seat | retired 2026-07-30 |
Each account’s token lives at ~/.config/op/claude-<slug>.token. The statusline shows which one a session is burning as @KSD / @OFF in the machine segment.
See the burn: usage-board
One table, every account: 5h and 7d headroom left, the weekly reset, and how fresh each reading is.
usage-board # the table
usage-board --json # machine-readable
Where the numbers come from: the session you are in reports its own account live; every other account gets one probe call with its saved token. A filled dot is live, a diamond is a fresh probe, a hollow dot is last-seen, a dash is never-run, and every row says how old its reading is.
When a fresher account is worth swapping to (an expiring window with unused quota), a ⇆ swap → ACCT hint prints under the table, straight from the plan-router.
Swap the active account, or add a new one
/login, typed inside any Claude Code session, switches the whole box, running sessions included. To move one terminal pane instead, quit Claude there and run swap <slug>: it relaunches that pane on the account you name, back in the same session, and leaves the rest of the box alone.
claude-account # show the box’s /login account + saved tokens
swap kme # this pane only: relaunch on KME, same session
claude-account run acme # the long form; works for any saved account
Adding a token the safe way
A token is a secret. Do not pass tokens as arguments, since argv lands in shell history and shows up in ps output. Run claude-account add, which takes the token via stdin or the clipboard. It checks for the sk-ant-oat01- prefix, writes the token file at mode 600, and verifies length and tail without ever echoing the value. It also registers the HUD code for you.
claude setup-token # logged into the target account; copy the token
claude-account add acme # paste it, then Ctrl-D (input hidden)
pbpaste | claude-account add acme # or pipe it
claude-account add acme --clip # or pull it from the clipboard
Any slug works, so a client’s or a burner’s token drops in the same way. The slug becomes the account’s handle everywhere else.
Pin a project to an account: claude-peg
Pegging binds a project to an account so that entering it via cdc authenticates as that account, with no manual swap. This is how a client’s work always lands on the client’s subscription.
claude-peg acme # peg the CURRENT repo to the acme account
claude-peg dye-client acme # or peg a cdc-named project without cd’ing in
claude-peg --list # show every peg
claude-peg --unpeg # remove the current project’s peg
The account is always the last argument. That dodges the collision where dye is both a cdc project alias and an account slug. And it validates by token-file existence, so pegging an account you haven’t added yet fails loud instead of silently launching on the wrong one.
The peg map is stored $HOME-relative and committed, so a peg made on one machine propagates to the others. The statusline reads the peg map and shows the pegged @CODE. The account-swap nudge will not propose moving a client session off the account it is pegged to.
The client-burn move
Attach a client or burner token to a project and spend it hard before its window resets. Pegging picks the account (whose quota burns); cdc’s model arg picks the model. Two knobs.
-
Add the token
Mint it logged into that account, then save it without it touching argv.
claude setup-token claude-account add acme # paste + Ctrl-D -
Pin the project to it
From inside the project, or by cdc name.
claude-peg acme # current repo → acme -
Enter and burn
Every launch now authenticates as acme. Add a model arg to spend it aggressively, say Fable while its 5-hour window is open.
cdc dye-client # launches on acme, HUD shows @ACME cdc dye-client claude-fable-5-1 # same account, Fable model: burn the 5h window -
Watch it drain
Keep an eye on the window so you spend it to the floor before it resets.
usage-board # @ACME’s 5h + 7d headroom, live
Why the safety matters: the token export happens inside a subshell, so a later non-pegged cdc in the same terminal can’t inherit a stale peg and bill the wrong client. And a missing token refuses to launch rather than falling back to your own account. Bypass a peg once with cdc --no-peg <name>.
Cheat sheet
| Command | Does |
|---|---|
| usage-board | Every account: 5h + 7d headroom, resets, freshness |
| claude-account | Show the box’s /login account + saved tokens |
| swap <slug> | Relaunch this pane on that account (quit Claude first) |
| claude-account add <slug> | Save a minted token (stdin / --clip), register the HUD code |
| claude-peg <slug> | Pin the current project to an account |
| claude-peg <name> <slug> | Pin a cdc-named project |
| claude-peg --list / --unpeg | Show / remove pegs |
| cdc <name> [model] | Enter a project (honors its peg), optional model |
| cdc --no-peg <name> | Enter, ignoring the peg this once |
You’ve reached the end of note 04 of 19
$400 1 hour
Book a callA paid one-on-one call with answers to your questions about using AI for projects, building your AI stack, or growing your business with AI. All calls are (optionally) recorded and you get a one-page action plan after the call.