A commit-message generator that shops around for the best AI take
aicommit2 fires your git diff to multiple LLMs at once and lets you pick the winner, while also supporting Jujutsu and YADM.

What it does
aicommit2 reads your staged changes, ships the diff to one or more AI providers, and returns generated commit messages. It supports Git, Jujutsu (jj), and YADM repositories with auto-detection. You can run it as a standalone CLI, a git hook, or pipe it into LazyGit.
The interesting bit
The “Reactive CLI” mode is the standout: it hits multiple AIs simultaneously and presents all responses for you to choose from. That’s a practical hedge against model hallucinations and a cheap way to A/B test which LLM actually understands your codebase. The project also squeezes diffs through compression to cut token usage by 30–60%, which matters when you’re burning API credits on every commit.
Key highlights
- Multi-AI shootout: Query OpenAI, Anthropic, Gemini, Mistral, Groq, Ollama, and others in parallel; pick your favorite message.
- Broad VCS coverage: Auto-detects Git, YADM (dotfiles), and Jujutsu repos; jj support includes
jj describewithout auto-creating changesets unless configured. - Token thrift: Built-in diff compression claims 30–60% reduction in token usage.
- Code review mode: Optional AI review with severity levels before you commit.
- Custom prompts: User-defined system prompt templates for tuning message style.
- Rewrite existing commits:
aicommit2 rewriteregenerates messages for past commits.
Caveats
- Copilot SDK unavailable via Homebrew: The proprietary dependency means npm install only for that provider.
- Node 18 minimum for npm installs; Homebrew recommended for macOS/Linux.
- Large diffs break things: The README explicitly warns that oversized diffs cause failures, suggesting smaller commit units.
- YADM watch mode unsupported:
--watch-commitdoesn’t work with YADM repositories.
Verdict
Worth a look if you juggle multiple AI subscriptions and want to stop writing “fix stuff” commit messages. Skip it if you’re already happy with a single-provider tool or do all your work in monolithic commits that would choke the diff parser.