Skip to main content

Introduction

gpx is a FOSS CLI tool that lets developers instantly switch between multiple Git identities on a single machine.


The Problem

If you're a developer, you've probably been here before:

  • You push a commit to your work repo - and it shows up under your personal email.
  • You clone a client project and forget to set the right SSH key.
  • You can't remember which Git identity is currently active.

Managing multiple Git identities today looks like this:

ProblemCurrent WorkaroundPain Level
Wrong commits pushed under wrong emailManual git config user.email per repo🔴 High
Switching SSH keys per accountEditing ~/.ssh/config manually🔴 High
No visual indication of active profileZero - pure memory🔴 High
Forgetting which profile is activeRunning git config user.email to check🟡 Med
Per-repo identity setupRepeating config in every new repo🟡 Med

No existing FOSS tool solves all of these together with a clean, fast CLI. gpx does.


The Solution

gpx gives you named profiles - each carrying a full Git identity - and lets you switch between them instantly.

# Add your profiles once
gpx add personal --display-name "Alan Turing" --email alan@gmail.com
gpx add work --display-name "Ada Lovelace" --email ada@company.com --ssh-key ~/.ssh/id_ed25519_work

# Switch in one command
gpx use work

# Always know who you are
gpx current

Under the hood, gpx manages ~/.gitconfig and ~/.ssh/config for you - atomically and safely - without touching anything outside its own managed blocks.


What gpx Does For You

Named profiles - save any number of Git identities with a short name like work, personal, or freelance.

Instant switching - one command to switch your global identity or just the identity for the current repo.

SSH key management - each profile carries its own SSH key. gpx automatically maintains the right ~/.ssh/config blocks so the correct key is used per host.

PAT (HTTPS) authentication - securely store and rotate Personal Access Tokens (PAT) in the OS-level keychain. gpx automatically handles Git HTTPS authentication requests, scoping credentials cleanly to the active profile.

Auto-detect - configure a URL pattern per profile and gpx will automatically switch when you cd into a matching repo.

Shell prompt badge - always see the active profile in your terminal prompt.

Zero config files to touch - gpx handles ~/.gitconfig and ~/.ssh/config entirely. You never edit them manually again.


Who is gpx For?

Freelancers switching between 3–5 client profiles multiple times a day.

Open source contributors who use a work identity 9–5 and a personal identity for OSS evenings.

Teams that want to standardize Git identity management across their developers.

AI agents managing developer environments - gpx supports --json output and --no-interactive mode on every command.