atrium — Docs
docs/agents/accounts.md

Accounts & quota

Running Claude Code across several accounts, and watching your limits.

If you hit rate limits, one subscription is a bottleneck. atrium can register several Claude accounts, show what's left on each, and move a running conversation onto a fresh one — either when you say so or automatically when a limit trips.

This surface is Claude Code specific today. Other adapters show context usage but not account quota.

The account chip

A user-icon chip sits in the composer, beside the model and usage controls, and in the launcher before a session exists.

Its ring paints both plan-quota windows at once — the 5-hour window and the weekly window — on a shared radius, with the shorter arc drawn last so neither buries the other. Arc colors are derived from your theme's accent, so they stay distinguishable in every theme, and a swatch legend in the tooltip and popover says which arc is which.

Open the popover for per-account rows: plan tier, quota rings, remaining windows, and the reset times.

Adding an account

Adding an account is one button, not a copy-paste of a token:

  1. Sign in to the account you want to add at claude.ai in your normal browser.
  2. Click Add account. atrium mints a setup-token for whichever identity Claude Code is currently logged in as, and files it under that identity's derived slug.
The authorization URL deliberately opens in your default browser, not an atrium browser pane — the flow authorizes whatever account claude.ai is signed into, and only your own browser carries that session.

There is no label to type and no token to paste, which also means no chance of filing a credential under the wrong name. Tokens are stored Rust-side in a 0600 file and never enter the webview or app state. atrium also identifies and names the account already in your keychain, models it as Current, and de-duplicates it against explicitly added accounts so the same login never appears twice.

Switching

Pick Switch on any account row. atrium persists the binding, respawns the pane, injects that account's token, and resumes — so the conversation continues under the new account rather than starting over.

Switching never happens mid-turn.

Auto-switch

Toggle auto-switch on a pane and a rate-limit failure fails over automatically to a healthy account, re-prompting after the failover so the turn actually completes. A per-pane cooldown keeps it from thrashing.

An app-wide strategy decides where it goes:

StrategyBehavior
Least usedFail over to the account with the most headroom. Spreads load evenly.
Next to resetFail over to the account whose constraining window resets soonest. Rotates onto whatever frees up first.
A launcher account selection also becomes the default for new panes.

Watching usage

The composer's usage ring reports context consumption for the current session, with a breakdown popover and a Compact action. For Claude Code panes, the same popover leads with your account's 5-hour and weekly limit windows, so context pressure and quota pressure are readable in one place.

See Agent chat → The composer.