AI code reviews.
Right in your terminal.
A provider-agnostic, local-first CLI that reviews your staged changes, a historic range, or a whole GitHub pull request —before your colleagues do. Zero telemetry. No server.
works with every provider you already pay for
Built like a real CLI.
Not a SaaS in disguise.
Four guarantees we won't compromise on. Read the source — it's~11k lines of Go.
Privacy-first & local-only
No telemetry, no analytics endpoint, no account. Config is plain YAML on disk. Pair with Ollama for a fully offline review loop — no API key, no network egress.
Project rules in plain markdown
Drop a COMMITBRIEF.md next to your README. No DSL, no YAML schema — just the words you'd say in a code review, used as the system prompt.
Engineered for cheap tokens
SHA-256 response cache skips reviews you've already run. Provider prompt caching (Anthropic, OpenAI, Gemini) cuts repeated input cost.--verbose tells you what you saved.
Truly provider-agnostic
Swap between ten providers — seven API backends plus subprocess wrappers around Claude Code, Gemini CLI, and OpenAI Codex — withcommitbrief providers use or per-run--provider. Keep an alternate configured so a 429 is one command away.
From zero to first review
before your coffee finishes brewing.
Pick provider, paste key
An interactive wizard cycles through Anthropic, OpenAI, Gemini, DeepSeek, Mistral, Cohere, and Ollama; pings the provider to confirm the key works.
Optional: your own rules
Embedded defaults ship in the binary, so day-one runs work without this step. init writes COMMITBRIEF.md + an OUTPUT.md template you can edit.
Review before you commit
Default scope is your staged diff. Reach any historic range via commitbrief diff <args>, or review a whole PR with commitbrief remote pr <id> — it posts inline comments and a verdict back to GitHub. Gate CI with commitbrief guard against a policy file, or expose the same review to an agent over MCP with commitbrief mcp. Output in terminal, plain markdown, or strict JSON.
It actually finds the bugs.
And stays quiet on the clean ones.
| Model | Recall dev · held | False positives dev · held | Precision dev · held | Runs |
|---|---|---|---|---|
| Claude Haiku 4.5 | 1.00 · 1.00 | 0.00 · 0.00 | 0.70 · 0.62 | 5 |
| Claude Sonnet 4.6 | 1.00 · 1.00 | 0.00 · 0.50 | 0.68 · 0.48 | 3 |
| Claude Opus 4.8 | 0.94 · 1.00 | 0.00 · 0.00 | 0.61 · 0.53 | 3 |
| Gemini 2.5 Flash | 0.96 · 1.00 | 0.44 · 0.00 | 0.84 · 0.56 | 3 |
| OpenAI GPT-4o | 0.85 · 1.00 | 0.44 · 0.33 | 0.79 · 0.75 | 3 |
Share of planted defects caught. Every model recalls the full held-out slice; even the cheapest, Haiku, misses none.
Findings landing on a clean-control line — flagging a benign change. Haiku and Opus stay silent on every control.
A conservative floor — many "extra" findings on these small diffs are legitimate secondary observations, not noise.
dev · held — about a quarter of the corpus is a held-out slice that prompt and corpus tuning never inspect, so a change that overfits the corpus (dev up, held-out flat) is visible rather than hidden. The two slices aren't difficulty-matched; the split exists to catch overfitting in future tuning, not for a direct dev-vs-held comparison. Captured 2026-05-29.
Your rules file,
on a token diet.
Three embedded prompts rewrite COMMITBRIEF.md into a denser, equivalent instruction set. Backs up the original under.commitbrief/backups/, applies atomically, and refuses to overwrite when the result isn't actually smaller.
Catch the bug before
your colleague does.
One install. No account. Free forever — because it's open source.