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 ↗