Claude Code の生成コードをローカル LLM でレビューする 3 つの構成パターン
Claude Code は強力なコード生成能力を持ちますが、生成されたコードを別の視点でレビューしたい場面があります。クラウド API にコードを送りたくない場合や、コスト削減のためにローカル LLM を活用したい場合です。
この記事では、Ollama + Qwen3(ローカル LLM)と OpenHands(オープンソースのコーディングエージェント)を組み合わせて、Claude Code の生成コードを自動レビューする 3 つの構成パターンを紹介します。
前提となる構成
以下のツールがインストール済みであることを前提とします。
| ツール | 役割 | インストール |
|---|---|---|
| Claude Code | コード生成(エージェント) | npm install -g @anthropic-ai/claude-code |
| Ollama | ローカル LLM 実行(ランタイム) | ollama.com |
| Qwen3 | レビュー用 AI モデル(LLM) | ollama pull qwen3:14b |
| OpenHands | レビュー実行(エージェント)※パターン 2・3 | pip install openhands-ai |
構成図で示すと、Claude Code(クラウド)が書いたコードを、ローカル環境でレビューする構造です。
Claude Code(Anthropic API)
↓ コードを生成・編集
ローカルリポジトリ(あなたの PC)
↓ レビュー依頼
OpenHands / Git フック
↓
Ollama(ローカルランタイム)
↓
Qwen3(ローカル LLM)→ レビュー結果を出力
パターン 1:Git フック + Ollama 直接呼び出し(最もシンプル)
OpenHands は不要です。Claude Code がコミットするタイミングで、Git の pre-commit フックが Ollama に差分を送り、Qwen3 にレビューさせます。
仕組み
Claude Code → git commit → pre-commit フック発火
↓
git diff を Ollama API に送信
↓
Qwen3 がレビューコメントを生成
↓
review.md に出力 or コミット中断
設定手順
プロジェクトの .git/hooks/pre-commit を作成します。
| |
動作例
| |
向いているケース
- セットアップを最小限にしたい
- コミット単位の差分レビューで十分
- 追加ツールをインストールしたくない
パターン 2:OpenHands ヘッドレスモードで本格レビュー
Claude Code の作業後に OpenHands を呼び出し、ファイル全体を読み、テストを実行し、改善提案まで自律的に行わせます。
仕組み
Claude Code → コード生成・編集
↓
OpenHands(ヘッドレス)→ ファイル全体を読む
→ テストを実行する
→ レビューコメントを生成
→ 必要なら修正も提案
↓
Ollama + Qwen3(ローカル LLM)
設定手順
OpenHands CLI をインストールし、Ollama をバックエンドに設定します。
| |
使い方
Claude Code の作業が終わったら、以下のコマンドでレビューを実行します。
| |
シェルエイリアスにしておくと便利です。
| |
| |
パターン 1 との違い
| パターン 1(Git フック) | パターン 2(OpenHands) | |
|---|---|---|
| レビュー範囲 | diff のみ | ファイル全体 + テスト実行 |
| 文脈理解 | 差分の前後数行 | プロジェクト全体の構造 |
| テスト実行 | できない | できる |
| 修正提案 | テキストのみ | コード修正まで可能 |
| 実行時間 | 数十秒〜数分 | 数分〜数十分 |
向いているケース
- 差分だけでなくファイル全体の文脈を踏まえたレビューが欲しい
- テストの実行結果も含めた品質確認をしたい
- レビュー結果に基づく修正案も欲しい
パターン 3:Claude Code フック + OpenHands(完全自動化)
Claude Code の hooks 機能を使い、コード編集のたびにバックグラウンドで自動レビューを走らせます。
仕組み
Claude Code が Edit/Write ツールを使用
↓ (PostToolUse フック自動発火)
OpenHands がバックグラウンドでレビュー開始
↓
Ollama + Qwen3 でローカルレビュー
↓
review.md に結果出力(デスクトップ通知)
設定手順
プロジェクトの .claude/settings.json にフックを設定します。
| |
注意点
- リソース消費: 編集のたびにレビューが走るため、CPU/GPU の負荷が高くなります
- 競合: Claude Code と OpenHands が同時にファイルを操作すると競合する可能性があります
- 実用的な運用:
matcherをWriteのみに絞る、あるいは特定のファイルパターンに限定するなどの調整が必要です
向いているケース
- レビューの自動化を徹底したい
- マシンスペックに余裕がある(VRAM 24GB 以上推奨)
- Claude Code の作業中に並行してレビューを走らせたい
3 パターンの比較
| パターン 1 | パターン 2 | パターン 3 | |
|---|---|---|---|
| 仕組み | Git フック + Ollama | OpenHands ヘッドレス | Claude Code フック + OpenHands |
| タイミング | コミット時 | 手動実行 | 編集のたび |
| レビューの深さ | 差分のみ | ファイル全体 + テスト | 差分〜ファイル全体 |
| セットアップ難易度 | 低い | 中程度 | やや高い |
| 必要ツール | Ollama のみ | Ollama + OpenHands | Ollama + OpenHands |
| リソース消費 | 小 | 中 | 大 |
| おすすめ | まずはこれから | 本格的なレビュー | 完全自動化したい人 |
実践的なおすすめ構成
ステップ 1: パターン 1(Git フック)から始める。セットアップが簡単で、コミットのたびに基本的なレビューが得られます。
ステップ 2: レビューの深さが足りないと感じたら、パターン 2(OpenHands ヘッドレス)に移行。ai-review エイリアスで手軽に本格レビューを実行できます。
ステップ 3: 完全自動化が必要な場合のみ、パターン 3 を検討。ただしリソース消費が大きいため、マシンスペックと相談してください。
速度とコストのトレードオフ
| 構成 | 速度 | レビュー品質 | コスト |
|---|---|---|---|
| Claude Code + Claude API でレビュー | 速い | 最高 | API 従量課金 |
| パターン 1(Git フック + Qwen3 14B) | 数十秒〜数分 | 実用的 | 無料 |
| パターン 2(OpenHands + Qwen3 14B) | 数分〜数十分 | 高い | 無料 |
ローカル LLM でのレビューはクラウド API より遅くなりますが、コードを外部に送信しないというプライバシー上の利点と、追加コストゼロという経済的な利点があります。
まとめ
- パターン 1(Git フック)が最初の一歩: Ollama だけで動く最もシンプルな構成。pre-commit フックで差分を Qwen3 に送り、review.md に結果を出力
- パターン 2(OpenHands ヘッドレス)で本格化: ファイル全体の文脈理解、テスト実行、修正提案まで可能。
ai-reviewエイリアスで手軽に実行 - パターン 3(Claude Code フック)で完全自動化: 編集のたびにバックグラウンドレビューが走る。リソース消費に注意
- ローカルレビューの最大の利点はプライバシーとコスト: コードを外部に送信せず、追加コストなしでレビューが得られる
- 段階的に導入する: パターン 1 → 2 → 3 とステップアップするのが現実的
参考
- Ollama で Qwen3 を動かす初心者ガイド
- OpenHands 入門ガイド
- OpenHands ローカル LLM 設定ドキュメント
- How to Get Automatic Code Review Using LLM Before Committing - DEV Community
- Build a Free AI Code Review Bot in Python with Ollama and Git Hooks - DEV Community
- pre-commit-llm-code-review - GitHub
- Code Review using Ollama - GitHub Actions