aspasskiy / claude-van-dam
git clone https://github.com/aspasskiy/claude-van-dam.git
v1.0 · 1d ago
—
+29
stars, 24h · #276
+29
stars, 7 days · #1,373
+29
stars, 30 days · #9,096
29
★ total · +29% this week
0
forks · 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageSwift
License—
Created2026-10-19 (1d ago)
Last push1d ago
Watchers0
OwnerUser
Links
README excerpt
Claude Van Dam A macOS menu bar app for people with more than one Claude account. See your limits at a glance, switch in one click, and let it switch for you before a session runs dry. ## Features - **Limits in the menu bar.** Two bars, one for the 5-hour session and one for the week, plus the tighter of the two as a number. - **One-click switching.** Click an account to make it Claude Code's login. Running sessions pick it up within about 30 seconds. - **Auto-switch** (off by default). When the active account reaches 95% (or looks set to hit 100% before the next check), the app moves to the account with the most headroom and sends a notification. You can set the threshold to 90, 95, 98 or 99%. - **Fresh tokens.** Expired logins on inactive accounts are renewed, so their numbers stay current. - **Accounts.** Add one with a browser login, log back in to a signed-out account, remove one, and export or import the whole set. - **Keep awake.** Stops the Mac from sleeping while work runs. The display can still turn off and lock. Left-click the icon to open the popover. Right-click it for settings: Auto-Switch, Keep Awake, Launch at Login, the menu bar label, Export/Import and Quit. ## Install Needs macOS 14+ and Claude Code (adding an account runs `claude auth login`). **Homebrew** [code] Update with `brew upgrade --cask claude-van-dam`, remove with `brew uninstall --cask claude-van-dam`. **Download.** Get `Claude-Van-Dam- .dmg` from Releases, open it and drag Claude Van Dam to Applications (a `.zip` with the same app is there too). Releases are signed with Developer ID and notarized by Apple, so they open without Gatekeeper warnings. **From source.** Needs Swift 6 (Xcode or the command line tools). [code] A source build is signed ad hoc and only meant for your own Mac. ## How it works - Claude Code's own login lives in the Keychain item `Claude Code-credentials`. Switching swaps that item and the `oauthAccount` block of `~/.claude.json` for a saved copy, under the same locks Claude Code takes, so it never writes over a token Claude Code is refreshing. - Saved accounts live in `~/.claude-swap-backup` (roster, profiles, usage cache) and in the login Keychain (service `claude-swap`, one item per account). - All Keychain access goes through `/usr/bin/security`, the binary those items trust, so Claude Code can keep reading its login without prompts. A secret normally reaches `security` on stdin; a very long one (a login carrying large MCP OAuth data) is passed as an argument instead, which other processes of your user can see in `ps` for that moment. - Usage comes from `api.anthropic.com/api/oauth/usage`, polled every 1–30 minutes per account (faster for the active account near the threshold, slower after a 429). - The only network traffic is to Anthropic: the usage and profile endpoints on `api.anthropic.com` and the OAuth token endpoint on `platform.claude.com`. - `CLAUDE_CONFIG_DIR` profiles aren't supported: with it set, the app w