development·

Claude CodeをローカルLLMで動かす方法|Ollama・LM Studio・Router比較【2026年10月】

Claude CodeをローカルLLMで動かす方法を、Ollama・LM Studio・Claude Code Routerの3通りで公式ドキュメントと照合して整理しました。ollama launch claudeと環境変数での接続、64k以上のコンテキスト設定、使えない機能、外部へ出る通信の止め方、Anthropicのサポート範囲、業務で使う場合の判断基準まで。

Claude CodeをローカルLLMで動かす方法|Ollama・LM Studio・Router比較【2026年10月】

Claude CodeはローカルLLMでも動かせます。 Ollama(v0.14.0以降)とLM Studio(0.4.1以降)がClaude Codeと同じ形式のAPIを手元のPCで提供しているため、接続先を ANTHROPIC_BASE_URL で切り替え、--model でローカルモデルを指定すれば起動します。Ollamaなら ollama launch claude の1コマンドで済みます。

ただし、AnthropicはClaude CodeをClaude以外のモデルにつなぐ使い方をサポートしていません。 公式ドキュメントに「いかなるゲートウェイ経由でも、Claude Codeを非Claudeモデルにルーティングすることはサポートしない」と明記されています。動くことと、業務の標準にしてよいことは別の問題です。さらに実際に動かすと、コンテキスト長の既定値、ツール呼び出しに対応しないモデル、手元から外へ出ていく通信など、手順記事では触れられないところでつまずきます。

本記事では、Ollama・LM Studio・Claude Code Routerの3つの接続方法を、各公式ドキュメントと照合して手順とつまずきどころを整理し、どんな用途なら使えて、どんな用途ならやめておくべきかまで判断できるようにまとめました。

本記事の情報について:2026年10月14日に確認した各公式ドキュメント(Ollama「Claude Code」・Ollama「Anthropic compatibility」・Ollama「Context length」・LM Studio公式ブログ・Claude Code Router(GitHub)・Claude CodeのLLMゲートウェイ関連ページ)にもとづいています。各ツールは更新が速いため、導入前に公式の最新情報も確認してください。

本記事の更新方針: 本記事は定期的に内容を見直しています。記事内の判断軸・運用パターンは執筆時点での koromo の実務的知見に基づくものであり、個別環境での効果を保証するものではありません。仕様の最新情報は必ず Ollama 公式ドキュメント「Claude Code」 をご確認ください。

この記事を読むとわかること

  • Claude CodeがローカルLLMにつながる仕組みと、接続方法3通り(Ollama・LM Studio・Claude Code Router)の違い
  • ollama launch claude と環境変数による手動接続の手順、コンテキスト長を64k以上にする方法
  • ローカル接続で使えなくなる機能と、手元から外部へ出ていく通信を止める設定
  • Anthropicのサポート範囲と、個人の検証・業務利用それぞれでの判断基準
  • ローカルLLMを公式に扱うCline・OpenCodeなど、代わりになる選択肢

状況別の読み分け早見表

当てはまる状況次に読むセクション
とにかく手元で1回動かしてみたい「方法1:Ollamaで動かす」
モデルを画面で選んで試したい「方法2:LM Studioで動かす」
ローカル以外のモデル(DeepSeek・Geminiなど)にも振り分けたい「方法3:Claude Code Routerで振り分ける」
動いたが、応答が遅い・指示を忘れる・エラーになる「ローカルモデルで起きること」「よくあるエラーと対処」
機密コードを外に出さない目的で検討している「手元から外に出る通信を止める」
社内の標準構成にしてよいか判断したい「結論」「業務で使うならどの構成を選ぶか」

結論:動くが、Anthropicのサポート対象外

Claude CodeはローカルLLMで動きますが、Anthropicの公式サポートの対象外です。 個人の検証やオフラインでの学習には使えますが、社内の標準構成にする用途には向きません。

まず、動くこと自体はモデル実行環境の側が公式に案内しています。Ollamaの公式ドキュメントには、Claude Code向けの専用ページがあり、ollama launch claude で起動する方法と、環境変数で手動接続する方法の両方が載っています。LM Studioも2026年1月30日の公式ブログで、0.4.1からClaude Codeが使えるようになったと告知しています。

一方、Claude Codeを提供するAnthropicは、LLMゲートウェイのページで次のように書いています。

Anthropic doesn't endorse, maintain, or audit third-party gateway products, and doesn't support routing Claude Code to non-Claude models through any gateway. (Anthropicはサードパーティ製のゲートウェイ製品を推奨・保守・監査しておらず、いかなるゲートウェイ経由であれ、Claude Codeを非Claudeモデルにルーティングすることをサポートしていない)

接続先を変える仕組みそのものは、企業が自社のゲートウェイ経由でClaudeを使うために公式に用意されたものです。またゲートウェイの概要ページには「ゲートウェイが決めるのは要求の送り先で、開発者がどのモデルを選ぶかではない」とあり、答えるモデルは /model やモデル指定の環境変数で選ぶ前提になっています。つまり、その仕組みを使ってClaude以外のモデルにつなぐことは、Anthropicが想定していない使い方です。

この食い違いから、判断は次のように分けられます。

  • 個人の検証・学習・オフライン環境での試用:使ってかまいません。ただし不具合が起きてもAnthropicには問い合わせられず、Claude Codeの更新で動かなくなる可能性も受け入れる前提です。
  • チーム・全社の標準構成:おすすめしません。ローカルLLMを業務で使いたいなら、ローカル実行を公式に案内しているエージェント(後述のClineやOpenCodeなど)を選ぶほうが、サポートの面でも筋が通ります。

この立場は、当サイトのQwen Coderの解説で示した「Claude Codeから使う構成はサポート対象外」という整理と同じです。

仕組み:接続先を ANTHROPIC_BASE_URL で替えるだけ

Claude CodeはAnthropic Messages API(/v1/messages)にしか話しかけないため、同じ形式で応答するサーバーなら接続先にできます。 接続先は環境変数 ANTHROPIC_BASE_URL、認証情報は ANTHROPIC_AUTH_TOKEN または ANTHROPIC_API_KEY で切り替えます。

Claude Codeのゲートウェイ互換ガイドによると、ANTHROPIC_BASE_URL で指定した接続先に必要なのは /v1/messages で、トークン数を数える /v1/messages/count_tokens は任意です。ない場合、Claude Codeは文字数からの概算に切り替えます。

ここから、ローカルLLMにつなぐ方法は2種類に分かれます。

  1. Anthropic形式をそのまま話すローカル実行環境に直接つなぐ:OllamaとLM Studioがこれにあたります。間に何も挟まないので、いちばん簡単です。
  2. 形式を変換する中継ソフトを挟む:OpenAI形式やGemini形式しか話さない接続先を使いたい場合は、Claude Code Routerのような中継ソフトが要ります。

Claude CodeからローカルLLMへの3つの接続経路を示した図。Ollamaはポート11434、LM Studioはポート1234でAnthropic形式の /v1/messages を提供し、Claude Codeが直接つながる。Claude Code Routerはポート3456で受けた要求を、OpenAI形式やGemini形式などの接続先に変換して振り分ける。どの経路もAnthropicのサポート対象外。

3つの方法の違いを表にまとめます。

項目OllamaLM StudioClaude Code Router
役割ローカル実行環境(Anthropic形式を直接提供)ローカル実行環境(Anthropic形式を直接提供)中継ソフト(形式を変換して振り分け)
必要なバージョンv0.14.0以降(/v1/messages 追加)、ollama launch はv0.15.0以降0.4.1以降v3系(2026年10月時点の最新はv3.1.3)
既定の接続先http://localhost:11434http://localhost:1234http://127.0.0.1:3456
起動のしかたollama launch claude または環境変数lms server start と環境変数管理画面でプロファイルを作り ccr で起動
推奨コンテキスト長64k以上(公式)25K以上、大きいほど良い(公式ブログ)接続先のモデルによる
向いている人まず1回動かしたい人、CLI中心の人画面でモデルを選びたい人、MLX形式を使いたい人ローカルとクラウドの複数モデルを使い分けたい人

(各公式ドキュメント・GitHubのリリース情報より。2026年10月14日時点)

方法1:Ollamaで動かす

Ollamaは、ollama launch claude の1コマンドでClaude Codeを起動できる、いちばん手軽な方法です。 環境変数を自分で書く手動接続もできます。どちらの場合も、コンテキスト長を64k以上にする設定を忘れないでください。

ollama launch claude で起動する

Ollamaは2026年1月10日公開のv0.14.0で、Anthropic Messages API互換の /v1/messages に対応しました。続く1月21日公開のv0.15.0で、Claude Code・Codex・OpenCode・Droidを個別の設定なしで起動できる ollama launch コマンドが加わっています。

Claude Codeをインストールした状態で、次を実行します。

ollama launch claude

モデルの選択画面が出るので、使うモデルを選ぶとClaude Codeが立ち上がります。選択画面を飛ばしたい場合は、モデル名と --yes を付けます。

ollama launch claude --model qwen3.5 --yes

Ollamaの公式ドキュメントによると、--yes は選択画面を省略し、必要ならモデルを取得します(--model の指定が必須)。-- の後ろに書いた引数はそのままClaude Codeに渡されるため、ollama launch claude --model qwen3.5 --yes -- -p "このリポジトリの構成を説明して" のように、Claude Codeの非対話モードとも組み合わせられます。

環境変数で手動接続する

ollama launch を使わずに、環境変数で接続先を指定する方法もあります。公式ドキュメントに載っている設定は次のとおりです。

export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_API_KEY=""
export ANTHROPIC_BASE_URL=http://localhost:11434
claude --model qwen3.5

3つの変数の意味は次のとおりです。

  • ANTHROPIC_BASE_URL:要求の送り先。Ollamaの既定の待ち受けアドレス 127.0.0.1:11434 を指します。
  • ANTHROPIC_AUTH_TOKEN:Authorization: Bearer ヘッダーで送る認証情報。Ollamaのローカルサーバーはキーを検証しないため、値は ollama のような任意の文字列でかまいません。
  • ANTHROPIC_API_KEY:Ollamaの公式手順では空にします。この変数の値は x-api-key ヘッダーで接続先に送られるため、普段使っているAnthropicのAPIキーが残っていると、それがローカルサーバーへ送られることになります。

注意したいのは、Claude Codeの設定ファイル(settings.json)の env ブロックに同じ変数があると、シェルで設定した値より優先される点です。Claude Codeのゲートウェイ接続ガイドにも、両方にあれば設定ファイル側が使われると書かれています。起動後に /status を実行し、「Anthropic base URL」の行に http://localhost:11434 が表示されていれば、ローカルに向いています。

なお、ANTHROPIC_AUTH_TOKEN を設定している間は、claude.aiのログイン情報は保存されたまま使われません。普段のサブスクリプションに戻すときは、変数を外してから起動し直してください。

コンテキスト長を64k以上にする

Ollamaの既定のコンテキスト長は、VRAMが24GiB未満の環境では4kしかありません。 これがClaude Codeで最もつまずきやすい点です。

Ollamaの公式ドキュメント(Context length)によると、既定値はVRAM量で次のように決まります。

VRAM量既定のコンテキスト長
24GiB未満4k
24〜48GiB32k
48GiB以上256k

同じページは「Web検索、エージェント、コーディングツールのように大きなコンテキストを必要とする作業では、少なくとも64000トークンに設定すべき」としています。Claude Code向けのページでも、大きいリポジトリを扱う場合は64k以上が推奨されています。Claude Codeは毎回の要求に長いシステムプロンプトとツール定義を付けて送ります。クラスメソッドの検証記事では、ツール定義だけで約11,000トークン相当とされています。4kのままでは、最初の要求から収まりきりません。

設定は、Ollamaアプリの設定画面のスライダーで変えるか、サーバーを環境変数付きで起動します。

OLLAMA_CONTEXT_LENGTH=64000 ollama serve

反映されたかは ollama ps で確かめます。CONTEXT列が設定値になっているか、PROCESSOR列でモデルの一部がCPUに逃げていないか(GPUに載りきっているか)を見てください。CPUに一部が載ると、応答が極端に遅くなります。

コンテキストを伸ばすとメモリも増えます。OllamaのFAQには「必要なRAMは OLLAMA_NUM_PARALLEL × OLLAMA_CONTEXT_LENGTH に比例して増える」とあります。同時処理数を増やしている環境では、64kに上げたとたんにメモリが足りなくなることがあるため、手元で1人で使うなら同時処理数は小さく保ちます。必要メモリの見積もり方はローカルLLM構築の手順で詳しく扱っています。

Ollamaのクラウドモデルを使う場合

Ollamaには、手元ではなくOllamaのサーバーで動くクラウドモデルもあります。公式ドキュメントでは、gemma4:cloud のように :cloud が付いたモデルを ollama launch claude --model で指定する方法と、ローカルのOllamaを入れずに ANTHROPIC_BASE_URL=https://ollama.com と OLLAMA_API_KEY で直接つなぐ方法が紹介されています。

ただし、これはローカルLLMではありません。コードや指示文はOllamaのクラウドに送られます。「手元から出さない」ことが目的なら、:cloud の付かないモデルを選んでください。公式ドキュメントには、クラウド経由ではホスト型のWeb検索や高度なツール制御が完全にはサポートされないという注意書きもあります。

Ollama経由で使えない機能

Ollamaが対応しているのはAnthropic Messages APIの一部だけです。 Ollamaの互換性ページによると、ストリーミング、システムプロンプト、ツール呼び出し、画像(Base64のみ)、思考(Thinking)には対応していますが、次の機能は対応していません。

対応していない機能Claude Code側で起きること
トークン数を数える /v1/messages/count_tokens/context などの表示が文字数からの概算になる
プロンプトキャッシュ(cache_control)毎回、会話全体を最初から読み込み直すため、会話が長くなるほど応答が遅くなる
PDFの読み込み(document ブロック)PDFを渡す作業はできない
ツールの強制・無効化(tool_choice)特定のツールを必ず使わせる指示は効かない
バッチ処理・引用(citations)Claude Codeの通常の操作では影響は小さい

(左列はOllama公式ドキュメントの記載。右列は、Claude Codeのゲートウェイ互換ガイドにある「トークン数のエンドポイントがない場合は概算になる」「キャッシュが効かないと毎回キャッシュなしで処理される」という記述と照らし合わせた影響です)

プロンプトキャッシュがない点は、ローカル環境では体感速度に直結します。Claude Codeは長いシステムプロンプトとツール定義を毎回送るため、そのたびに読み込み直しが発生します。

方法2:LM Studioで動かす

LM Studioは、画面でモデルを探して読み込み、そのままClaude Codeの接続先にできる方法です。 0.4.1以降でAnthropic互換の /v1/messages に対応しています。

LM Studioの公式ブログ(2026年1月30日)の手順は次のとおりです。

  1. LM Studioでモデルを読み込み、コンテキスト長を25K以上に設定する
  2. ターミナルからローカルサーバーを起動する
lms server start --port 1234
  1. 環境変数を設定してClaude Codeを起動する
export ANTHROPIC_BASE_URL=http://localhost:1234
export ANTHROPIC_AUTH_TOKEN=lmstudio
claude --model openai/gpt-oss-20b

サーバーが動いているかは lms status で確認できます。公式ブログによると、ストリーミング(message_start・content_block_delta・message_stop などのイベント)とツール呼び出しにそのまま対応しています。

Ollamaとの違いは主に3つです。

  • モデル形式:GGUFに加えて、Apple Silicon向けのMLX形式のモデルも使えます。Macで動かすなら選択肢が広がります。
  • コンテキストの推奨値:LM Studioは「25K以上、大きいほど良い」としています。ただしClaude Codeのツール定義だけで約11,000トークン相当を使うことを考えると、Ollamaと同じく64k前後を目安にしておくほうが、長い作業で途切れにくくなります。
  • モデルの向き不向き:公式ブログ自身が「エージェント的な作業に向くモデルとそうでないモデルがある」と書いています。読み込めるモデルなら何でも快適に動くわけではありません。

GUIなしでサーバー上に置きたい場合は、公式ブログで案内されている llmster(curl -fsSL https://lmstudio.ai/install.sh | bash で導入)を使う方法もあります。

方法3:Claude Code Routerで振り分ける

Claude Code Router(CCR)は、Claude Codeからの要求を受けて、OpenAI形式やGemini形式など別の形式のモデルに変換して振り分ける中継ソフトです。 Anthropic形式を話さない接続先を使いたいときに選びます。

GitHubのリポジトリによると、2026年10月時点の最新版はv3.1.3(10月9日公開)で、ライセンスはMIT、スター数は約3.7万です。現在のCCRは、Claude Codeだけでなく、Codex・OpenCode・Kimi CLIなど複数のコーディングエージェントに「ひとつの安定したローカル接続先」を提供する、ローカルのモデルゲートウェイ兼管理画面という位置づけになっています。

対応している接続先として、OpenAI Chat/Responses、Anthropic Messages、Gemini、OpenRouter、DeepSeek、SiliconFlow、Moonshot、Kimi Code、Mistral、Z.AI、Bailianと、互換APIを持つカスタムの接続先が挙げられています。OpenAI互換APIを持つ社内の推論サーバーなどは、この「互換APIを持つカスタムの接続先」として扱う対象になります。

導入と起動

推奨はデスクトップアプリ(macOS・Windows・Linux)です。CLIで使う場合はNode.js 22以降が必要です。

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

ccr ui で管理画面がブラウザで開きます。CCRのCLIガイドによると、既定では管理画面が http://127.0.0.1:3458、モデルゲートウェイが http://127.0.0.1:3456 で動きます。主なコマンドは次のとおりです。

コマンド役割
ccr start管理サービスとゲートウェイをバックグラウンドで起動する
ccr uiサービスを起動(または再利用)して管理画面を開く
ccr serve前面で起動してログを見る
ccr stopバックグラウンドのサービスを止める
ccr <プロファイル名> cli -- <Claude Codeの引数>管理画面で作ったClaude Code用プロファイルで起動する

Claude Codeから使うには、管理画面の「Agent Config」でClaude Code用のプロファイルを作って有効にし、ゲートウェイを起動した状態で、たとえば ccr "Claude - Review" cli -- --model sonnet のようにプロファイルを指定して起動します。設定は ~/.claude-code-router 配下の config.sqlite に保存されます。

古い解説記事との違いに注意

CCRは大きく作りが変わっています。ネット上には、~/.claude-code-router/config.json を手で書いてルーティングを設定し、ccr code で起動する手順を紹介した記事が多く残っています。一方、現行のv3系の公式ドキュメントでは、設定は管理画面と config.sqlite で扱い、起動はプロファイルを指定する形になっており、ccr code はCLIガイドに載っていません。古い記事の手順どおりに進めて設定ファイルが見つからない場合は、バージョンの違いを疑ってください。

CCRを使う前に知っておくこと

CCRはコミュニティで開発されているOSSで、Anthropicの製品ではありません。Anthropicは前述のとおり、サードパーティ製ゲートウェイを推奨・保守・監査していません。また、Claude Codeのゲートウェイ互換ガイドは、Claude Codeが新しい機能を追加するたびに新しいヘッダーや要求項目を送るようになるため、中継側が追従していないと機能が壊れると説明しています。変換を挟む構成は、Claude Codeの更新のたびに動作確認が必要になると考えてください。

ローカルモデルで起きること

ローカルモデルでClaude Codeを動かすと、「起動はするが、作業がうまく進まない」ことがよくあります。 原因はモデルの能力だけでなく、Claude Code側の前提とのずれにもあります。

第三者の検証では「現時点では実用的でない」

クラスメソッドの検証記事(2026年1月25日)は、MacBook Pro(M4・メモリ32GB)、Ollama v0.15.1、Claude Code v2.1.15の環境で、4つのモデルを試しています。

モデルサイズ結果
qwen2.5-coder:1.5b986MB単体の生成は毎秒78トークンと速い。曖昧な依頼にはコードでなく計算結果を返し、明確な依頼では動くコードを書いたが、説明文にコードと矛盾する内容が混じった
gemma3:4b3.3GBツール呼び出しに非対応のため、すぐに does not support tools というAPIエラー
llama3.1:8b4.9GBCLAUDE.mdがあると依頼と違うものを作ることがあった。CLAUDE.mdなしでも出力が不完全で、約34秒かかった
qwen2.5-coder:14b9.0GBコードを書かずにツール呼び出しをJSONの文字列のまま出力した。約57秒かかった

記事の結論は「現時点ではClaude Codeとローカルモデルの組み合わせは実用的ではない」というものです。症状として、曖昧な指示の誤解、事実と異なる説明、ツール呼び出しをJSONの文字列のまま出力してしまう、結果が安定しない、応答が遅い、が挙げられています。

この検証は2026年1月時点・32GBのMacでのものです。より大きいモデルや新しい世代のモデルでは結果が変わる可能性があります。ただ、「ツール呼び出しに強いモデル」「十分なコンテキスト」「それを載せるメモリ」の3つがそろわないと実用にならない、という構造は今も同じです。

つまずきと対処の一覧

起きること主な原因対処
最初の要求で does not support tools などのエラーになるモデルがツール呼び出しに対応していないOllamaのモデル検索でツール対応のモデルを選ぶ
指示や直前の内容を忘れる、途中で切れるOllamaのコンテキスト長が既定の4kのままOLLAMA_CONTEXT_LENGTH を64000以上にし、ollama ps で確認
応答が極端に遅いモデルの一部がCPUで動いている、またはキャッシュが効かず毎回読み直しているollama ps のPROCESSOR列を確認し、小さいモデルか短いコンテキストに下げる
長い作業の途中で破綻する設定しないと、Claude Codeは知らないモデル名のコンテキストを200Kと仮定し、自動圧縮が間に合わないCLAUDE_CODE_MAX_CONTEXT_TOKENS にローカル側と同じ上限(例:64000)を設定する。補助として /compact で区切る
sonnet などの別名でモデルを呼ぶとエラーになる別名がAnthropicのモデル名のまま送られ、ローカルにそのモデルがない後述の環境変数で、別名をローカルモデル名に割り当てる

Claude Codeにローカルモデルの上限を教える

4行目の「自動圧縮が間に合わない」は、見落とされやすい点です。Claude Codeのゲートウェイ互換ガイドによると、Claude Codeは知らないモデル名に対して、コンテキストウィンドウを200K(名前に [1m] が付けば100万)と仮定します。何も設定しないと、ローカルモデルの実際の上限が64kでも、Claude Codeは200Kあるつもりで会話を伸ばします。

対処は、Claude Codeに実際の上限を宣言することです。モデル設定のドキュメントの「Correct the window for a gateway or custom model ID」の節によると、claude- で始まらない、Claude Codeが認識できないモデル名には CLAUDE_CODE_MAX_CONTEXT_TOKENS がそのまま適用され、自動圧縮もその上限を基準に働きます。qwen3.5 のようなローカルモデル名はこれにあたるため、Ollamaの OLLAMA_CONTEXT_LENGTH と同じ値を設定します。

export CLAUDE_CODE_MAX_CONTEXT_TOKENS=64000

モデル名に [1m] を付けている場合は、この変数だけでは効かず、CLAUDE_CODE_DISABLE_1M_CONTEXT=1 も必要です。

なお、自動圧縮が始まる位置を変える CLAUDE_CODE_AUTO_COMPACT_WINDOW という別の環境変数もありますが、ゲートウェイ接続ガイドによると、こちらは10万トークン未満には設定できません。ローカルモデルの上限を伝える目的では CLAUDE_CODE_MAX_CONTEXT_TOKENS を使い、そのうえで長い作業は節目ごとに /compact で区切ると安定します。Claude Codeのコンテキスト圧縮の仕組みはコンテキスト圧縮の完全ガイドで解説しています。

別名とバックグラウンド処理をローカルモデルに割り当てる

Claude Codeは fable・opus・sonnet・haiku という別名でモデルを呼び分けます。ローカル接続でも、サブエージェントの設定などでこれらの別名が使われると、Anthropicのモデル名のままローカルに要求が飛び、エラーになります。モデル設定のドキュメントにある次の変数で、別名をローカルモデル名に割り当てておくと安全です。

export ANTHROPIC_DEFAULT_FABLE_MODEL=qwen3.5
export ANTHROPIC_DEFAULT_OPUS_MODEL=qwen3.5
export ANTHROPIC_DEFAULT_SONNET_MODEL=qwen3.5
export ANTHROPIC_DEFAULT_HAIKU_MODEL=qwen3.5

ANTHROPIC_DEFAULT_HAIKU_MODEL は、セッションのタイトル付けなどのバックグラウンド処理にも使われます。ゲートウェイ互換ガイドによると、ANTHROPIC_BASE_URL で接続していてこの変数が未設定の場合、バックグラウンド処理はメインのモデルで動きます。メモリに余裕があれば、ここだけ小さいモデルを割り当てると、本作業の邪魔をしにくくなります。なお、以前使われていた ANTHROPIC_SMALL_FAST_MODEL は非推奨で、ANTHROPIC_DEFAULT_HAIKU_MODEL に置き換わっています。

手元から外に出る通信を止める

ローカルLLMにつないでも、Claude Codeの通信がすべて手元で完結するわけではありません。 機密コードを外に出さない目的で使うなら、次の設定まで含めて考える必要があります。

ゲートウェイ接続ガイドによると、モデルへの要求は ANTHROPIC_BASE_URL の接続先に送られますが、それ以外にバージョン確認、テレメトリ、リリースノートの取得など、AnthropicやGitHubといった外部への「必須ではない通信」が発生します。これを止めるには次の変数を設定します。

export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

この変数には次の影響と限界があります。

  • 自動アップデートも止まります。 Claude Codeの更新は、パッケージマネージャーなど別の手段で行う必要があります。
  • WebFetchツールの安全確認は止まりません。 WebFetchはドメインの安全確認のために api.anthropic.com に問い合わせます。止めるには、設定ファイルで skipWebFetchPreflight: true を別に指定します。
  • fast modeの利用可否の確認も行われなくなります。 ローカル接続ではもともと関係しない機能です。

ほかにも、ローカル接続中に使えなくなる機能があります。

  • Remote Controlと音声入力:どちらもclaude.aiのアカウントに依存するため、ANTHROPIC_AUTH_TOKEN などが有効な間は使えません。
  • プロジェクトの .claude/settings.json に接続設定を書かない:このファイルはリポジトリにコミットされ、チーム全員に配られます。個人の検証用の接続先は ~/.claude/settings.json か、gitの管理外にする .claude/settings.local.json に書きます。

もう1つ、Ollama側の注意です。OllamaのローカルサーバーはAPIキーを検証しません。既定では 127.0.0.1:11434(自分のPCからだけ)で待ち受けますが、OLLAMA_HOST を 0.0.0.0 に変えて社内ネットワークに公開すると、同じネットワークの誰でも使えてしまいます。複数人で共有する場合の認証の付け方はローカルLLM構築の手順で解説しています。

向いている用途・向かない用途

ここまでの制約を踏まえると、Claude Code×ローカルLLMが役に立つ場面は限られます。

用途向き不向き理由
Claude Codeの操作やスラッシュコマンドを、課金を気にせず練習する向いている失敗してもトークン費用がかからない。品質は問わない
ネットワークのない環境で、簡単なファイル編集や定型作業をさせる条件付きで向いている外部通信を止める設定と、ツール対応モデル・64k以上のコンテキストがそろえば可能
中継ソフトやゲートウェイの動作を、本番前に手元で試す向いている接続方式の検証が目的で、モデルの質は問わない
既存の大きなリポジトリでの設計変更や複数ファイルにまたがる修正向かない長いコンテキストとツール呼び出しの正確さが要り、第三者検証でも破綻が報告されている
チーム・全社の標準開発環境向かないAnthropicのサポート対象外で、更新で動かなくなっても不具合扱いにならない
機密コードを社外に出さないことが要件の業務この構成以外も検討する通信の止め方を誤ると要件を満たせない。下の代替構成のほうが説明しやすい

業務で使うならどの構成を選ぶか

業務でローカルLLMを使いたいなら、ローカル実行を公式に案内しているエージェントを選ぶほうが確実です。 Claude Codeを使い続けたい場合は、モデルをClaudeのまま、データの置き場所で要件を満たす方法があります。

構成ローカルLLMの扱いサポートの立場向いているケース
Claude Code+Claude(Anthropic API・Bedrockなど)使わない公式にサポート品質を優先し、データの扱いは契約・クラウドの地域で管理したい
Claude Code+Ollama/LM Studio直接つなぐAnthropicはサポート外(モデル側は手順を公開)個人の検証・学習
Claude Code+Claude Code Router変換して振り分けAnthropicはサポート外(OSSの自己責任)複数モデルの使い分けを試したい
Cline+Ollama/LM Studio設定画面で選べるCline公式ドキュメントがローカル実行を案内VS Code中心でローカルLLMを業務に使いたい
OpenCode+Ollama/LM Studio設定ファイルで登録OpenCode公式ドキュメントが接続方法を案内ターミナル中心でローカルLLMを業務に使いたい

それぞれの公式ドキュメントの記載は次のとおりです。

  • Cline:公式ドキュメントで、Ollama・LM Studio・Atomic Chatをローカル実行環境として案内しています。メモリの目安を「16〜32GBは小型・量子化モデル、32〜64GBは中型のコーディングモデル、64GB以上は大きいモデルと長いコンテキスト」としており、ローカル推論向けに「Use Compact Prompt」を有効にするよう勧めています。使い方はCline完全ガイド、Claude Codeとの違いはClaude Code vs Cline比較を参照してください。
  • OpenCode:公式ドキュメントで、Ollama(http://localhost:11434/v1)とLM Studio(http://127.0.0.1:1234/v1)をOpenAI互換の接続先として登録する方法を示しています。ツール呼び出しがうまくいかない場合はOllamaの num_ctx を上げ、16k〜32kから試すよう書かれています。
  • Qwen Code:Qwenのモデルを使う前提なら、モデル提供元が自ら用意しているエージェントです。詳しくはQwen Coderの解説で扱っています。

「Claude Codeは使いたいが、データを外部に出す範囲を管理したい」という要件なら、Amazon BedrockやGoogle CloudのAgent Platform経由でClaudeを使う構成が公式に用意されています。社内導入時の確認点はClaude Codeのセキュリティと社内導入時の注意点、費用の比べ方はClaude Codeの料金プラン完全ガイドにまとめています。そもそも自社にローカルLLMが必要かを判断したい場合は、ローカルLLMの導入判断ガイドから読むのがおすすめです。

よくあるエラーと対処

ローカル接続のエラーは、多くが「接続先が動いていない」「モデル名が違う」「設定が反映されていない」のどれかです。 表示ごとに見る場所を整理します。

「Connection refused」と表示される

Claude Codeが接続先にたどり着けていません。Ollamaアプリやサーバー(ollama serve)、LM Studioのサーバー(lms server start)が起動しているか、ポート番号(Ollamaは11434、LM Studioは1234)が合っているかを確認します。Claude Codeの接続エラー全般の切り分けは、「Can't reach the API server」「Connection refused」の原因と対処で詳しく扱っています。

切り分けには、Claude Codeを使わずに curl で直接 /v1/messages を呼ぶのが確実です。ゲートウェイ接続ガイドにある確認方法を、Ollama向けに書き換えると次のようになります。

curl -sS -X POST http://localhost:11434/v1/messages \
  -H "Authorization: Bearer ollama" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "qwen3.5", "max_tokens": 16, "messages": [{"role": "user", "content": "こんにちは"}]}'

JSONで応答が返れば、接続先とモデルは正常です。問題はClaude Code側の設定にあります。

「There's an issue with the selected model」と表示される

指定したモデル名で要求が通りませんでした。モデル設定のドキュメントによると、--model や ANTHROPIC_MODEL で指定したモデル名は事前に確認されず、名前を間違えていると最初の要求でこの表示になります。ollama list でモデル名を正確に確認し、未取得なら ollama pull で取得します。sonnet などの別名を指定したとき(サブエージェントの設定を含む)に出る場合は、前述の ANTHROPIC_DEFAULT_*_MODEL で別名をローカルモデル名に割り当ててください。

「does not support tools」と表示される

選んだモデルがツール呼び出しに対応していません。クラスメソッドの検証でも、gemma3:4bで API Error: 400 とともにこの表示が出ています。Claude Codeはファイルの読み書きやコマンド実行をすべてツール呼び出しで行うため、ツール非対応のモデルでは何もできません。Ollamaのモデル検索でツール対応のモデルを選び直してください。

ログイン画面が出る、またはclaude.aiで動いてしまう

接続先は設定できても、認証情報の変数が設定されていないとClaude Codeはログインを求めます。ANTHROPIC_AUTH_TOKEN を設定してください。逆に、ローカルに向けたつもりが普段どおりClaudeが答えている場合は、settings.json の env ブロックがシェルの設定を上書きしていないか、/status の「Anthropic base URL」の行で確認します。

400エラーで知らない項目名が表示される

Claude Code Routerなど中継ソフトを挟んだ構成で、context_management などの項目名を含む400エラーが出ることがあります。Claude Codeが送る新しい項目を、接続先が受け付けていないためです。ゲートウェイ接続ガイドでは、CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 を設定すると、試験的な機能の送信の多くを止められると案内されています。

よくある質問

まとめ

  1. Claude CodeはローカルLLMで動く。OllamaとLM StudioがAnthropic形式の /v1/messages を提供しており、接続先を ANTHROPIC_BASE_URL で替えれば使えます。
  2. AnthropicはClaude以外のモデルへの接続をサポートしていない。個人の検証・学習には使えますが、社内の標準構成には向きません。
  3. Ollamaなら ollama launch claude が最短。手動接続でも環境変数3つで足ります。
  4. コンテキスト長を64k以上に。OllamaはVRAM 24GiB未満だと既定4kで、Claude Codeの要求が収まりません。Claude Code側にも CLAUDE_CODE_MAX_CONTEXT_TOKENS で同じ上限を伝えると、自動圧縮がその上限に合わせて働きます。
  5. 使えない機能と、外に出る通信を把握する。プロンプトキャッシュやトークン計数は効かず、外部への通信は別の変数で止める必要があります。
  6. 業務でローカルLLMを使うなら、ClineやOpenCodeなど公式にローカル実行を案内するエージェントを選ぶ。Claude Codeを使い続けるなら、モデルはClaudeのまま、クラウドの地域や契約でデータの扱いを管理するのが筋です。

参考にした公式情報

関連記事