「Claude Codeは使いたいけど、社内データを外に出せない」 — この相談を、過去半年で5社から受けました。法務、医療、金融、官公庁など、機密区分の高い情報を扱う組織ほど切実な悩みです。

ここ数ヶ月で現実解になりつつあるのが、Ollama + Claude Code Router の組み合わせ。Claude Codeのインターフェースは維持したまま、裏で動くLLMをローカルのOllamaに繋ぐと、社外通信ゼロの閉域運用ができます。検索量も過去90日で伸びてきたホットな構成です。

Ollamaはローカルでオープンソースモデルを動かすツール

Ollamaは、Llama、Qwen、Gemma、Mistralなどのオープンソースモデルを、自分のMacやLinuxサーバーで動かすためのツールです。インストールしてコマンド1行でモデルが起動し、ローカルでチャットができます。

# Ollamaのインストール(macOSの場合)
brew install ollama

# モデルをダウンロードして起動
ollama run qwen2.5-coder:32b

CPUでもGPUでも動きますが、実用的な応答速度を出したいなら、Apple Silicon搭載のMacか、NVIDIA GPU搭載マシンが現実的です。

Ollamaを単独で使うと、独自のチャットインターフェースか、APIエンドポイント(http://localhost:11434)経由で呼び出す形になります。これを Claude Codeから呼ばせる のが、今回の構成です。

なぜ Claude Code 経由で Ollama を使うのか

「Ollamaに直接話しかければいいのでは」と思うかもしれません。実際、雑な質問応答だけならOllama単独で済みます。

それでもClaude Codeを噛ませる動機は、Claude Codeが持っている「作業環境」がそのまま使える ことです。

  • ファイル読み書き、コマンド実行、Git操作などのツール群
  • スラッシュコマンド(/clear /compact /context など)による履歴管理
  • CLAUDE.md やサブエージェントによる役割定義
  • MCPサーバーを介した外部連携(NotionやFigma等)

Ollama単独だと、これらの機能は自分で実装する必要があります。Claude Codeの「黒画面の中で作業する」体験を活かしたまま、裏のモデルだけローカル化する、というのが組み合わせの旨味です。

私は法務系の案件で、この構成で2ヶ月運用したことがあります。社外通信が一切ない閉域環境で、契約書ドラフトのレビューを Claude Code 経由で動かす、というユースケース。Anthropicモデルほどの賢さは出ないが「形式チェック」「文体統一」程度なら十分実用に乗りました。

構成図

シンプルにすると、こんな構成です。

[Claude Code]
   ↓ ANTHROPIC_BASE_URL=http://localhost:8080
[Claude Code Router(ローカルサーバー)]
   ↓
[Ollama (http://localhost:11434)]
   ↓
[qwen2.5-coder:32b など、ローカルモデル本体]

Claude CodeはAnthropic APIに話していると思ってリクエストを送ります。Claude Code Routerが間で受けて、それをOllamaのAPI形式に翻訳してOllamaに渡す。応答は逆ルートで戻る、という仕組みです。

セットアップは3ステップ

実際の手順をかいつまんで紹介します。

1. Ollamaを動かしてモデルを準備

brew install ollama
ollama serve &                            # バックグラウンド起動
ollama pull qwen2.5-coder:32b             # コーディング向けモデル

qwen2.5-coder:32b は、コード作業に強いオープンソースモデルの一つです。マシンスペックに合わせて、より小さい qwen2.5-coder:7b などでも始められます。

2. Claude Code Routerをインストール&設定

npm install -g @musistudio/claude-code-router

cat > ~/.claude-code-router/config.json << 'EOF'
{
  "providers": {
    "ollama": {
      "base_url": "http://localhost:11434/v1",
      "models": ["qwen2.5-coder:32b"]
    }
  },
  "routing": {
    "default": "ollama/qwen2.5-coder:32b"
  }
}
EOF

claude-code-router start

3. Claude CodeをRouterに向ける

export ANTHROPIC_BASE_URL=http://localhost:8080
claude

ここまでで、Claude Codeの体験を保ったまま、裏でOllamaが動く構成ができます。/context で確認すると、モデル欄に qwen2.5-coder:32b が出ているはずです。

モデル選びの目安

Ollamaで動くオープンソースモデルは大量にあり、どれを選ぶかで体験が大きく変わります。実機で試した感覚ベースですが、目安はこんな感じです。

モデル

サイズ

体感

qwen2.5-coder:32b

約20GB

コード作業向けでバランス良し。M3 Maxなら実用速度

llama3.3:70b

約42GB

高品質だが応答が遅め。一般文章は強い

gemma3:27b

約17GB

バランス型。長文要約が得意

qwen2.5-coder:7b

約5GB

軽量。M2 MacBook Air でも動く。品質は妥協が必要

実用域は 32B〜70Bクラスのモデル + Apple Silicon Mac(M3 Pro以上)もしくは RTX 4090クラスのGPU です。これより下の構成だと、応答速度が「待ち時間が苦痛」レベルになります。

限界と割り切り

正直に書くと、Ollama経由のClaude Codeは Anthropicネイティブには敵いません。これを承知のうえで使う必要があります。

  • コード生成の品質はAnthropic Opus/Sonnetより一段下がる — Claude Codeの本来の強みである複雑な修正は弱め
  • ツール呼び出し(MCP連携、ファイル操作)の安定性も差が出る — 32Bクラスだと、複数ツールの連鎖呼び出しでミスが増える
  • 応答速度はネット越しのAnthropic直接利用より遅い場面が多い — ローカル計算なので、マシン性能の限界が直接出る

それでも組む価値があるのは、社外通信ゼロが要件として絶対に必要な場合 だけです。「便利だから」で導入すると、Anthropic直接利用と比べた品質差にがっかりすることになります。

私の関与した法務案件でも、最終的には「ふだんはAnthropic Claude Code、機密度の高い特定案件のみOllama構成」のハイブリッドに落ち着きました。すべてをローカルに振らない、という割り切りが現実的です。

まとめ

  • OllamaはローカルでLLMを動かすツール、Claude Code Routerと組み合わせるとClaude Codeから呼べる
  • 動機は「社外通信ゼロでClaude Codeの体験を維持したい」一点
  • セットアップはOllama→Router→Claude Codeの環境変数の3ステップ
  • 実用域は qwen2.5-coder:32b 相当 × Apple Silicon Pro以上 か NVIDIA GPU環境
  • 品質はAnthropic直接より一段下がる。閉域運用が必須な案件に限定して使う割り切りが必要