v0.1.0 Written in Rust macOS · Linux

One dev. Many identities.
Zero mistakes.

GUM manages multiple git identities — GitHub & GitLab accounts — and switches between them on demand, or automatically by a repo's remote URL. So commits never land under the wrong name, or push with the wrong key.

MIT licensed · brew install ioanSL/tap/git-user-manager

1 config file, all your identities
0 wrong-author commits
accounts, auto-switched
// capabilities

Everything your git identity needs

Profiles bundle your name, email, SSH keys and signing config — then GUM wires up git, SSH and signers so the right one is always active.

🫧

Profile management

Store identity bundles — user name, email, SSH keys and signing config — in a single profiles.toml.

Automatic switching

Uses git's includeIf rules to apply the correct identity based on a repo's remote URL. No thinking required.

🔑

SSH configuration

Manages your ~/.ssh/config host-alias blocks and per-repo core.sshCommand automatically.

✍️

Commit signing

Maintains the allowed-signers file for SSH-signed commits, with GPG integration baked in.

🩺

Security doctor

gum doctor audits your setup — flagging plaintext tokens and incomplete configs before they bite.

🖥️

Interactive mode

Just run gum with no arguments for a guided, interactive flow through every command.

// quickstart

Up and running in three commands

01

Add a profile

Bundle a name, email, remote pattern, SSH key and signing setup into one named identity.

$ gum add work --user-name "Ada" --email ada@work.dev \
    --remote 'git@github.com:work-org/**' \
    --ssh-key ~/.ssh/id_work --auto-sign
02

Enable auto-switching

GUM writes includeIf rules so the right identity activates by remote URL.

$ gum auto enable work
 Auto-switching enabled for work
03

Forget about it

Clone anything under that remote and commits just use the right identity. Run gum doctor any time to audit.

$ cd ~/work-org/payments
$ git config user.email
ada@work.dev
// install

Pick your flavour

Pre-built for macOS and Linux. Or build it yourself with Cargo.

$ brew install ioanSL/tap/git-user-manager
$ sudo apt install ./git-user-manager_0.1.0_amd64.deb
# Download the static tarball from Releases, then:
$ tar -xzf git-user-manager-x86_64-linux.tar.gz
$ sudo mv gum /usr/local/bin/
$ cargo build --release
$ sudo mv target/release/gum /usr/local/bin/

Stop committing as the wrong you.

GUM is open source and MIT licensed. Clone it, star it, ship it.

github.com/ioanSL/git-user-manager