gp — tool for managing multiple git identities
If you have multiple GitHub/GitLab accounts (personal, work, open-source), you know the pain:
- Commits go out with the wrong name/email
- SSH keys conflict between accounts
- Manual config changes for every repo
gp fixes this. Create profiles once, then just pick one when cloning or apply to existing repos.
curl -fsSL https://raw.githubusercontent.com/vseplet/gp/main/install.sh | bashThis will install Deno (if not present) and gp.
gp profile add workYou'll be prompted for name and email. An SSH key is generated automatically — add the public key to GitHub/GitLab.
gp profile listgp clone git@github.com:user/repo.git -p workOr without -p for interactive selection:
gp clone git@github.com:user/repo.gitThe repo is cloned using the profile's SSH key and configured automatically.
cd my-repo
gp use workCreates a new profile (or picks existing) and applies it to the current repo in one step.
# Export all profiles with SSH keys
gp backup export ~/my-profiles.tar.gz
# Import on another machine
gp backup import ~/my-profiles.tar.gz
# Overwrite existing profiles
gp backup import ~/my-profiles.tar.gz --forceEach profile stores:
- name — Git commit author name
- email — Git commit author email
- sshKey — Path to SSH private key
Profiles are saved in ~/.gitprofiles.json. SSH keys are stored in
~/.ssh/gitprofile_<name>.
When you apply a profile, gp sets local repo config:
git config user.name "..."
git config user.email "..."
git config core.sshCommand "ssh -i ~/.ssh/gitprofile_<name> -o IdentitiesOnly=yes"This project was built as an experiment in mobile programming — just for fun while waiting for food to be prepared.
Setup: Samsung S25 + Termux + Claude Code + Rokid Max 2 AR glasses + voice control.
MIT