Switch from aicommits
aicommits alternative: aic
aicommits is the established default — a proven tool for one message per staged diff. If your real problem is that work piles up unstaged and history gets muddy, aic is the alternative built for that: it splits your changes into logical atomic commits and resolves merge conflicts with per-file approval.
Why people switch from aicommits
aicommits writes one message for what you stage — but it cannot split a messy working tree into logical commits, and it cannot help you untangle a merge. Both leave you with mixed-concern commits and hand-resolved conflicts.
Feature-by-feature
| Capability | aic | aicommits |
|---|---|---|
| Auto-batch unstaged work into multiple commits | Yes — splits unstaged changes into logical atomic commits | No — one message per staged diff |
| Split a single file across commits (per-hunk) | Yes — routes each hunk to its own commit by intent | No — file-granular at most |
| Resolve merge conflicts | Yes — `aic resolve` proposes a diff, asks per file | No — commit messages only |
| First-class Anthropic · Gemini · DeepSeek | Yes — native providers | Only via OpenRouter / custom endpoint |
| Runtime & dependencies | Rust binary — no Node.js | Node.js v22+ — npm |
| Provider reach | 11 first-class + OpenAI-compatible | 8 + OpenRouter/custom (any model) |
| Commit message formats | Conventional Commits | plain · conventional · gitmoji |
| Git hook integration | No | Yes — prepare-commit-msg hook |
| Multiple message candidates | No | Yes — `--generate N` |
| Prompt & locale control | System prompt via env | `--prompt`, locale, max-length |
| Popularity & ecosystem | New, small | Entrenched first-mover |
Switch to aic if…
…your unstaged work piles up and you want it committed as clean, atomic, conventional commits — even within a single file — or you want AI-resolved merge conflicts without installing Node.js.
Stay with aicommits if…
…you rely on its `prepare-commit-msg` hook, want gitmoji or plain formats, need multiple message candidates, or just want the comfort of the biggest community.
How to switch
- Install aic:
brew install CaicoLeung/aic/aic - Configure once: run `aic setup` — provider, key, and model in one wizard
- Commit: stage your work and run `aic`; aic batches unstaged work automatically