ドキュメント

Claude Code の環境変数

Claude Code のすべての環境変数について、その役割、設定する場所、そして claudeCode.environmentVariables を経由して VS Code のパネルに届くまでの流れをまとめます。

Claude Code の設定は、ほぼすべて環境変数で行われます。認証、API エンドポイント、モデル、リトライとタイムアウトの挙動、そしてプロキシやゲートウェイ向けの互換スイッチは、すべて環境変数です。コマンドラインのフラグでも、設定ウィザードの入力欄でもありません。Claude Code の動作が期待どおりにならないときは、このページをチェックリストとして使ってください。どの変数か、どのファイルか、どの優先順位か、という順に確認できます。

claudeCode.environmentVariables とは

claudeCode.environmentVariables は、Claude Code 拡張機能のパネルに環境変数を渡すための VS Code 設定です。VS Code のユーザー settings.json に保存される、{ "name": ..., "value": ... } の組を並べた単純な配列です:

1
"claudeCode.environmentVariables": [
2
  { "name": "ANTHROPIC_BASE_URL", "value": "https://www.codebyai.net/api/agent" },
3
  { "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-proj-xxxx" }
4
]

この配列を編集する前に知っておきたい性質が 4 つあります。どれも多くの人がつまずく点です:

性質影響
オブジェクトの配列であり、マップではない"KEY": "value" は黙って無視されます。パネルは変数が空のまま起動します
マシンスコープであるそのコンピューター上のすべての VS Code ウィンドウに影響します。現在のフォルダーだけではありません
無関係な変数と配列を共有するプロキシ設定や NODE_EXTRA_CA_CERTS も同じ配列にあります。上書きするとそれらは消えてしまいます
エージェントの起動時に一度だけ読み込まれる編集しても、Developer: Reload Window(または VS Code の再起動)まで反映されません

シェルの export が拡張機能パネルに届かない理由

claude CLI は、それを起動したプロセスの環境を引き継ぐため、~/.zshrc に export ANTHROPIC_BASE_URL=... を書けば有効です。拡張機能はそうではありません。拡張機能はVS Code のウィンドウプロセスからエージェントプロセスを起動するため、パネルが見るのは VS Code を起動したときのデスクトップ/ログイン環境であり、export を入力したシェルではありません。

これが最もよくある Claude Code の設定ミスの原因です。ターミナルでは動くのに、拡張機能パネルは既定のエンドポイントと通信し続けてしまいます。解決策は 2 つです。そのターミナルから VS Code を起動する(環境変数を引き継ぎますが、その場合はすべてのウィンドウがその経路になります)か、拡張機能自身の逃げ道である claudeCode.environmentVariables を設定するかです。

パネルが実際に見ているものを確認する

次のコマンドは、拡張機能が注入する変数名を一覧表示します(認証情報らしき値はマスクされます):

1
# macOS
2
S="$HOME/Library/Application Support/Code/User/settings.json"
3
# Linux:   S="$HOME/.config/Code/User/settings.json"
4
# Windows: S="$APPDATA/Code/User/settings.json"
5
 
6
jq -r '.["claudeCode.environmentVariables"] // [] | .[] | "\(.name)"' "$S"

何も出力されない場合は、パネルが VS Code プロセスの環境を引き継いでいることを意味します。変数は別の場所から設定する必要があります。

変数を設定できる 3 つの場所

設定場所適用対象永続性
シェルの export(~/.zshrc、~/.bashrc、Windows の環境変数)シェルから起動した claude CLIあり。シェルセッションごと
settings.json の env ブロック(~/.claude/settings.json、.claude/settings.json、.claude/settings.local.json)CLI、VS Code 拡張機能、Agent SDKあり。設定スコープごと
claudeCode.environmentVariablesVS Code 拡張機能のパネルのみあり。マシン全体

settings.json のスコープは区別して覚えておくと便利です:

ファイルスコープ
~/.claude/settings.jsonすべてのプロジェクトにおける自分自身
.claude/settings.jsonプロジェクトの全員(コミットしてください)
.claude/settings.local.jsonこのプロジェクトだけの自分自身(git 管理外)
マネージド設定組織の全員
1
{
2
  "env": {
3
    "ANTHROPIC_BASE_URL": "https://www.codebyai.net/api/agent",
4
    "API_TIMEOUT_MS": "600000"
5
  }
6
}

優先順位のルール

  • 環境変数は、対応する settings.json のフィールドより優先されます(たとえば ANTHROPIC_MODEL は model より優先されます)。
  • コマンドラインの --model とセッション内の /model は ANTHROPIC_MODEL より優先されます。
  • ANTHROPIC_API_KEY は、対話モードでは対話型のサブスクリプションログインより優先されます。-p(print)モードでは常に API キーが使われます。
  • 変数はプロセスの起動時に読み込まれます。セッションの途中で読み直されることはありません。claude を再起動するか、VS Code で Developer: Reload Window を実行してください。

Claude Code を Code By AI に向ける

Code By AI は Anthropic 互換のエンドポイントを提供しているため、関係する変数はエンドポイントと、それに対応するトークンだけです。Claude Code の起動方法に合った設定場所を選んでください。

ターミナル / CLI

1
# ~/.zshrc or ~/.bashrc
2
export ANTHROPIC_BASE_URL="https://www.codebyai.net/api/agent"
3
export ANTHROPIC_AUTH_TOKEN="sk-proj-xxxx"
4
export API_TIMEOUT_MS=600000
5
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

VS Code 拡張機能

1
"claudeCode.environmentVariables": [
2
  { "name": "ANTHROPIC_BASE_URL", "value": "https://www.codebyai.net/api/agent" },
3
  { "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-proj-xxxx" },
4
  { "name": "API_TIMEOUT_MS", "value": "600000" },
5
  { "name": "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC", "value": "1" }
6
],

ウィンドウをリロードしてから、パネルのヘッダーにゲートウェイのエンドポイントが表示されていることを確認してください。Windows のコマンドラインでの同等の手順を含む詳しいやり方は、Claude Code の設定にまとめています。

ANTHROPIC_AUTH_TOKEN は Authorization: Bearer <value> として送信され、これが Code By AI ゲートウェイの期待する形式です。ANTHROPIC_API_KEY は代わりに X-Api-Key として送信されます。どちらか一方だけを使い、両方は決して使わないでください。意図しないほうが優先されてしまう可能性があります。

変数リファレンス

認証

変数用途
ANTHROPIC_API_KEYX-Api-Key ヘッダーとして送信される API キー。-p モードでは常に使用されます
ANTHROPIC_AUTH_TOKENカスタムの Authorization ヘッダー値。Bearer が前置されます
CLAUDE_CODE_OAUTH_TOKENClaude.ai 認証用の OAuth アクセストークン。SDK や自動化環境向け
CLAUDE_CODE_OAUTH_REFRESH_TOKENclaude auth login がブラウザなしで交換するリフレッシュトークン
CLAUDE_CODE_OAUTH_SCOPESリフレッシュトークンの発行時に指定されたスコープ(スペース区切り)

エンドポイントとプロバイダーのルーティング

変数用途
ANTHROPIC_BASE_URLAPI エンドポイントを上書きします(プロキシまたはゲートウェイ)。ENABLE_TOOL_SEARCH=true でない限り、非ファーストパーティのホストでは MCP ツール検索が無効になります
CLAUDE_CODE_USE_BEDROCK / _VERTEX / _FOUNDRYAmazon Bedrock、Google Vertex AI、Microsoft Foundry 経由でルーティングします
ANTHROPIC_BEDROCK_BASE_URL / ANTHROPIC_VERTEX_BASE_URL / ANTHROPIC_FOUNDRY_BASE_URLプロバイダーごとのエンドポイントを上書きします
HTTP_PROXY / HTTPS_PROXY / NO_PROXYネットワーク接続の外向きプロキシ
CLAUDE_CODE_SKIP_BEDROCK_AUTH および同種の変数LLM ゲートウェイが自身でリクエストに署名する場合に、プロバイダー認証をスキップします

モデルの選択

変数用途
ANTHROPIC_MODEL使用するモデル。--model と /model で上書きされます
ANTHROPIC_DEFAULT_SONNET_MODEL / _HAIKU_ / _OPUS_各ティアの既定モデル ID を固定します
ANTHROPIC_CUSTOM_MODEL_OPTION / _NAME / _DESCRIPTION/model ピッカーにカスタム項目を追加します
CLAUDE_CODE_SUBAGENT_MODELサブエージェントが使用するモデル
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY1 に設定すると、ゲートウェイの /v1/models から /model を埋めます
MAX_THINKING_TOKENS拡張思考の予算。Anthropic API では 0 で思考が無効になります
CLAUDE_CODE_MAX_OUTPUT_TOKENSリクエストあたりの最大出力トークン数

タイムアウトとリトライ

変数既定値用途
API_TIMEOUT_MS600000API リクエストのタイムアウト(ミリ秒)
BASH_DEFAULT_TIMEOUT_MS120000長時間実行される Bash コマンドの既定タイムアウト
BASH_MAX_TIMEOUT_MS600000モデルが Bash に設定できる最大タイムアウト
CLAUDE_CODE_MAX_RETRIES10失敗した API リクエストのリトライ回数

プロキシとゲートウェイの互換性

サードパーティのエンドポイントがそもそも動作するかどうかを決めるのが、これらの変数です:

変数用途
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC1 にすると、自動アップデーター、フィードバックコマンド、エラー報告、テレメトリーを 1 つのスイッチで無効にします
CLAUDE_CODE_ATTRIBUTION_HEADER0 にするとシステムプロンプトから帰属ブロックを取り除き、ゲートウェイ経由でのプロンプトキャッシュのヒット率が向上します
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS1 にすると、プロキシが拒否する可能性のある anthropic-beta ヘッダーを取り除きます
CLAUDE_CODE_DISABLE_THINKINGthinking パラメーターを完全に省略します
ENABLE_TOOL_SEARCHtrue / false / auto: カスタムの ANTHROPIC_BASE_URL における MCP の遅延ツール読み込みを制御します
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACKストリーム途中の失敗時に、ツール呼び出しを非ストリーミングで再実行するのを防ぎます
DISABLE_PROMPT_CACHINGプロンプトキャッシュを無効にします(デバッグ専用。コストが上がります)

診断とパス

変数用途
DEBUG1(または true、yes、on)でデバッグモードを有効にします。--debug と同じです
CLAUDE_CODE_DEBUG_LOG_LEVEL最小ログレベル: verbose、debug、info、warn、error
CLAUDE_CONFIG_DIR設定ディレクトリを上書きします。既定は ~/.claude
CLAUDE_CODE_SIMPLE1 にすると、最小限のシステムプロンプトと Bash およびファイルツールのみで動作します

トラブルシューティング

変数が無視されているように見えます。 まず設定場所を確認してください。シェルの export は VS Code 拡張機能のパネルには見えません。claudeCode.environmentVariables は CLI には見えません。次に再起動を確認してください。環境変数はプロセスの起動時に一度だけ読み込まれます。

エンドポイントを切り替えた後に 401 や invalid api key が返ります。 ANTHROPIC_API_KEY と ANTHROPIC_AUTH_TOKEN は別々のヘッダーで送信されます。同じスコープに ANTHROPIC_API_KEY が残っていると、-p モードではそちらが優先されます。トークンで認証するときは削除してください。

プロキシ経由だとすべてのリクエストが失敗します。 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 を追加してください。Claude Code が既定で送るベータヘッダーを拒否するプロキシがあります。

長い生成でリクエストがタイムアウトします。 リトライするのではなく API_TIMEOUT_MS を引き上げてください(既定値は 10 分です)。十分に長いタイムアウトですが、大きな差分はそれを超えることがあります。

ゲートウェイを使うと /model ピッカーが空になります。 CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 を設定すると、ゲートウェイの /v1/models からピッカーが埋まります。あるいは ANTHROPIC_MODEL でモデルを明示してください。

ゲートウェイ経由だとプロンプトキャッシュのヒット率が低くなります。 CLAUDE_CODE_ATTRIBUTION_HEADER=0 を設定してください。帰属ブロックはセッションごとに変わり、キャッシュされたプレフィックスを無効にしてしまいます。

よくある質問

Claude Code は環境変数をどこから読み込みますか?

起動時のプロセス環境と、適用される settings.json ファイルの env ブロックをマージしたものです。同じ挙動を両方が定義している場合は、環境変数が優先されます。VS Code 拡張機能のパネルは別のプロセスツリーなので、代わりに claudeCode.environmentVariables が必要です。

変数を変更した後、再起動は必要ですか?

はい。Claude Code は起動時に設定を読み込みます。CLI なら claude を再起動し、拡張機能なら VS Code で Developer: Reload Window を実行してください。

ANTHROPIC_API_KEY と ANTHROPIC_AUTH_TOKEN はどちらが優先されますか?

-p モードでは ANTHROPIC_API_KEY です。また、対話型のサブスクリプションログインも上書きします。ベアラートークンで認証するゲートウェイを経由する場合は、ANTHROPIC_API_KEY を解除して曖昧さを取り除いてください。

変数を変更せずに別のモデルを使えますか?

はい。起動時の --model とセッション内の /model はどちらも ANTHROPIC_MODEL を上書きします。変数は既定値を決め、フラグはその変数を上書きします。


Claude Code、Codex、Gemini はすべて Code By AI の同じエンドポイントと同じキーで利用でき、料金は公式 API の 1/6 からです。料金比較を見る、またはチャージしてキーを取得してください。