v0.1.0 · Rust TUI · MIT License

clawswapper

Switch between Claude accounts and API credentials in seconds.
No OAuth juggling. No logout dance. Smart, fast, and beautiful.

Also available on GitHub · Releases

Everything you need to stay in flow.

Built for developers and power users who switch between Claude accounts daily.

🧠
Smart detection
Reads your live credentials.json on startup and automatically knows which profile is active — no stale state.
🔑
OAuth & API key profiles
Manages both Claude.ai OAuth sessions and API key configurations (.claude.json) in one place.
Token expiry display
Decodes JWT expiry from OAuth tokens without any network call. See "exp in 3d", "exp in 2h", or "✗ expired" right in the list.
🪪
Save unsaved sessions
Open clawswapper while logged in and it detects the session isn't saved yet. One keypress captures and names it as a profile.
Quick switch with 1–9
Press a number key to jump instantly to profile N. Confirm with Enter. Fastest possible credential switch.
🔍
Fuzzy search
Press / to filter profiles by name instantly. Navigate results with ↑↓ and switch with Enter.
🗂
Two-pane detail view
On wide terminals a detail panel shows email, token expiry, last-used timestamp, masked API key, and file path for each profile.
🔒
No auto-login
clawswapper never touches OAuth or Google sign-in flows. You log in; it manages the resulting credentials. Total control stays with you.
🦀
Pure Rust, zero runtime
Single statically-linked binary. No Node, no Python, no Electron. Ships as an AppImage on Linux and a standalone .exe on Windows.

See it in action.

Two-pane layout on wide terminals. Automatic active-profile detection. Token expiry at a glance.

clawswapper
╭─ clawswapper — credential switcher ───────────────────  ╭─ Detail ────────────────────────────────────────╮
│                                                       │  │                                                 │
   OAuth   My Account              ← active  exp 3d  │  │  My Account                       ← active  
│                                                       │  │                                                 │
│ ▶   API    Work API                                    │  │  Type      API                              
│                                                       │  │  API Key   sk-ant-•••••••••…XY1Z           
   OAuth   Wife's Account                    exp 7d  │  │  Last used 2d ago                           
   OAuth   Work OAuth                      ✗ expired │  │  File      ~/.clawswapper/profiles/work-api.json │
│                                                       │  │                                                 │
╰───────────────────────────────────────────────────────╯  ╰─────────────────────────────────────────────────╯

[↑↓] navigate  [Enter] switch  [1-9] quick switch  [/] search  [r] rename  [?] help  [q] quit

Simple. Deliberate. Fast.

1
Add profiles
Log into each Claude account with claude login, then press [a] in clawswapper to capture and name the credentials.
2
Open clawswapper
Run clawswapper in any terminal. It instantly detects your current session and highlights the matching profile.
3
Switch accounts
Select a profile, press [Enter]. For OAuth accounts it asks about renewal — if expired, guides you through claude login and re-captures.
4
You're in
The correct credentials.json or .claude.json is in place. Claude CLI is now running as the account you chose.

Get clawswapper.

Pre-built binaries for Linux and Windows. Or build from source with Cargo.

🐧
Linux
x86_64 AppImage · glibc 2.35+
$ chmod +x clawswapper-linux-x86_64.AppImage
$ ./clawswapper-linux-x86_64.AppImage
↓  Download AppImage
🪟
Windows
x86_64 · Windows 10+ · Windows Terminal recommended
> clawswapper-windows-x86_64.exe
↓  Download .exe
🦀
Build from source
Rust 1.70+ · Cargo
$ git clone https://github.com/levkropp/clawswapper
$ cd clawswapper
$ cargo build --release
View on GitHub ↗