この記事は AIHubMix が作成しました。内容は2026年10月20日に、Claude Code 2.1.304 から AIHubMix の実際のキーでリクエストを送って確認したものです。
Claude Code は、同じ環境変数をシェル、最大4つの settings ファイル、VS Code の設定のどこからでも読み込みます。ある場所でゲートウェイを指定しても、別の場所に古い値が残っていると、ログイン画面が出たり、モデルのエラーになったり、貼り付けたばかりのキーと合わない 401 が返ってきたりします。
この記事では、動く settings.json、競合する値を Claude Code がどう選ぶか、そして設定がおかしいときに表示される正確なメッセージをまとめます。例では AIHubMix をゲートウェイとして使いますが、Anthropic 互換のゲートウェイなら設定方法は同じです。
TL;DR
- 設定ファイルは
~/.claude/settings.json(Windows では%USERPROFILE%\.claude\settings.json)。そのenvブロックにANTHROPIC_BASE_URLとANTHROPIC_AUTH_TOKENを書きます。 - base URL はルートのアドレス(
https://aihubmix.com)です。/v1/messagesは Claude Code が自分で付けます。 - settings の
envに書いた値は、シェルで export した同名の変数を上書きします。ファイルに書いていない変数は、シェルの値がそのまま使われます。 -
ANTHROPIC_AUTH_TOKENとANTHROPIC_API_KEYを両方設定しないでください。ヘッダーが2つとも送られ、AIHubMix はx-api-keyを先に読みます。 - VS Code では、
claudeCode.environmentVariablesにも同じ2つの変数を設定する必要があります。
前提
- Claude Code がインストール済み。この記事は 2.1.304 で確認しています。
- ゲートウェイのキー。AIHubMix の場合は AIHubMix コンソール で発行します。
設定
{
"$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"
}
$schema の行はなくてもかまいません。書いておくと、VS Code や Cursor などのエディタが入力ミスを指摘してくれます。AIHubMix は Anthropic 公式のモデル ID(たとえば claude-sonnet-5-5)をそのまま使っているので、sonnet、opus、haiku のエイリアスは追加の変数なしで使えます。
動作確認
claude -p "1+1, output only the answer"
2 と表示されれば成功です。次にプロジェクトで claude を起動します。ロゴの下に Sonnet 5.5 · API Usage Billing のような表示が出て、/status には次の行が表示されます。
Auth token: ANTHROPIC_AUTH_TOKEN
Anthropic base URL: https://aihubmix.com
Model: claude-sonnet-5-5
Setting sources: User settings
Setting sources には、読み込まれた settings ファイルがすべて表示されます。存在を忘れていたファイルを見つけるには、ここを見るのがいちばん早い方法です。
どの値が優先されるか
settings ファイルの優先順位は、Anthropic の設定の優先順位によると、高い順に次のとおりです。
- 組織が配布する管理設定(managed settings)
- コマンドラインの
--settings(そのセッションだけ) -
.claude/settings.local.json(自分用、このリポジトリだけ) -
.claude/settings.json(git で共有されるので、トークンは絶対に書かない) ~/.claude/settings.json
環境変数には、もう1つルールがあります。どのファイルでも、env ブロックに書いた変数はシェルの値を上書きします。AIHubMix に対するテストで、このルールがどこまで効くかが分かりました。
| 設定 | 結果 |
|---|---|
| settings のトークンは正しく、シェルの base URL とトークンは間違い | 動く(settings の値が優先) |
| settings のトークンは正しく、シェルに間違った古い ANTHROPIC_API_KEY が残っている | 401。古いキーの末尾6文字が表示される |
| settings のトークンは間違いで、シェルの ANTHROPIC_API_KEY は正しい | 動く |
| シェルの ANTHROPIC_MODEL は Haiku、settings の model は Sonnet | Haiku が使われる |
落とし穴は真ん中の2行です。settings ファイルには ANTHROPIC_API_KEY が書かれていないので、シェルの値がそのまま残ります。Claude Code はそれをトークンと一緒に送り、AIHubMix はそちらを使いました。
AUTH_TOKEN と API_KEY
| 変数 | 送られ方 | 備考 |
|---|---|---|
| ANTHROPIC_AUTH_TOKEN | Authorization: Bearer | すぐに使われる |
| ANTHROPIC_API_KEY | x-api-key | 対話モードでは最初に1回承認を求められる |
AIHubMix はどちらも受け付けます。AIHubMix の Claude Code ガイド では ANTHROPIC_AUTH_TOKEN を使っています。どちらか一方に決めて、もう一方はシェルの設定ファイルから削除してください。
どちらかの変数を設定すると、リクエストには claude.ai のログインが使われなくなり、ゲートウェイがトークン単位で課金します。Anthropic のゲートウェイ接続ガイドに書かれているとおりです。ログイン情報は保存されたままです。認証情報なしで ANTHROPIC_BASE_URL だけを設定した場合は、サブスクリプションが使われ続けます。
モデルの選び方
Anthropic のモデル設定のページによると、優先順位は高い順に次のとおりです。
- セッション中の
/model <名前> claude --model <名前>ANTHROPIC_MODEL-
modelキー
/model は選んだモデルを新しいデフォルトとして保存しますが、ANTHROPIC_MODEL が設定されていると、新しいセッションは毎回そちらに戻ります。model キーを使うのがおすすめです。何も設定していなければ、Claude Code は Opus 5.5 を使います。ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_HAIKU_MODEL は、エイリアスが送るモデルを差し替えるだけの変数です。
実際にどのモデルが使われたかは、claude -p "..." --output-format json の出力の modelUsage で確認できます。
なお、ゲートウェイが同じアドレスで Claude 以外のモデルを提供していても、Anthropic は Claude Code で Claude 以外のモデルを使うことをサポートしていません。
変更が反映されるタイミング
Claude Code は settings ファイルを監視していて、保存した変更のほとんど(env を含む)は実行中のセッションに反映されます。model キー、削除した変数、シェルの export は再起動が必要です。
VS Code
拡張機能は起動前に、自身の claudeCode.environmentVariables 設定を使ってログイン状態を確認します。そのため ~/.claude/settings.json だけでは、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 デスクトップアプリは、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 に認証情報が届いていません。変数がない、ファイルが読み飛ばされた(次の項目)、トークンがプロジェクトのファイルにしかない、のどれかです。ログインの確認はプロジェクトの設定を読む前に行われるので、新しくインストールした環境でトークンが .claude/settings.local.json にしかないと、Select login method: の画面になります。トークンは ~/.claude/settings.json に移してください。
settings ファイルが「Invalid or malformed JSON」で読み込まれない
These settings files did not load ... Invalid or malformed JSON
メッセージに出ているファイルに、// のコメントや末尾のカンマがあります。そのファイルの設定は、トークンも含めて何も反映されません。
「There's an issue with the selected model」と表示される
モデル ID が正しいなら、ほぼ確実に base URL の末尾に /v1 が付いています。リクエストが /v1/v1/messages に送られてしまうので、/v1 を削除してください。
400「This model ID is incorrect」が返ってくる
API Error: 400 The model ID you entered is: ... This model ID is incorrect
AIHubMix にその ID のモデルはありません。メッセージには、AIHubMix が受け取った ID がそのまま表示されます。AIHubMix のモデル一覧から ID をコピーし直してください。
401「invalid key」の6文字が自分のキーと合わない
Failed to authenticate. API Error: 401 invalid key: XXXXXX
6文字は、AIHubMix が受け取ったキーの末尾です。PI_KEY なら、プレースホルダーの AIHUBMIX_API_KEY が貼り付けられています。自分のトークンの末尾と違う文字なら、別のキーが送られています。たいていは古い ANTHROPIC_API_KEY です。メッセージが this key is not enabled の場合は、コンソールでキーの状態と残高を確認してください。
「auth may not work as expected」と表示される
トークンの変数と、保存された claude.ai のログインの両方が有効になっています。ゲートウェイを使い続けるなら /logout を実行し、サブスクリプションに戻すなら変数を削除します。
「Claude Code doesn't recognize the model」と表示される
エラーではなく警告です。リクエストは送られますが、Claude Code はコンテキストウィンドウを20万トークンとみなします。新しい Claude モデルなら、claude update で表示されなくなります。
キーが間違っていると、止まったように見える
Claude Code は失敗したリクエストを最大10回再試行します。間違ったキーでは、claude -p が 401 を表示するまでに190秒かかりました。デバッグ中は CLAUDE_CODE_MAX_RETRIES=0 にしておくと、数秒でエラーが返ってきます。
検証していないこと
- VS Code 拡張機能とデスクトップアプリの節は Anthropic のドキュメントに基づくもので、どちらもテストしていません。編集後にウィンドウを再読み込みするのは提案で、ドキュメントに書かれた手順ではありません。
-
this key is not enabledとauth may not work as expectedは再現していません。 - テストは主に使い捨ての
HOMEでclaude -pを使い、AIHubMix のキー1つで行いました。
まとめ
- ゲートウェイの設定は
~/.claude/settings.jsonのenvブロックに書く - base URL はルートのアドレスにし、
/v1は付けない -
ANTHROPIC_AUTH_TOKENとANTHROPIC_API_KEYはどちらか一方だけにし、シェルに残った古いキーは削除する - 値がどこから来ているかは、
/statusのAuth tokenとSetting sourcesで確認する - 401 の6文字は実際に送られたキーの末尾なので、自分のキーと見比べる
Claude は Claude Code から、OpenAI や Google などのモデルはほかのツールから、1つのキーで使いたい場合、AIHubMix は https://aihubmix.com で Anthropic API を提供しています。Claude Code に必要なのは、上の settings ファイルだけです。
参考
- 設定ファイルと優先順位(Anthropic)
- 環境変数(Anthropic)
- Claude Code を LLM ゲートウェイに接続する(Anthropic)
- モデル設定(Anthropic)
- Claude Code × AIHubMix 設定ガイド(AIHubMix)