aicommits から乗り換え
aicommits の代替:aic
aicommits は定着したデフォルト — ステージした diff ごとに1メッセージという点では実績のあるツールです。本当の問題が未ステージの作業が溜まり履歴が濁ることなら、aic はそのために作られた代替案です:変更を論理アトミックコミットに分割し、ファイル単位の承認でマージコンフリクトを解決します。
aicommits から乗り換える理由
aicommits はステージした内容に1メッセージを書きます — しかし散らかった作業ツリーを論理コミットに分割できず、マージをほどく手助けもできません。どちらも concern 混在のコミットと手作業のコンフリクト解決を残します。
機能ごとの比較
| 能力 | aic | aicommits |
|---|---|---|
| 未ステージの作業を複数コミットに自動バッチ | はい — 未ステージの変更を論理的でアトミックなコミットに分割 | いいえ — ステージ済み diff ごとに1メッセージ |
| 1つのファイルを複数コミットに分割(hunk ごと) | はい — インテントごとに各 hunk を独自のコミットへ | いいえ — 多くてファイル粒度 |
| マージコンフリクトを解決 | はい — `aic resolve` が diff を提案、ファイルごとに確認 | いいえ — コミットメッセージのみ |
| ファーストクラスの Anthropic · Gemini · DeepSeek | はい — ネイティブプロバイダ | OpenRouter / カスタムエンドポイント経由のみ |
| ランタイムと依存 | Rust バイナリ — Node.js 不要 | Node.js v22+ — npm |
| プロバイダの到達範囲 | 11 ファーストクラス + OpenAI 互換 | 8 + OpenRouter/カスタム(任意のモデル) |
| コミットメッセージの形式 | Conventional Commits | プレーン · コンベンショナル · gitmoji |
| Git フック統合 | いいえ | はい — prepare-commit-msg フック |
| 複数のメッセージ候補 | いいえ | はい — `--generate N` |
| プロンプトとロケール制御 | 環境変数でシステムプロンプト | `--prompt`、locale、max-length |
| 人気とエコシステム | 新しく、小規模 | 定着した先発 |
以下なら aic へ:
…未ステージの作業が溜まり、それをクリーンでアトミックな conventional コミットにしたい(単一ファイル内でも)— または Node.js を入れずに AI 解決のマージコンフリクトが欲しい。
以下なら aicommits に留まる:
…`prepare-commit-msg` フックに依存し、gitmoji や plain 形式が欲しく、複数のメッセージ候補が必要、または最大コミュニティの安心感が欲しい。
乗り換え方
- aic をインストール:
brew install CaicoLeung/aic/aic - 一度だけ設定:`aic setup` を実行 — プロバイダー・キー・モデルを1つのウィザードで
- コミット:作業をステージして `aic` を実行;aic が未ステージの作業を自動バッチします