Skip to content

Platform matrix

agent-switch runs on macOS, Linux and Windows with Node.js 20 or newer. Most of it works everywhere; the tables below list where it does not. For a live check of your own machine, run agent-switch doctor.

FeaturemacOSLinuxWindows
Accounts side by side, folder rules, pools, balanced startsYesYesYes
Usage meters, limit protection, limit suggestionsYesYesYes
Shell integrationzsh, bash, fish, PowerShellzsh, bash, fish, PowerShellPowerShell (cmd.exe: use agent-switch run)
Background service starts at login vialaunchdsystemd --userTask Scheduler
Where Claude Code keeps an account’s loginKeychain, one entry per account folder (file as fallback).credentials.json in the account folder.credentials.json in the account folder
Desktop app (agent-switch gui)Universal .app (Apple silicon and Intel)x64 AppImagex64 portable .exe
Desktop notificationsShown by the desktop appFrom the service with os-notify on (notify-send)From the service with os-notify on
Switch a running session’s account (rebind)YesNoNo
Desktop apps per account (open, launcher, app-settings)YesNoNo
Sign in with a chosen browser (--browser)YesYesNo
tmux sessions (run --tmux, compact, takeover --in-place)YesYesNo
Shared settings (share on)YesYesFolders yes; files need Developer Mode
Shared conversations (share on --history)YesYesNo
Antigravity: which account is signed in, own keychain per accountYesNoNo

On Linux and Windows on other processor types (for example ARM), the CLI works but agent-switch gui has no build to download.

agent-switch (or agent-switch gui) downloads the app itself, never an installer, and keeps it in ~/.agent-switch/gui/<version>/. Because the CLI downloads it rather than your browser, macOS does not put a download quarantine on it. The installers attached to each GitHub release (.dmg, .msi, -setup.exe, .deb, .rpm) are an alternative; see Install.

FeatureClaude CodeCodexAntigravity
On by defaultYesYesNo (providers enable --provider antigravity)
Account folder variableCLAUDE_CONFIG_DIRCODEX_HOMEHOME
add / login sign-inclaude auth logincodex loginagy asks when it starts
import the current loginYesYesNo
Usage meters5-hour and weeklyYes, plus banked resetsNo
Balanced starts, limit protection, limit suggestionsYesYesNo usage, so starts use the preferred account
One account, one session (guard)YesNoNo
Keep unused logins fresh (keep-signed-in)YesYesmacOS only
Sessions list, preview, remove, restoreYesYesNo
Move a session (takeover)YesYes (move only, no --keep-source)No
Switch a running session (rebind)Yes (macOS)NoNo
Hand a session off to another tool (handoff extract, as the source)YesYesNo
compact, run --tmuxYesYesrun --tmux only
share, config export|import, hooks, alerts, web, protection waitYesNoNo
Desktop app per account (macOS)Claude DesktopCodex in VS Code, Codex desktop appAntigravity
  • Never run claude auth logout to switch accounts. It signs the login out on the server, not just on your machine. With agent-switch you never need to log out: every account stays signed in.
  • The Claude Code extension for VS Code ignores CLAUDE_CONFIG_DIR. It uses the default login, whatever account a folder is pinned to. The folder rules apply to the claude command in a terminal.
  • On Linux, Claude Code’s state folder is shared. CLAUDE_CONFIG_DIR moves Claude Code’s config folder, but ~/.local/state/claude/ stays one folder for all accounts.
  • cmd.exe has no shell integration. Use agent-switch run <name>, or use PowerShell.
  • An API key in your environment beats every account. See Environment variables.