git identity manager.
done right.
# Switch your name, email, SSH key, and GitHub account
# across profiles — instantly, without touching config files.
A keyboard-driven TUI that gets out of your way.
brew install aksisonline/tap/gitswitchidentity manager for git
Current aksisonline · user@gmail.com
e edit · ? cli tips · c theme · q quit
everything gh auth switch
can't do.
GitHub CLI only manages API tokens. Your commit identity — the name and email baked into every commit — is completely separate. gitswitch handles both.
user.name and user.email in your global git config. No more wrong-email commits.core.sshCommand to force a specific key with IdentitiesOnly=yes, preventing agent fallback.gh CLI auth in lockstep with your git identity — one switch, both updated.cd in.gitswitch install wires up your shell. Pin a profile to a repo and it just works.vs gh auth switch
Two tools, two different problems. gitswitch handles what the GitHub CLI intentionally ignores.
| capability | gh auth switch | gitswitch |
|---|---|---|
| github api tokens | ✓ | ✓ (optional) |
| commit name + email | ✗ | ✓ |
| ssh key per identity | ✗ | ✓ |
| gpg signing key | ✗ | ✓ |
| per-repo auto-switch | ✗ | ✓ |
| interactive TUI | ✗ | ✓ |
| no runtime deps | ✗ | ✓ (single binary) |
up in 30 seconds.
brew install aksisonline/tap/gitswitchcurl -fsSL https://raw.githubusercontent.com/aksisonline/gitswitch/main/.github/install.sh | bashgo install github.com/aksisonline/gitswitch@latestwhat's next
gitswitch is Go all the way. Here's what's shipping.
HTTPS credential helper — keychain-backed PAT routing so HTTPS clones and pushes just work alongside SSH.
GitHub OAuth login — gitswitch login authenticates via device flow, creates your profile automatically. No manual config.
Mouse support + TUI refresh — full mouse interaction, alias management, shell settings, and release notes built into the TUI.
Beta channel — gitswitch beta / gitswitch stable to opt in and out of canary builds from the CLI.
Multi-host profiles — one profile, multiple GitHub hosts (github.com + github.corp.com), each with its own key and token.
Session isolation — gitswitch shell gives each terminal its own identity via env vars. Parallel work, zero collisions.
Doctor + diagnostics — per-repo identity health check with --fix for auto-repair and --json for agent use.
Team presets — gitswitch apply <url> bootstraps all profiles from a shared signed config. One command onboarding.
In-repo config — .gitswitch.yaml in the repo root declares required profiles and identity policies.
Stability guarantee — stable config schema, stable keychain key convention. No breaking CLI changes without a major bump.