A beautiful Rust TUI for switching between Claude accounts and API credentials.
No OAuth juggling. No logout dance. Smart, fast, deliberate.
- Smart detection — compares live
credentials.jsonagainst saved profiles; knows which account is active without trusting stale state - OAuth & API key profiles — manages both Claude.ai logins and
.claude.jsonAPI key configs - Token expiry display — decodes JWT
expfield and shows "exp in 3d", "✗ expired", etc. - Save unsaved sessions — detects unrecognised credentials and offers to name and save them
- Two-pane detail view — email, expiry, last-used, masked API key, file path
- Quick switch [1–9] — jump to any profile by number, confirm with Enter
- Search [/] — filter profiles by name instantly
- Rename [r], reorder [Shift+J/K], help [?]
chmod +x clawswapper-linux-x86_64.AppImage
./clawswapper-linux-x86_64.AppImageRun clawswapper-windows-x86_64.exe in Windows Terminal or PowerShell.
cargo build --release
./target/release/clawswapperRequires Rust 1.70+.
- Log in with
claude loginfor each account you use - Open clawswapper, press
[a]to add the current session as a named profile - Repeat for each account
- Use clawswapper to switch between them — it swaps
~/.claude/credentials.json(OAuth) or~/.claude/.claude.json(API) - If tokens expire, clawswapper guides you through
claude loginand re-captures the new credentials
Credentials are stored in ~/.clawswapper/profiles/.
| Key | Action |
|---|---|
↑ / k |
Navigate up |
↓ / j |
Navigate down |
Enter |
Switch to selected profile |
1–9 |
Quick switch to profile N |
/ |
Search/filter profiles |
a |
Add new profile |
d |
Delete selected profile |
r |
Rename selected profile |
s |
Save unsaved session |
Shift+K |
Move profile up |
Shift+J |
Move profile down |
? |
Help overlay |
q |
Quit |
MIT