comparisongit-agent vs czg
czg is a Node.js interactive TUI for Conventional Commits that provides a rich prompt experience with emoji support and AI message generation via OpenAI.
feature comparison
| Feature | git-agent | czg |
|---|---|---|
| Atomic commit splitting | git-agent — Yes | czg — No |
| Conventional Commits format | git-agent — Yes | czg — Yes |
| LLM-backed message drafting | git-agent — Yes | czgyes — OpenAI only |
| Pre-commit hook integration with retry loop | git-agent — Yes | czg — No |
| Dry-run preview before committing | git-agent — Yes | czgyes — TUI preview |
| Amend last commit message | git-agent — Yes | czg — No |
| Free shared gateway | git-agent — Yes | czgno — requires OpenAI key for AI mode |
| Config-file based scope definitions | git-agentyes — .git-agent/config.yml | czgyes — .czrc / package.json |
install
git-agent
brew install gitagenthq/brew/git-agentczg
npm install -g czgoutput example
git-agent
perf(query): replace N+1 user lookup with single batched query
- collect user IDs from the result set before rendering
- fetch all users in a single WHERE id IN (...) query via UserLoader
- remove per-row db.findUser calls from the template loop
The previous template iterated 50 rows and issued one db query each;
the batched loader drops that to a single round-trip regardless of
result set size.czg
perf(query): optimise user lookup queryFAQ
Does czg support the same LLM providers as git-agent?czg supports OpenAI for AI generation. git-agent supports any OpenAI-compatible endpoint including OpenAI, Gemini, Claude, and self-hosted models.
Is czg's TUI experience better for developers who prefer interactive tools?czg's TUI is polished for manual input. git-agent is faster for most commits because it generates the full message without prompting, but you can always edit the draft before it commits.
Does git-agent support emoji in commit messages like czg?git-agent focuses on plain-text Conventional Commits without emoji. If your team convention requires Gitmoji prefixes, you can add them via a custom prompt in your config.