Skip to content
cd ../work

A cross-platform AI Git CLI — conventional commits, semantic grouping, and PR summaries with a human always in the loop.

2025 · Developer Tooling · role: owner

● status: production·6 services·~2 min read

GoGroqOpenRouterOpenAIAnthropic ClaudeOllamaGoReleaserGitHub ActionsHomebrew

01 — overview

What it is

GitPilot automates the tedious parts of Git hygiene — writing good conventional commit messages and organizing changes into clean, logical commits — while keeping the developer in control through an approval-before-commit workflow. It ships as a single binary for macOS, Linux, and Windows.

02 — the problem

Why it exists

Writing consistent conventional commits and splitting a messy working tree into logical commits is tedious — so most developers don't, and history quality suffers.

AI dev tools routinely store API keys in plaintext config files, turning a convenience into a credential-leak vector.

03 — architecture

How it's built

A single Go binary wraps the local Git workflow. Diffs flow through a provider-agnostic LLM layer; every AI suggestion passes a human approval gate before touching the repository; credentials resolve from the OS keychain first.

architecture — how requests flowlive
gitpilot CLIGo · single binaryLocal Gitdiff · stage · commitOS KeychainmacOS · libsecret · WCMLLM ProvidersGroq · OpenRouter · OllamaApproval Gatehuman-in-the-loopCommit / Push / PR

04 — engineering decisions

The choices that mattered

01

Human-in-the-loop by design

Every commit, push, and PR message passes an explicit approval step. The AI proposes; the developer disposes. Automation never outruns intent.

02

Zero plaintext credential exposure

API keys resolve from the OS keychain — macOS Keychain, Linux libsecret, Windows Credential Manager — with a chmod-0600 config fallback. CI/CD uses environment variables only.

03

Semantic commit grouping

Beyond file-wise splitting, the LLM clusters related changes across files into logical commits with conventional prefixes — turning one messy working tree into a readable history.

04

Supply-chain-conscious releases

GoReleaser ships SHA256-verified binaries via Homebrew tap, go install, and one-line installers for every platform.

Explain this project

A single Go binary that wraps the local Git workflow: it feeds diffs to a provider-agnostic LLM layer (Groq, OpenRouter, OpenAI, Claude, Ollama), generates conventional-commit messages, and clusters related changes across files into semantic commit groups. Every AI suggestion passes an explicit human approval gate before any commit, push, or PR. Credentials resolve from the OS keychain first (macOS Keychain, Linux libsecret, Windows Credential Manager) with a chmod-0600 fallback, and releases ship SHA256-verified via GoReleaser and a Homebrew tap.

05 — features

What it does

  • Conventional commit generation (feat: / fix: / refactor:)
  • File-wise and AI-grouped commit splitting
  • PR description generation from commit history
  • Push/pull confirmation flows
  • Structured terminal previews before every action
  • Homebrew, go install, curl, and PowerShell installers

06 — stack

What it runs on

Language
Go
AI
Groq (llama-3.3-70b)OpenRouterOpenAIClaudeOllama
Security
OS keychain integrationSHA256-verified releases
Distribution
GoReleaserHomebrew tapGitHub Actions

Want the full story?

The repository has the code, the commits, and the decisions in context — or reach out and I'll walk you through it.