v0.1.23 · written in go · insert coin

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.

view all options →
$brew install aksisonline/tap/gitswitch
gitswitch — identity manager
✦ Git-Switcher
identity manager for git

Current aksisonline · user@gmail.com
· default user@default.com
aksisonline user@gmail.com
· work user@company.com
↑↓ navigate · enter switch · a add
e edit · ? cli tips · c theme · q quit
click or tab to interact · try ↑↓ ?
11
color themes
git profiles
5
fields per profile
MIT
open source

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.

[01]
commit identity switching
Instantly change user.name and user.email in your global git config. No more wrong-email commits.
[02]
ssh key management
Sets core.sshCommand to force a specific key with IdentitiesOnly=yes, preventing agent fallback.
[03]
gpg signing
Per-profile GPG signing key. Switch and your verified-commit badge follows the right identity automatically.
[04]
github account sync
Keeps gh CLI auth in lockstep with your git identity — one switch, both updated.
[05]
identity awareness
Shell hook learns which identity you use per repo and suggests the right one when you cd in.
[06]
shell integration
One 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.

capabilitygh auth switchgitswitch
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.

homebrewmacOS · Linux · recommended
$brew install aksisonline/tap/gitswitch
curlmacOS · Linux · WSL
$curl -fsSL https://raw.githubusercontent.com/aksisonline/gitswitch/main/.github/install.sh | bash
go installany platform · requires go 1.22+
$go install github.com/aksisonline/gitswitch@latest

what's next

gitswitch is Go all the way. Here's what's shipping.

shipped · stable + canary

HTTPS credential helper — keychain-backed PAT routing so HTTPS clones and pushes just work alongside SSH.

GitHub OAuth logingitswitch 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 channelgitswitch beta / gitswitch stable to opt in and out of canary builds from the CLI.

coming up

Multi-host profiles — one profile, multiple GitHub hosts (github.com + github.corp.com), each with its own key and token.

Session isolationgitswitch 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.

on the horizon

Team presetsgitswitch 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.