OpenCommitをLazygitから使ってLazyにコミットメッセージを書く

お元気ですか?
先日卒業論文を提出し、(まだ発表が残っているのに)開放感から趣味のパソコンが盛り上がっているyuseiitoです。

みなさん、Lazygit使ってますか?

Lazygitはターミナル上で動作するGitクライアント(TUI)で、軽量で直感的なので大変気に入っています。

neovimで <Leader>g でfloating windowを開いて使うように設定して、日常的に使っています。
vimキーバインド風なので、neovimの中で使うと体験が非常にシームレスです。

いちいちファイル名をタイプしたり、ちまちまとクリックしたりしたくない私のような Lazy な人間には大変ありがたいツールです。[1]

そんなLazygitですが、Lazyとはいえコミットメッセージは手書きが基本です。

しかし、いや、コミットメッセージが一番めんどくさいんじゃ! というのが本音。

そんなあなたに、エーアイです。

みなさん最近はコード生成などエーアイを避けては通れない時代になっていることと存じますが、
面倒なことの代表格であるところのコミットメッセージも、エーアイさんに書いてもらいましょう。

と、いうツールが OpenCommit です。

Starは2026/02/04時点で7.1kと、なかなか人気のツールです。
基本的な使い方は、以下のような感じ。

ocoコマンドを叩くと、あとはOpenCommitが変更内容を解析して、コミットメッセージを生成してくれます。

ocoコマンドを打つと、内容からコミットメッセージを生成してくれます

しかし、これは普通のCLIツールなので、これをLazygitから使うようにしました。

#やること

#OpenCommitのインストール

READMEに書いてある通りにすればいいです。

npm install -g opencommit

#OpenCommitの設定

今回は、Ollamaのローカルモデルを使う設定 を紹介します。

モデルは今回はmistral 7bで試しましたが、他のモデルでも良いはずです。

まず、モデルを落としておきます。

ollama run misrtral # Mistral モデルを落としてきて動かす

動いたら、閉じて、次にOpenCommitの設定をします。

ほとんどデフォルトなので、変更するところだけを書きます。

~/.opencommit/config.yaml
OCO_AI_PROVIDER=ollama OCO_MODEL=mistral:latest OCO_API_URL=http://localhost:11434/api/chat OCO_API_KEY=ollama OCO_MESSAGE_TEMPLATE_PLACEHOLDER=$msg OCO_GITPUSH=false

特に、 接続先URL(OCI_MODEL_OLLAMA_ENDPOINT)の設定に注意 してください。
私はこれをデフォルトにしていて、しばらくひたすら405エラーでハマりました。

デフォルトではhttp://localhost:11434 のようになっていますが、パスを補う必要があります。

#Lazygitの設定

Lazygitの設定ファイルは、ふつう ~/.config/lazygit/config.yml にあります。

が、MacOSの場合は、~/Library/Application Support/lazygit/config.yml にあるようです。

よく分からんので、lazygit --print-config-dir で確認してください。

私のMacBook Pro (Tahoe) では以下のようになりました。

lazygit --print-config-dir
/Users/yuseiito/Library/Application Support/lazygit

Lazygitの設定ファイルに、以下のように customCommands セクションを追加します。

~/.config/lazygit/config.yml
customCommands: - key: '<c-a>' # Ctrl + a で実行 command: "oco" context: 'files' description: 'Generate commit message with OpenCommit' output: terminal

これで、Lazygitのファイルステージング画面で Ctrl + a を押すと、OpenCommitが起動してコミットメッセージを生成してくれます。

LazygitからOpenCommitを起動してコミットメッセージを生成

#まとめ

以上で、LazygitからOpenCommitを使ってLazyにコミットメッセージを書くことができるようになりました。

最近は、ローカルのモデルがずいぶんよく動くので、この程度ならローカルでも十分かと思います。

Mistral 7Bは速いのが良いですが、たまにhallucinationして存在しないPR番号を言及したりする ので、そのあたりは注意が必要です。

これから、他のモデルも試してみたいと思います。
うまく動いて軽量な良いモデルを発見された方は、ぜひ教えてください。


  1. 最近はLazygit意外にもいろんなTUI Gitクライアントがあるらしいので、ちょっと試したくはなってきてる。 ↩︎