Switch AI accounts without signing in over and over.
Switch is a native macOS account manager for supported AI coding tools. Keep multiple logins ready, select an account from the menu bar, and open the right tool without repeating its sign-in flow.
Synthetic Preview data. The account names and usage values are examples.
Download Switch for Mac,
unzip it, and move Switch.app to Applications. Switch requires macOS 14 or
later on Apple Silicon. Install the command-line tool for each provider you use.
| Provider | Account switching | Usage limits |
|---|---|---|
| Codex CLI | Supported | Supported |
| Grok Build | Supported | Not exposed in Switch |
| Claude Code | Supported, as separate profiles | Not exposed in Switch |
| Gemini CLI, Antigravity CLI | WIP | WIP |
You can also build Switch from source.
Open the terminal interface without a global install:
npx --yes @smdl/switchOr install it globally:
npm install --global @smdl/switch
switchThe npm build currently supports Apple Silicon Macs. From a source checkout, the direct path is:
make tuiThe terminal interface uses the same account store and switching engine as the
Mac app. Use the arrow keys to move, Enter to select, and Escape to go back.
The existing ai-manager command remains available as an alias. Run
switch help for non-interactive commands and JSON output.
Choose Add Account, then select Codex CLI, Grok Build, or Claude Code.
- Sign in through the provider's isolated temporary home.
- Return to Switch and choose Check Now.
- Choose Switch in the menu bar, or Set as Default in the app.
- Choose Open to launch that provider with the selected account.
Sign-in runs in a private temporary home. It does not replace your current login while you add another account.
The menu bar lists every saved account and the current default for each provider. When a provider exposes usage data, Switch also shows its available limits and refreshes them at launch and every three minutes. The status item can show up to four account percentages, and the popover lists every account without inventing unavailable data.
| Light | Dark |
|---|---|
![]() |
![]() |
Switch keeps each provider's settings, extensions, and work history in its shared home. Selecting an account changes only that provider's credential file. Each provider keeps its own default account, and all providers use the same switching engine.
flowchart LR
A["Personal account"] --> S["Provider adapter"]
B["Work account"] --> S
subgraph H["Shared provider home"]
AUTH["Credential<br/>replaced"]
CONFIG["Settings and extensions<br/>unchanged"]
HISTORY["History and data<br/>unchanged"]
end
S --> AUTH --> NEW["New provider sessions"]
Provider notes:
- Codex CLI: Switch replaces only
~/.codex/auth.json. Existing sessions keep the credential they already loaded. Usage limits, history, activity, imports, and Cleanup are available. - Grok Build: Switch replaces only
~/.grok/auth.json. The official CLI reloads that file before its next API call. Account switching is available; usage data is not exposed. - Claude Code: Each account is a separate profile with its own
CLAUDE_CONFIG_DIR, so several can stay signed in. The default applies to sessions launched through Switch; a plainclaudecommand keeps its own login.
- Check a saved account. Validate its credential without making it the default, and refresh usage when the provider exposes it.
- Import an existing account. Review a credential or provider home before adding it. Extra settings and history remain optional where supported.
- Explore supported history. Search conversations, track daily token activity, and retain summaries when the provider supplies compatible data.
- Clean up safely. Preview supported conversations and caches, move them to recoverable trash, and restore them when needed.
Codex CLI, Grok Build, and Claude Code are enabled providers. Gemini CLI and Antigravity CLI appear as WIP choices in the Add Account catalog.
For sample accounts without real credentials, use the isolated Preview build. Development and release notes cover packaging and safety. The product specification defines current behavior. Local ignored goal ledgers record current work and old verification.


