# 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/gitswitch # 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.
user.signingkey alongside your identity so signed commits always use the right key.
gh auth switch on profile change. Best-effort — your git config always switches even if gh fails.
gitswitch pin.
cd, and tab completions. Works with Starship, p10k, oh-my-zsh.
# Two tools, two different problems. gitswitch handles what the GitHub CLI intentionally ignores.
| capability | gh auth switch | gitswitch |
|---|---|---|
| github api tokens | ✓ | ✓ (optional) |
git config user.name/email | ✗ | ✓ |
| ssh key switching | ✗ | ✓ |
| gpg signing key | ✗ | ✓ |
| shell prompt integration | ✗ | ✓ |
| interactive tui | ✗ | ✓ |
| repo-specific identity pinning | ✗ | ✓ |
# Choose your preferred installation method. Homebrew is recommended for automatic updates.
brew install aksisonline/tap/gitswitch brew upgradecurl -fsSL https://raw.githubusercontent.com/aksisonline/gitswitch/main/.github/install.sh | bash git clone https://github.com/aksisonline/gitswitch
cd gitswitch && make install go 1.21+Coming features for teams & multi-org workflows
gh_user on profile,
empty ~/.gitconfig, missing gh credential helper, stale SSH keys.
One command to verify & heal.