VS Code拡張のClaude CodeとCodexをローカルLLMで動かす

デフォルト接続先をローカルにするのが鍵
Misc
公開

2026年8月16日

Claude CodeやCodexをローカルLLMで動かしたい場合、基本的にはCLI版を使うことになります。ただ、実際に使ってみると、やはりテキストエディタと統合された画面があった方が便利に感じます。

そこで、VS Codeの拡張機能としてClaude CodeやCodexを導入し、それをローカルLLM(LM Studioなど)で動作させる環境を構築してみました。設定のポイントを共有します。

VS Code拡張機能を導入して感じたメリット

VS Codeの拡張機能としては、AnthropicとOpenAIからそれぞれ公式に提供されていますので、まずはそれをインストールします。

CLIではなくあえてVS Codeを通して利用することには、私にとって次のようなメリットがありました。

  • 作業フォルダの管理が楽: VS Codeで開いているフォルダがそのまま作業フォルダになるため、CLIのように毎回 cd で移動する手間が省けます。
  • 日本語入力のストレスがない: CLIでの日本語入力は、環境によって入力しづらかったり、入力できない記号があったりしますが、VS Code上であれば通常の日本語変換がそのまま使えます。
  • 視認性が良い: 画面内でチャットが完結するため、コードと対話履歴を並べて確認しやすく、効率的に作業が進みます。

Claude Codeの場合

Claude CodeをローカルLLMに接続させるには、設定ファイル (settings.json) に以下のように記述します。

{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "lmstudio",
    "ANTHROPIC_BASE_URL": "http://localhost:1234",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "API_TIMEOUT_MS": "1500000",
    "API_FORCE_IDLE_TIMEOUT": "0"
  },
  "model": "google/gemma-4-31b"
}

ここでのポイントは2点です。

1. 接続先をローカルに変更する

本来Claudeのサーバーへ向かう ANTHROPIC_BASE_URL をローカルLLM(ここではLM Studio)のURLに書き換えます。これにより、Claudeのサブスクリプションに入っていなくても、ログイン画面をスキップしてチャットを開始できるようになります。

2. タイムアウト設定

ここが意外に苦労しました。

ローカルLLMはマシンスペックが足りないと推論速度が遅くなるため、応答を待っている間にタイムアウトしてしまうことがありました。特にClaude Codeは内部的に非常に長いシステムプロンプトを使用しているようで、処理に時間がかかります。

最初は API_TIMEOUT_MS の値を大きくして待ち時間を延ばせば解決すると思ったのですが、実はこれだけでは不十分でした。

いろいろと試行錯誤した結果、API_FORCE_IDLE_TIMEOUT0 に設定することで、ようやくタイムアウトせずに最後まで処理を完結させられることが分かりました。もし「設定時間を延ばしても途中で切れてしまう」という場合は、この値を試してみてください。

Codexの場合

次にCodexの設定です。こちらは設定ファイル (config.toml) に記述します。

model_provider = "local"
model = "google/gemma-4-31b"
default_permissions = ":workspace"

[model_providers.local]
name = "lmstudio"
base_url = "http://localhost:1234/v1"
stream_idle_timeout_ms = 1200000

設定のポイントは主に次の2点です。

1. デフォルトの接続先をローカルにする

Codexは本来ChatGPTのサーバーを見に行きます。起動時に --oss オプションを指定することでローカルサーバーを参照させることができるのですが、VS Codeの拡張機能経由ではこのオプションを指定する方法が見当たりませんでした。 そのため、model_provider のデフォルト値自体を local に書き換えることで対応しています。

2. タイムアウト時間を延ばす

Claude Codeと同様に、ローカルLLMの速度に合わせて stream_idle_timeout_ms を長く設定しています。

個人的な感触としては、Codexの方がClaude Codeよりもシステムプロンプトが短く、タイムアウトが起こりにくい印象を受けました。

まとめ

設定ファイルが JSON だったり TOML だったりとツールによってバラバラで、少し手間はかかりますが、VS Code上でローカルLLMが統合されている環境は非常に快適です。(よい仕事をしてくれるかは別ですが…)

特にClaude Codeのタイムアウト設定のような「試してみないと気付きにくいポイント」があるため、これから導入される方はぜひ参考にしてみてください。