di-sukharev/opencommit
top #1 and most feature rich GPT wrapper for git — generate commit messages with an LLM in 1 sec — works with Claude, GPT and every other provider, supports local Ollama models too
OpenCommit – AI駆動のコミットメッセージ生成ツール
何であるか – ステージングされた変更を読み取り、差分(またはファイル全体)を大規模言語モデルに送信し、簡潔で従来のスタイルのコミットメッセージを返す Node.js コマンドラインツール(oco)。メッセージには GitMoji エモジ、短い説明、およびオプションの「なぜ」ノートを含めることができます。
動作方法 –
- パッケージをグローバルにインストールします(
npm i -g opencommit)。 - サポートされている LLM プロバイダー(OpenAI、Anthropic、Azure、Ollama、llama.cpp、Gemini、Flowise、DeepSeek、OpenRouter、OrcaRouter など)の API キーを提供します。
oco(またはgit add … && oco)を実行すると、ステージングされた変更がプロバイダーの REST エンドポイント経由で選択されたモデルに送信されます。- モデルはコミットメッセージを返し、ツールが
git commit -m "..."に渡します。オプションフラグにより、確認プロンプトをスキップしたり、エモジを追加したり、1行のみのメッセージを強制したりできます。
主な機能(README に記載)
- マルチプロバイダー対応 – クラウド API(OpenAI、Anthropic、Azure など)と、Ollama や llama.cpp サーバーを介したローカルモデルに対応。
- モデル・言語のカスタマイズ – デフォルトは
gpt-4o-mini;プロバイダーが提供する任意のモデル名に切り替え可能で、出力言語(例:de、fr)も設定可能。 - GitMoji統合 –
--fgmを使用して 10個の短いエモジまたは完全な GitMoji仕様を有効化。 - コミットフック & GitHub Action –
oco hook setでprepare-commit-msgフックをインストール;ベータ版の GitHub Action でプッシュ時に新しいコミットを自動的に再書き込み。 - リポジトリごと・グローバル設定 –
~/.opencommitまたはリポジトリ内の.envファイルに保存;多くの設定項目(OCO_EMOJI、OCO_DESCRIPTION、OCO_WHY、トークン制限、プロキシなど)。 - ファイルの無視 –
.opencommitignore(ローカル)および~/.opencommitignore(グローバル)で、大容量のアセットやシークレットを LLM に送信しないように除外可能。 - モデル管理 –
oco modelsでキャッシュされたプロバイダーモデルの一覧を表示;--refreshで強制更新。 - テンプレートプレースホルダー – 大きなテンプレート内にカスタム文字列(
$msg)を埋め込むことが可能。例:oco '#205: $msg'。
通常のワークフロー
# 一度だけインストール
global npm i -g opencommit
# APIキーの設定(マシンまたはリポジトリごと1回)
oco config set OCO_API_KEY=sk-…
# 変更をステージング(または oco に任せ)してコミットを生成
git add .
oco # 確認プロンプトが表示される
# または確認をスキップ
oco --yes
ローカルモデルでの実行(Ollama の例):
ollama run mistral # モデルを一度だけダウンロード
oco config set OCO_AI_PROVIDER=ollama OCO_MODEL=llama3:8b
oco
GitHub Action の使用 – README に示す通り、.github/workflows/opencommit.yml を追加;アクションは設定されたモデルとオプションを使って、プッシュ時に各新しいコミットを再書き込みします。
なぜ重要か – 明確で従来のスタイルのコミットメッセージを書くのは面倒です。OpenCommit はこのプロセスを自動化し、一貫性のある変更履歴、より良い changelog、そして円滑なコラボレーションを実現します。開発者はスタイル、言語、コストの制御を保持できます。
インストール – npm install -g opencommit
ドキュメント – リポジトリの README(コマンド:oco、oco config、oco hook、oco models など)
ライセンス – 抜粋には記載なし;実際のライセンスはリポジトリを確認してください。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト