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 エモジ、短い説明、およびオプションの「なぜ」ノートを含めることができます。

動作方法

  1. パッケージをグローバルにインストールします(npm i -g opencommit)。
  2. サポートされている LLM プロバイダー(OpenAI、Anthropic、Azure、Ollama、llama.cpp、Gemini、Flowise、DeepSeek、OpenRouter、OrcaRouter など)の API キーを提供します。
  3. oco(または git add … && oco)を実行すると、ステージングされた変更がプロバイダーの REST エンドポイント経由で選択されたモデルに送信されます。
  4. モデルはコミットメッセージを返し、ツールが git commit -m "..." に渡します。オプションフラグにより、確認プロンプトをスキップしたり、エモジを追加したり、1行のみのメッセージを強制したりできます。

主な機能(README に記載)

  • マルチプロバイダー対応 – クラウド API(OpenAI、Anthropic、Azure など)と、Ollama や llama.cpp サーバーを介したローカルモデルに対応。
  • モデル・言語のカスタマイズ – デフォルトは gpt-4o-mini;プロバイダーが提供する任意のモデル名に切り替え可能で、出力言語(例:defr)も設定可能。
  • GitMoji統合--fgm を使用して 10個の短いエモジまたは完全な GitMoji仕様を有効化。
  • コミットフック & GitHub Actionoco hook setprepare-commit-msg フックをインストール;ベータ版の GitHub Action でプッシュ時に新しいコミットを自動的に再書き込み。
  • リポジトリごと・グローバル設定~/.opencommit またはリポジトリ内の .env ファイルに保存;多くの設定項目(OCO_EMOJIOCO_DESCRIPTIONOCO_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(コマンド:ocooco configoco hookoco models など) ライセンス – 抜粋には記載なし;実際のライセンスはリポジトリを確認してください。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト