OPEN SOURCE · MIT · v0.3.2
The right git name, email and SSH key in every repository. For you, and for the AI agents that commit for you.
gitpro picks the identity by the repository's remote URL, not by the folder you cloned it into. It writes plain git and SSH config, so nothing runs in the background.
$ pipx install gitpro
Matched by remote URL
You describe each identity once: a name, an email, an SSH key, and the hosts and owners it belongs to. gitpro turns that into git's own includeIf rules and SSH host entries, so git picks the identity from the remote URL on every commit.
- PLAIN CONFIG
Ordinary git and SSH files in a marked block. No daemon, no wrapper around git.
- PREVIEW
gitpro planshows every change as a diff before anything is written. - BACKUPS
Hand-written files are backed up, and
gitpro uninstallremoves everything again. - GUARD
Optional hooks refuse a commit or push with the wrong identity and print the command that fixes it.
user.email in one repository is caught by the guard before the commit is made.✗ gitpro: this commit would be committed as jane@personal.dev
but origin (git@github.com:employer-org/app.git) belongs to
identity work-github <jane.doe@employer.com>
cause: user.email is set in the repo's .git/config
fix: git -C ~/work/github.com/employer-org/app config --unset user.email
AI agents commit too
Coding agents run git commit, git push and gh pr create on their own. gitpro checks each of those calls before it runs. When the identity is wrong, the call is denied with a reason, and the agent has to ask you.
- HOOK
A Claude Code PreToolUse hook, from
gitpro agent installor the plugin. It only denies; it never grants anything. - MCP
A read-only MCP server,
gitpro mcp, so an agent can ask which identity a repository uses and why. - APPROVAL
Changes an agent proposes wait for your approval, and an interrupted apply can be recovered.
- AUDIT
gitpro auditfinds commits made as the wrong identity or by an agent;--rewritefixes the unpushed ones.
Set up in a few minutes
Linux or macOS, Git 2.36 or newer, Python 3.9 or newer and OpenSSH.
- Install pipx if you don't have it.
brew install pipxon macOS,sudo apt install pipxon Ubuntu. - Answer a few questions. The wizard asks for identities, hosts, owners and existing SSH keys. Nothing is applied yet.
- Look, then apply.
gitpro planshows every change;gitpro apply -ywrites it. - Ask a repository.
gitpro whyshows the identity it should use, the one it uses, and the fix if they differ.
$ pipx install gitpro
$ gitpro setup --write
$ gitpro plan
$ gitpro apply -y
$ gitpro why
In your editor and agent
Extension
Shows the identity in the status bar and Source Control, runs the setup wizard, and finds repository overrides.
code --install-extension yantrakar.gitpro
Plugin
Brings the commit hook, the MCP server and a skill that edits the config from plain requests and applies only after you confirm.
/plugin marketplace add Yantrakar/gitpro
/plugin install gitpro@gitpro
MCP server
Registers the read-only server with Cursor, Gemini or opencode. The Cursor and Gemini commit hooks are experimental.
gitpro mcp install --agent cursor -y
Main commands
Every command has --help, and the ones that read have --json. The guide has the full list.
| Command | What it does |
|---|---|
gitpro setup | Guided, offline configuration. Keeps existing settings and backs up the file. Applies nothing. |
gitpro plan | Shows what apply would change, as diffs. |
gitpro apply | Writes the git and SSH config. Previews by default; -y writes. |
gitpro why | Which identity a repository should use, which it uses, why, and the fix. |
gitpro scan | Lists your repositories by the identity git uses. --fix removes repository overrides. |
gitpro keys | Each SSH key and where to register it. --generate creates the missing ones. |
gitpro guard install | Git hooks that refuse a commit or push with the wrong identity. |
gitpro agent install | The hook that stops an AI agent committing as the wrong identity. |
gitpro audit | Finds commits made as the wrong identity or with an AI agent. |
gitpro clone | git clone with the identity, SSH alias and folder the URL calls for. |
gitpro lost | Unpushed branches, stashes and dirty trees across your repositories. |
gitpro uninstall | Removes everything apply wrote. Keeps your config and SSH keys. |
Done, and what comes next
Planned work has no dates, and the order may change. Ideas and requests go to GitHub issues.
Shipped
- 0.3.2 · 2026-10-11
VS Code Marketplace extension, with the identity in Source Control.
- 0.3 · 2026-10-09
Guided setup. Agent operations: preflight, approved changes and recoverable apply.
- 0.2
Guard hooks, audit, the MCP server, the Claude Code hook, team policy in CI, dev containers, the VS Code identity bar and
lost. - 0.1
Identities by remote URL, generated git and SSH config, plan and apply.
Next
- PLANNED
Agent identities: commits that record both the agent and the person it acted for.
- PLANNED
Scoped grants that expire, so an agent can be allowed one kind of change for a limited time.
- PLANNED
A guard for instruction files: changes to AGENTS.md, CLAUDE.md, .cursorrules, MCP configs and hooks, and hidden Unicode in them.
- PLANNED
Handoff and review of risky agent steps, with the agent's stated intent attached.
Built with gitpro
Verako
A free service that helps people in Norway check whether their electricity contract or savings rate is a good one. I built it with gitpro set up, so every commit and push went out with the right name, email and SSH key without me switching anything.
Yantrakar AS
gitpro is made by Yantrakar, a software company in Stavanger working on machine systems and private AI.
Help with a rollout
gitpro stays free and MIT licensed. If your team wants help putting it in place, I offer paid consulting through Yantrakar AS: rolling it out across a team, identity and signing policy in CI, agent hooks and the MCP server, or adapting it to your forge.
Questions
Where does the configuration live?
In ~/.config/gitpro.toml, or wherever $GITPRO_CONFIG points. gitpro setup writes it for you; the guide covers the format if you prefer to edit it.
What does it change on my machine?
A block between # BEGIN gitpro and # END gitpro in ~/.gitconfig and ~/.ssh/config, one ~/.gitconfig-<id> file per identity, and the SSH host entries. Existing files are backed up first.
How do I undo it?
gitpro uninstall removes everything apply wrote and the global guard hooks. Your config and SSH keys stay.
Does it send anything anywhere?
No. Commands only go online when you pass --online, and then through gh, glab or ssh.
Does anything run when I use git?
Only the guard hooks, if you install them. Otherwise git reads the config gitpro wrote, and gitpro is not involved.
Which systems does it run on?
Linux and macOS, with Git 2.36 or newer, Python 3.9 or newer and OpenSSH.