Every Claude account,one click away.
Swapbar sits in your menu bar and shows the 5-hour, weekly and per-model quota of every claude-swap account. Click one to switch.
macOS 14 or later · Free and open source · Needs claude-swap
or with Homebrewbrew install --cask afatmustafa/tap/swapbar
All accounts,one list
Every claude-swap account with its plan and its 5h, 7d and Fable windows, refreshed from cswap on a schedule that respects Anthropic’s rate limit.
One-clickswitching
A click on an inactive row runs cswap switch. Claude Code picks up the new credentials on its next request.
Heads-up beforeyou hit the limit
When the current account runs low, a notification and a banner in the popover name the account with the most quota left, with a Switch button. Another notification tells you when a depleted account resets.
Shortcuts fromany app
⌃⌥S opens Swapbar from anywhere and ⌃⌥⇧S jumps to the account with the most quota left. No Accessibility permission needed.
Remainingor used
Show quota as what’s left or what’s used. The menu bar title follows the same preference.
Per-modelweekly limits
Weekly model-scoped limits such as Fable appear as their own rows.
Token & cost,per account
Reads your Claude Code transcripts locally and sums tokens and cost for today and the last 30 days, per model and per account, priced at API list prices.
Auto-switchsettings
Tune cswap’s autoswitch.* thresholds, strategy and cooldown from a settings window instead of the terminal.
Light anddark mode
Follows the macOS appearance, or pin it to Light or Dark in Settings. The menu bar icon adapts on its own.
Native, tiny,written in Rust
Built with gpui, the GPU-accelerated UI framework behind Zed. No Electron, no web view: a 3.8 MB download that runs in about 50 MB of memory.
Opensource
MIT licensed. Read the code, build it yourself, open an issue.
Keep your limits in view.
Download for MacmacOS 14 or later
FAQ
- Does it need claude-swap?
- Yes. Swapbar is a front end for cswap: it reads accounts and quotas with cswap list --json and switches with cswap switch. Since 0.3.0 the setup assistant installs claude-swap for you on first run and adds your accounts by signing in to each in the browser.
- Does it call the Anthropic API itself?
- No. cswap already polls the usage endpoint and paces requests to stay under the per-account rate limit. Swapbar only asks cswap.
- Where does the plan label come from?
- From the Claude profile cswap saves for each account. Swapbar uses only the plan fields: Max 5x or 20x, Pro, or Premium and Standard for Team and Enterprise seats. The label updates when cswap refreshes that profile.
- Where do the cost numbers come from?
- From the JSONL transcripts Claude Code writes under ~/.claude/projects, deduplicated by message id, priced at public API list prices. They are an estimate, not your subscription bill.
- How does it know which account a cost belongs to?
- Transcripts don’t name the account, so Swapbar works it out: the default Claude Code profile follows cswap’s switch log, cswap run sessions carry their account number, and every other profile counts for the account it is logged in to. Treat it as an estimate.
- Does anything leave my Mac?
- Only cswap’s own calls to Anthropic, plus two small requests from Swapbar: a daily fetch of model prices from models.dev and an update check against GitHub releases every 6 hours, which you can turn off.
- Is it signed and notarized?
- Yes. Since 0.1.1 every release is signed with a Developer ID and notarized by Apple, so Swapbar opens with a double-click like any other Mac app.
- Can I install it with Homebrew?
- Yes: brew install --cask afatmustafa/tap/swapbar. Homebrew then keeps it up to date with brew upgrade --cask swapbar.