Claude Codeのsettings.jsonと環境変数:Base URL、認証トークン、モデル

AIHubMix約 7 分で読めます
Claude Codeのsettings.jsonと環境変数:Base URL、認証トークン、モデル

Claude Codeは、JSON設定ファイルと環境変数から設定を読み込みます。AnthropicのAPIではなくゲートウェイ経由で実行するには、ANTHROPIC_BASE_URLとトークンの2つの変数が必要で、通常はモデルも指定します。変数自体はシンプルです。混乱しやすいのは、同じ変数をシェルの設定ファイルや複数のsettings.jsonファイル、VS Codeの設定など、どこにでも置けることです。

このガイドでは、まず動作する設定例を紹介し、次にファイルの場所やどの値が優先されるのか、よくあるエラーについて説明します。Anthropicのドキュメントと照らし合わせ、2026年10月20日にClaude Code 2.1.304でAIHubMixを使って動作確認しました。例ではAIHubMixをゲートウェイとして使っていますが、Anthropic互換のエンドポイントなら同じ方法で設定できます。

要点

  • 個人用の設定ファイルは~/.claude/settings.jsonです。Windowsでは%USERPROFILE%\.claude\settings.jsonです。
  • ゲートウェイを使う場合は、/v1を付けずにANTHROPIC_BASE_URLを指定し、envブロックにANTHROPIC_AUTH_TOKENを設定します。
  • 設定ファイルのenvブロックにある値は、シェルでエクスポートされた同じ変数より優先されます。
  • トークンを設定すると、リクエストはClaudeサブスクリプションを使わなくなり、ゲートウェイ経由で課金されます。
  • VS Code拡張機能でも、独自のclaudeCode.environmentVariables設定に同じ変数を指定する必要があります。

AIHubMixで動作する設定

  1. AIHubMixコンソールでキーを作成します。
  2. ~/.claude/settings.jsonに次の内容を記述します。ファイルがない場合は作成してください。
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "env": {
    "ANTHROPIC_BASE_URL": "https://aihubmix.com",
    "ANTHROPIC_AUTH_TOKEN": "sk-your-aihubmix-key"
  },
  "model": "claude-sonnet-5-5"
}
  1. 簡単なテストを実行します。
claude -p "1+1, output only the answer"
  1. プロジェクト内でclaudeを起動します。ロゴの下のヘッダーにSonnet 5.5 · API Usage Billingのように表示され、/statusのAnthropic base URLの行にゲートウェイが表示されていればOKです。

重要な点が2つあります。Base URLにはルートアドレスを指定します。Claude Codeが/v1/messagesを自動で付けるため、URLの末尾に/v1を付けると、すべてのリクエストが失敗します。また、AIHubMixではclaude-sonnet-5-5などAnthropic独自のモデルIDを使うため、sonnet、opus、haikuのショートカットも追加設定なしで使えます。

$schemaの行は省略可能です。指定すると、VS CodeやCursorなどのエディターが入力中にファイルの誤りを検出できます。

代わりにシェルで同じ2つの変数をエクスポートすることもできますが、設定ファイルに置くのがおすすめです。すべてのターミナルやIDE拡張機能、バックグラウンドエージェントから読み込めるためです。

設定ファイルの場所

スコープ ファイル 適用対象
ユーザー ~/.claude/settings.json すべてのプロジェクトにおける自分の設定
プロジェクト .claude/settings.json git経由でリポジトリ内の全員に共有
ローカル .claude/settings.local.json このリポジトリ内で自分だけに適用
管理対象 組織によって設定 配布先の全員

プロジェクトの.claude/settings.jsonにはトークンを絶対に記述しないでください。このファイルはgitにコミットされます。ユーザー設定ファイルか.claude/settings.local.jsonを使ってください。

設定ファイルは有効なJSONでなければなりません。//コメントや末尾のカンマがあると、Claude Codeはトークンを含め、ファイル全体を読み込みません。その場合、ゲートウェイではなくログイン画面が表示されます。

ホームフォルダーにある単一ファイル~/.claude.jsonと混同しないでください。このファイルにはログイン情報やMCPサーバーなど、Claude Code自体の状態が保存されます。編集が必要になることはほとんどありません。

どの値が優先されるか

複数のファイルで同じ項目が設定されている場合は、Anthropicの設定の優先順位に従い、上から順に優先されます。

  1. 組織が管理する設定
  2. コマンドラインの--settings(そのセッションのみ)
  3. .claude/settings.local.json
  4. .claude/settings.json
  5. ~/.claude/settings.json

環境変数には、もう1つルールがあります。設定ファイルのenvブロックにある変数は、シェル内の同じ変数を上書きします。そのため、設定ファイルでも値を指定している場合、~/.zshrcのexport ANTHROPIC_BASE_URL=...は効果がありません。プロバイダー切り替えツールは通常~/.claude/settings.jsonに書き込むため、シェルの設定より優先されます。

Claude Code内で/statusを実行すると、Setting sourcesの行に読み込まれたファイルが表示されます。

ANTHROPIC_AUTH_TOKENとANTHROPIC_API_KEY

変数 送信形式 備考
ANTHROPIC_AUTH_TOKEN Authorization: Bearer そのまま使用
ANTHROPIC_API_KEY x-api-key 初回のみ承認を求められる

ゲートウェイが読み取る方を使ってください。AIHubMixはどちらも受け付けますが、Claude CodeガイドではANTHROPIC_AUTH_TOKENを使っており、こちらの方がシンプルです。両方を設定したままにしないでください。Claude Codeが両方のヘッダーを送信し、AIHubMixはx-api-keyを先に確認します。テストでは、settings.jsonに正しいトークンを設定していても、シェルで古いANTHROPIC_API_KEYがエクスポートされていたため、401エラーになりました。envブロックが上書きするのは、そこに設定された変数だけです。切り替える際は、シェルの設定ファイルから古いキーを削除してください。

Claudeのサブスクリプションはどうなるのでしょうか。Anthropicのゲートウェイガイドによると、トークンまたはAPIキーの変数を設定すると、リクエストではclaude.aiのログイン情報ではなくその値が使われ、ゲートウェイでトークン単位の課金が行われます。ログイン情報は保存されたままなので、変数を削除すれば再び使われます。トークンを設定せずANTHROPIC_BASE_URLだけを指定した場合は、引き続きサブスクリプションが使われます。

モデルの選択

Anthropicのモデル設定ページには、優先順位が上から順に次のように記載されています。

  1. セッション中の/model <name>
  2. 起動時のclaude --model <name>
  3. ANTHROPIC_MODEL変数
  4. 設定ファイルのmodelキー

/modelを実行すると、選んだモデルが新しいデフォルトとして保存されます。ただしANTHROPIC_MODELが設定されていると、新しいセッションは毎回そのモデルで開始されます。モデルを頻繁に切り替える場合は、modelキーを設定し、ANTHROPIC_MODELは設定しないでください。どこにもモデルが設定されていない場合、Claude CodeはOpus 5.5を使用します。

ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_HAIKU_MODELを使うと、各ショートカットが使用するモデルを変更できます。ショートカットの参照先を変えたい場合にのみ必要です。たとえば、sonnetを古いバージョンに固定できます。

AIHubMixでは同じアドレスで他社のモデルも提供していますが、AnthropicはClaude以外のモデルでのClaude Codeの使用をサポートしていないため、一部の機能が動作しない可能性があります。

変更が反映されるタイミング

Claude Codeは設定ファイルを監視しており、envブロックを含む保存済みの変更のほとんどは、実行中のセッションに反映されます。modelキーや削除した変数、シェルでのエクスポートは、再起動が必要です。判断に迷ったら、Claude Codeを再起動してください。

VS Code拡張機能

拡張機能は同じ設定ファイルを読み込みますが、起動時には独自のclaudeCode.environmentVariables設定を使ってログインの有無を確認します。そのため、CLIが動作していてもVS Codeではサインインを求められることがあります。コマンドパレットからPreferences: Open User Settings (JSON)を開き、次を追加してください。

{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://aihubmix.com" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-your-aihubmix-key" }
  ]
}

次にDeveloper: Reload Windowを実行します。その他の設定についてはAnthropicのVS Codeドキュメントを参照してください。Claude Desktopアプリは別のアプリで、settings.jsonもこれらの変数も読み込みません。

その他の便利な変数

変数 設定するタイミング
API_TIMEOUT_MS 長時間のリクエストがタイムアウトする場合(デフォルトは10分)
CLAUDE_CODE_MAX_RETRIES エラーをより早く表示したい場合
HTTPS_PROXY HTTPプロキシを経由する場合
NODE_EXTRA_CA_CERTS プロキシが独自のルート証明書を使用している場合

いずれもenvブロックに記述できます。すべての項目については、Anthropicの環境変数リファレンスを参照してください。

よくあるエラーとその意味

Not logged in · Please run /login、または初回起動時のログイン画面
Claude Codeがトークンを見つけられませんでした。JSONの誤りでファイルの読み込みがスキップされた、ANTHROPIC_AUTH_TOKENが設定されていない、トークンがプロジェクトファイルにしかない、の3点を確認してください。ログイン処理はプロジェクト設定の読み込みより先に実行されるため、トークンを~/.claude/settings.jsonに移してください。

Invalid or malformed JSON
メッセージに表示されたファイルに、コメントや末尾のカンマ、その他の構文エラーがあります。そのファイルの設定はすべて適用されていません。

There's an issue with the selected model (...)
モデルIDが間違っているか、Base URLの末尾に/v1が付いているため、リクエストの送信先が/v1/v1/messagesになっています。モデルIDが正しそうな場合は、まずURLを確認してください。

API Error: 400とThis model ID is incorrect
AIHubMixにそのIDのモデルがありません。メッセージには受け取ったIDがそのまま表示されます。通常は入力ミスです。AIHubMixのモデル一覧からIDをコピーし直してください。

Failed to authenticate. API Error: 401 invalid key: ...
AIHubMixがキーを受け付けていません。メッセージの末尾には受信したキーの最後の6文字が表示されるため、トークンの末尾と照合してください。PI_KEYと表示されている場合は、実際のキーではなくプレースホルダーAIHUBMIX_API_KEYを貼り付けています。それ以外の場合は、シェルから古いANTHROPIC_API_KEYが送信されている可能性があります。代わりにthis key is not enabledと表示される場合は、AIHubMixコンソールでキーが有効になっており、クレジットがあることを確認してください。

auth may not work as expected
トークン変数と保存済みのclaude.aiログイン情報が両方とも有効です。ゲートウェイを使い続けるには/logoutを実行し、サブスクリプションに戻るには変数を削除してください。

Claude Code doesn't recognize the model ...
これは警告であり、エラーではありません。リクエストは送信されますが、Claude Codeはコンテキストウィンドウを200Kトークンとみなします。新しいClaudeモデルのIDであれば、claude updateを実行すると解消します。

キーが無効だと応答が止まったように見える
Claude Codeは、失敗したリクエストを最大10回再試行します。常に失敗するキーを使ったテストでは、claude -pは約3分間再試行を続けました。エラーを早く確認するにはCLAUDE_CODE_MAX_RETRIESの値を下げてください。

Claude CodeではClaude用に、ほかのツールではOpenAI、Googleなどの各社用に、同じ1つのキーを使いたい場合、AIHubMixではAnthropic APIをhttps://aihubmix.comで提供しています。Claude Codeに必要なのは、上記の設定ファイルだけです。

よくある質問

Claude Codeのsettings.jsonはどこにありますか?
個人用ファイルは~/.claude/settings.jsonです。Windowsでは%USERPROFILE%.claude\settings.jsonです。プロジェクトにはgitで共有する.claude/settings.jsonと、自分だけが使う.claude/settings.local.jsonも置けます。Claude Codeはインストール時にこれらのファイルを作成しません。

settings.json は環境変数を上書きしますか?
はい。設定ファイルの env ブロックに指定した値は、シェルでエクスポートした同じ変数を上書きします。古い ANTHROPIC_API_KEY など、ファイルで設定されていない変数は、引き続きシェルから読み込まれます。

ANTHROPIC_AUTH_TOKEN と ANTHROPIC_API_KEY のどちらを使うべきですか?
ゲートウェイが読み取るほうを使ってください。ANTHROPIC_AUTH_TOKEN は Bearer トークンを送信し、承認は不要です。AIHubMix では、ドキュメントに記載されている ANTHROPIC_AUTH_TOKEN を使用してください。両方は設定しないでください。AIHubMix は x-api-key を優先して読み取るため、古い ANTHROPIC_API_KEY が残っていると 401 エラーになります。

ANTHROPIC_BASE_URL の末尾に /v1 を付ける必要がありますか?
いいえ。Claude Code が /v1/messages を自動的に追加します。AIHubMix の場合は https://aihubmix.com を使用してください。

settings.json を編集した後、Claude Code を再起動する必要がありますか?
env の変更を含むほとんどの編集は、保存すると反映されます。モデルキーとシェルのエクスポート設定には再起動が必要です。確実なのは再起動することです。

CLI では使えるのに、VS Code でサインインを求められるのはなぜですか?
拡張機能は起動前に、claudeCode.environmentVariables 設定を使ってログイン状態を確認します。~/.claude/settings.json の値はこの確認に反映されません。そこでベース URL とトークンを追加し、ウィンドウを再読み込みしてください。

ANTHROPIC_BASE_URL を設定すると、Claude のサブスクリプションが使われますか?
トークンが設定されていない場合に限り、使われます。ANTHROPIC_AUTH_TOKEN または ANTHROPIC_API_KEY が設定されている場合、リクエストにはそのキーが使われ、ゲートウェイからトークン単位で課金されます。

出典