AI News HubLIVE
站内改写6 分で読了

Claude Codeとローカルモデルの連携

2026年のローカルモデルは十分な性能を持っています。Claude Codeが日常的に処理するコード補完、リファクタリング、デバッグ、コードベースの説明などのタスクでは、適切に選択された量子化ローカルモデルが、トークンあたりのコストゼロ、レート制限なしで、実際のユースケースの大部分をカバーします。

ソースKDnuggets著者: Shittu Olumide

はじめに

エージェント型コーディングセッションは高コストです。1回のClaude Codeセッション(ファイル読み取り、コード作成、テスト実行、反復処理)は、通常のチャット会話よりも10〜50倍多くのトークンを消費します。規模が大きくなると、コストは急速に蓄積されます。さらに、長時間のワークフローを中断する可能性のあるレート制限や、価格変更、ポリシー厳格化、ダウンタイムのリスクがあるサードパーティAPIへの依存を考慮すると、ローカル推論のメリットは明白です。

2026年のローカルモデルは十分な性能を持っています。Claude Codeが日常的に処理するコード補完、リファクタリング、デバッグ、コードベースの説明といったタスクでは、適切に選択された量子化ローカルモデルが、トークンあたりのコストゼロ、レート制限なしで、実際のユースケースの大部分をカバーします。本記事では、3つの推論バックエンド(Ollama、LM Studio、llama.cpp)と、それぞれをClaude Codeに接続するための環境変数と設定ファイル、実行する価値のあるモデルの厳選リスト、そして実際に遭遇する問題のトラブルシューティング方法を紹介します。

Claude Codeがローカルモデルに接続する仕組み

その仕組みは、ほとんどのガイドが考えるよりもシンプルです。Claude CodeはAnthropic Messages API形式でリクエストを送信します。デフォルトではこれらのリクエストはAnthropicのサーバーに送信されますが、ANTHROPIC_BASE_URLを設定することで、同じ形式を話す任意のサーバー(現在はOllama、LM Studio、llama.cppがネイティブサポート)にリダイレクトできます。

公式のClaude Code環境変数ドキュメントによると、このセットアップに関連する変数は次のとおりです:

  • ANTHROPIC_BASE_URL:すべてのAPI呼び出しをAnthropicのサーバーから任意のURLにリダイレクトします。
  • ANTHROPIC_API_KEY:リクエストヘッダーで送信されるAPIキー。ローカルサーバーは通常認証を無視するため、"local"や"ollama"などのプレースホルダ文字列を設定します。
  • ANTHROPIC_AUTH_TOKEN:代替の認証ヘッダー。一部のローカルサーバーはAPIキーの代わりにこれをチェックします。同じプレースホルダを設定します。
  • ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_HAIKU_MODEL、ANTHROPIC_DEFAULT_OPUS_MODEL:Claude Codeはタスクに応じて異なるモデル階層を内部的に要求します。これらの3つの変数は、各階層をローカルモデルの名前にマッピングします。これらがないと、Claude Codeはローカルサーバーに対してclaude-sonnet-4-20250514のようなリクエストを送信し、ローカルにそのモデルが存在しないため拒否されます。

2026年1月、OllamaはAnthropic Messages APIのネイティブサポートを追加しました。これが、このワークフローを翻訳プロキシなしで実用的にした技術的変更です。LM Studioはバージョン0.4.1でネイティブの/v1/messagesエンドポイントを追加しました。llama.cppは以前から直接Anthropic APIをサポートしていました。現在、3つすべてがClaude Codeのネイティブプロトコルを話します。

バックエンド1:Ollama

Ollamaは正しい出発点です。モデル管理の複雑さ(重みのダウンロード、量子化、GPU/CPU割り当て、サービング)をシンプルなCLIで処理します。1つのコマンドでインストール、1つのコマンドでモデルをプル、いくつかの環境変数で設定。インストール後はバックグラウンドサービスとして実行されるため、手動でサーバーを起動する必要はありません。

前提条件

  • macOS、Linux、またはWindows(WindowsではWSL2推奨)
  • 実用には少なくとも16 GB RAM(推奨32 GB)
  • GPU推論には8+ GB VRAM、または十分なRAMでのCPUのみ
  • Anthropic Messages APIサポートにはOllama v0.14.0以降が必要

Ollamaのインストール

# macOSとLinux -- ワンコマンドインストール
curl -fsSL https://ollama.com/install.sh | sh

# バージョン確認 -- Claude Code互換性のために0.14.0+必須
ollama version
# 期待される出力:ollama version is 0.14.x or higher

# Windows:https://ollama.com からインストーラをダウンロード

インストール後、Ollamaはポート11434でバックグラウンドサービスとして自動的に起動します。実行中か確認:

curl http://localhost:11434
# 期待される応答:Ollama is running

コーディングモデルのプル

# GLM-4.7-Flash -- 推奨される開始点、強力なツール呼び出し、128Kコンテキスト、8 GB VRAMに適合、Apache 2.0ライセンス
ollama pull glm-4.7-flash:latest

# Qwen3-Coder -- 強力なコード生成と指示追従、フルモデルには20+ GB VRAMが必要
ollama pull qwen3-coder

# Devstral-Small -- エージェント型コーディングワークフロー専用、コミュニティテスト済み、24B、16+ GB VRAM必要
ollama pull devstral-small-2:24b

# モデルがダウンロードされたか確認
ollama list

Claude CodeをOllamaで使用する設定

オプション1:シェルエクスポート(現在のターミナルセッションのみ)

# Claude CodeをローカルのOllamaサーバーにリダイレクト
export ANTHROPIC_BASE_URL="http://localhost:11434"
export ANTHROPIC_API_KEY="ollama"
export ANTHROPIC_AUTH_TOKEN="ollama"
export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-4.7-flash:latest"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-4.7-flash:latest"
export ANTHROPIC_DEFAULT_OPUS_MODEL="glm-4.7-flash:latest"

# Claude Codeを起動
claude

オプション2:~/.claude/settings.json(永続的、全セッションに適用)

~/.claude/settings.jsonを作成または編集:

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://localhost:11434",
    "ANTHROPIC_API_KEY": "ollama",
    "ANTHROPIC_AUTH_TOKEN": "ollama",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.7-flash:latest",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.7-flash:latest",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-4.7-flash:latest"
  }
}

オプション3:プロジェクトディレクトリに.envファイル(プロジェクトごとのオーバーライド)

# プロジェクトルートの.env
ANTHROPIC_BASE_URL=http://localhost:11434
ANTHROPIC_API_KEY=ollama
ANTHROPIC_AUTH_TOKEN=ollama
ANTHROPIC_DEFAULT_SONNET_MODEL=qwen3-coder
ANTHROPIC_DEFAULT_HAIKU_MODEL=qwen3-coder
ANTHROPIC_DEFAULT_OPUS_MODEL=qwen3-coder

接続の確認

claude
# Claude Code内で:> What model are you running?
# ローカルモデルが応答し、Anthropic API呼び出しがないことを確認

# 詳細ログで確認:
claude --verbose
# localhost:11434へのリクエスト行を探す

ゼロからの完全な動作シーケンス:

curl -fsSL https://ollama.com/install.sh | sh
ollama pull glm-4.7-flash:latest
export ANTHROPIC_BASE_URL="http://localhost:11434"
export ANTHROPIC_API_KEY="ollama"
export ANTHROPIC_AUTH_TOKEN="ollama"
export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-4.7-flash:latest"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-4.7-flash:latest"
export ANTHROPIC_DEFAULT_OPUS_MODEL="glm-4.7-flash:latest"
claude

バックエンド2:LM Studio

LM Studioは、ターミナルではなくグラフィカルインターフェースでモデルを参照および管理したい場合に適しています。バージョン0.4.1以降、Claude Codeが期待するパスとまったく同じ、ネイティブのAnthropic互換/v1/messagesエンドポイントが含まれているため、翻訳レイヤーやプロキシは不要です。

前提条件

  • macOS、Windows、またはLinux
  • 推奨GPU:6+ GB VRAM(CPUのみでも可能だが低速)
  • lmstudio.aiからダウンロード、またはヘッドレスサーバー用のCLIインストーラ

LM Studioのインストールと設定

# GUIのないサーバーまたはVM上でのCLIインストーラ
curl -fsSL https://releases.lmstudio.ai/cli/install.sh | bash

# またはhttps://lmstudio.aiからデスクトップアプリをダウンロード

GUI設定手順:

  1. LM Studioを開き、コーディングモデルを検索(例:「qwen coder」または「devstral」)。
  2. モデルをダウンロード。量子化は自動で処理されます。
  3. ローカルサーバータブ(左サイドバーのアイコン)に移動。
  4. コンテキストサイズを設定。少なくとも25,000トークンから開始し、結果に応じて増やすことを推奨。
  5. 「サーバーを開始」をクリック。
  6. ポート(デフォルト1234)をメモし、モデル名を正確にコピー。

Claude Codeの設定

export ANTHROPIC_BASE_URL="http://localhost:1234"
export ANTHROPIC_API_KEY="lm-studio"
export ANTHROPIC_AUTH_TOKEN="lm-studio"
export ANTHROPIC_DEFAULT_SONNET_MODEL="qwen2.5-coder-32b-instruct"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="qwen2.5-coder-32b-instruct"
export ANTHROPIC_DEFAULT_OPUS_MODEL="qwen2.5-coder-32b-instruct"

または~/.claude/settings.jsonで永続化:

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://localhost:1234",
    "ANTHROPIC_API_KEY": "lm-studio",
    "ANTHROPIC_AUTH_TOKEN": "lm-studio",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "qwen2.5-coder-32b-instruct",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "qwen2.5-coder-32b-instruct",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "qwen2.5-coder-32b-instruct"
  }
}

実行手順

  1. GUIからLM Studioサーバーを起動(ローカルサーバータブ > サーバーを開始)。
  2. 環境変数を設定。
  3. Claude Codeを起動。

バックエンド3:llama.cpp

llama.cppは、推論パラメータ(量子化タイプ、KVキャッシュ構成、バッチサイズ、スレッド数)を直接制御する必要がある場合、またはサーバー上で最低限のオーバーヘッドで実行したい場合に適しています。ネイティブのAnthropic Messages APIをサポートしているため、プロキシや翻訳レイヤーは不要です。

前提条件

  • GGUF形式のモデルファイル(Hugging Faceからダウンロード、任意のモデルの「GGUF」バージョンを検索)
  • GPU推論にはCUDA対応GPU、またはCPUのみ(低速)
  • ソースビルド用のCMakeとC++コンパイラ(Linux/CUDAではソースビルド推奨)

llama.cppのインストール

# macOS -- Homebrewが最も簡単
brew install llama.cpp

# Linux with CUDA -- 最高のGPUパフォーマンスを得るためにソースからビルド
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release
# バイナリは./build/bin/

# Linux CPU-onlyビルド
cmake -B build
cmake --build build --config Release

# Windows -- プリビルドバイナリ:
# https://github.com/ggml-org/llama.cpp/releases
# ハードウェアに合ったCUDAまたはCPUバリアントをダウンロード

GGUFモデルのダウンロード

# Hugging Face CLIをインストール(まだの場合)
pip install huggingface-hub

# Q4_K_XL量子化のGLM-4.7-Flashをダウンロード(約4.5 GB)
huggingface-cli download THUDM/glm-4-9b-gguf glm-4-9b-Q4_K_XL.gguf --local-dir ./models

(以降の設定手順は記事が途中で切れていますが、他のバックエンドと同様の考え方です。)

結論

Claude Codeとローカルモデルの連携により、コストを大幅に削減し、サードパーティAPIへの依存を排除できます。本記事で紹介した3つのバックエンドを使用することで、開発者は自分のハードウェアと好みに最適なソリューションを選択し、簡単な環境変数設定でシームレスに統合できます。

*(注:この記事はKDnuggetsの記事に基づいており、内容は一部省略・再構成されています。)*