README.md

July 8, 2026 · View on GitHub

image

Provider-agnostic code review using AI
Use Claude, Gemini, Codex, OpenCode, Cursor Agent, Kilo, Kiro, Ollama, LM Studio, GitHub Models, MiniMax, or any AI to enforce your coding standards.
Pure Bash core. Works everywhere.

Version License Bash Platforms Homebrew Tests PRs Welcome

InstallationQuick StartProvidersCommandsDocs


Example

image

🎯 Why?

You have coding standards. Your team ignores them. Code reviews catch issues too late.

GGA runs on every commit, validating staged files against your AGENTS.md. Like having a senior developer review every line before it hits the repo.

┌─────────────────┐     ┌──────────────┐     ┌─────────────────┐
│   git commit    │ ──▶ │  AI Review   │ ──▶ │  ✅ Pass/Fail   │
│  (staged files) │     │  (any LLM)   │     │  (with details) │
└─────────────────┘     └──────────────┘     └─────────────────┘
  • 🔌 Provider agnostic — Claude, Gemini, Codex, OpenCode, Cursor Agent, Kilo, Kiro, Ollama, LM Studio, GitHub Models, MiniMax
  • 📦 Pure Bash core — no runtime framework; individual providers may require their own CLI or API tooling
  • 🪝 Git native — Standard pre-commit hook
  • Smart caching — Skip unchanged files
  • 🔍 PR review mode — Review full PRs, not just last commit
  • 🪟 Cross-platform — macOS, Linux, Windows (Git Bash), WSL

📦 Installation

brew install gentleman-programming/tap/gga

Manual

git clone https://github.com/Gentleman-Programming/gentleman-guardian-angel.git
cd gentleman-guardian-angel
./install.sh

Windows (Git Bash, PowerShell, cmd.exe)

git clone https://github.com/Gentleman-Programming/gentleman-guardian-angel.git
cd gentleman-guardian-angel
bash install.sh
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

On Windows, the installer also creates ~/bin/gga.bat so gga can be called from cmd.exe and PowerShell. Add %USERPROFILE%\bin to your Windows user PATH for those shells; .bashrc only affects Git Bash.

WSL is also fully supported — no special configuration needed.

Oh My Zsh users

If you use Oh My Zsh with the git plugin enabled (the default), the alias gga will conflict with this CLI. You'll see:

git: 'gui' is not a git command. See 'git --help'.

Fix: Add this line to your ~/.zshrc after the Oh My Zsh source line:

unalias gga 2>/dev/null

Then run source ~/.zshrc or open a new terminal.


🚀 Quick Start

cd ~/your-project
gga init                # Create .gga config
gga install             # Install git hook
# Edit .gga to set your PROVIDER
# Create AGENTS.md with your coding standards
# Done — every commit gets reviewed 🎉

🔌 Providers

ProviderConfig ValueInstallation
Claudeclaudeclaude.ai/code
Geminigeminigemini-cli
Codexcodexnpm i -g @openai/codex
OpenCodeopencodeopencode.ai
Cursor Agentcursor[:model]cursor.com
Kilokilo[:model]npm install -g @kilocode/cli
Kirokirokiro.dev/downloads
Ollamaollama:<model>ollama.ai
LM Studiolmstudio[:model]lmstudio.ai
GitHub Modelsgithub:<model>marketplace/models
MiniMaxminimax[:model]platform.minimax.io

📖 See docs/providers.md for detailed examples and setup.


📋 Commands

CommandDescription
gga initCreate sample .gga config
gga installInstall pre-commit hook
gga install --commit-msgInstall commit-msg hook
gga uninstallRemove hooks
gga runReview staged files
gga run --ciReview last commit (CI/CD)
gga run --pr-modeReview full PR changes
gga run --no-cacheReview ignoring cache
gga configShow configuration
gga cache statusShow cache info
gga versionShow version

📖 See docs/commands.md for detailed usage.


📚 Documentation

TopicDescription
Configuration.gga config file, options, hierarchy, env overrides
Rules FileWriting effective AGENTS.md, best practices, skill-based approach
ProvidersDetailed setup for each AI provider
CommandsFull command reference with examples
CachingHow smart caching works, invalidation, commands
IntegrationsHusky, pre-commit, Lefthook, VS Code, CI/CD
ExamplesReal-world walkthrough, project configs
TroubleshootingCommon issues and fixes
ChangelogVersion history
ContributingHow to contribute (issue-first workflow)

📄 License

MIT © 2024

Built with 🧉 by developers who got tired of repeating the same code review comments