Claude Code の base URL:ANTHROPIC_BASE_URL の正しい設定方法

Wokey Team · 2026-09-24

結論: Claude Code の base URL は環境変数 ANTHROPIC_BASE_URL で設定します。ゲートウェイのオリジンだけを /v1 なしで指定してください。Wokey なら https://api.wokey.ai で、/v1/messages は Claude Code が自分で付け加えます。キーは ANTHROPIC_AUTH_TOKEN に入れます。これは Authorization: Bearer として送信されます。base URL だけを設定してキーを設定しないと、Claude Code は保存済みの claude.ai ログインを使い続けます。

最小構成

export ANTHROPIC_BASE_URL="https://api.wokey.ai"
export ANTHROPIC_AUTH_TOKEN="your Wokey API key"
claude

Claude Code の中で /status を実行します。Status タブに次の表示があれば、リクエストは Wokey を経由しています。

  • Anthropic base URL が https://api.wokey.ai になっている
  • ANTHROPIC_AUTH_TOKEN を示す Auth token の行がある

Anthropic base URL の行がない場合、変数はセッションに届いていません。

/v1 を付けると動かない理由

Claude Code は ANTHROPIC_BASE_URL をプレフィックスとして扱い、$ANTHROPIC_BASE_URL/v1/messages にリクエストします。https://api.wokey.ai/v1 に設定するとリクエストは /v1/v1/messages に送られ、Wokey は次のように応答します。

{"message":"Route POST:/v1/v1/messages not found","error":"Not Found","statusCode":404}

Cursor や Cherry Studio などの OpenAI 互換クライアントは慣例として .../v1 を受け取ります。Claude Code は Anthropic の慣例に従っており、両者は混在できません。/v1/messages や末尾のスラッシュも付けないでください。

AUTH_TOKEN と API_KEY

変数 送信形式 使う場面
ANTHROPIC_AUTH_TOKEN Authorization: Bearer <key> ゲートウェイが Bearer トークンを求める場合、または迷った場合
ANTHROPIC_API_KEY x-api-key: <key> ゲートウェイが x-api-key ヘッダーを求める場合

Wokey はどちらのヘッダーも受け付けます。違いは Claude Code 側にあります。

  • ANTHROPIC_AUTH_TOKEN はすぐに有効になります。
  • ANTHROPIC_API_KEY は、対話モードで一度だけ承認を求めてから有効になります。以前に拒否したキーは黙って無視されます。

両方に異なる値を設定しないでください。 2 つのヘッダーが異なるキーを持つと、Wokey はリクエストを拒否します。

{"error":{"code":"conflicting_api_key_headers","message":"conflicting_api_key_headers","type":"invalid_request_error"}}

両方のヘッダーに同じキーが入っている場合は問題ありません。

base URL だけを設定した場合

base URL は認証情報ではありません。ANTHROPIC_BASE_URL だけを設定し、AUTH_TOKEN も API_KEY もない場合、Claude Code は保存済みの claude.ai ログインでリクエストを送ります。Wokey はそれを Wokey のキーとして認識せず、401 を返します。

ゲートウェイの認証情報を設定すると、claude.ai ログインは保存されたまま使われなくなります。元に戻すには変数を unset してください。

起動時に auth may not work as expected で終わる警告が表示されることがあります。古いバージョンでは代わりに Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set と表示されます。どちらも、ゲートウェイの認証情報と保存済みのログインが両方存在することを意味します。ゲートウェイだけを使うには、Claude Code の中で /logout を実行して保存済みのログインを消してください。

settings.json で恒久的に設定する

export は現在のターミナルでしか有効ではなく、Dock やスタートメニューから起動したエディタはそれを参照できません。日常的に使うなら、~/.claude/settings.json の env ブロックに値を書いてください。

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.wokey.ai",
    "ANTHROPIC_AUTH_TOKEN": "your Wokey API key"
  }
}
  • シェルと設定ファイルが同じ変数を設定している場合、設定ファイルが優先されます。シェル変数を変えても効果がないように見えるときは、まずここを確認してください。
  • 特定のプロジェクトだけで使うなら、そのプロジェクトの .claude/settings.local.json を使い、gitignore されていることを確認してください。
  • キーをプロジェクトの .claude/settings.json には絶対に書かないでください。 このファイルはリポジトリにコミットされます。

モデルの選択

Wokey は claude-opus-5、claude-sonnet-5、claude-haiku-4-5 など、Anthropic と同じ Claude のモデル ID を使います。セッション中は /model で切り替えられます。Claude Code の Opus、Sonnet、Haiku の各ティアがどのモデルを使うかを固定するには、env に次を追加します。

{
  "env": {
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
  }
}

ANTHROPIC_DEFAULT_HAIKU_MODEL は、セッションタイトルの生成などのバックグラウンドタスクに使うモデルも決めます。

VS Code 拡張機能とデスクトップアプリ

VS Code 拡張機能は、ログインチェックにシェル変数を使いません。代わりに VS Code 自体のユーザー設定で指定します。コマンドパレットから Preferences: Open User Settings (JSON) を実行し、次を追加してください。

{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://api.wokey.ai" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "your Wokey API key" }
  ]
}

~/.claude/settings.json の値は拡張機能が起動するプロセスには届きますが、拡張機能自身のログインチェックには届きません。拡張機能が何度もログインを求めてくる場合は、上の設定を使ってください。

Claude デスクトップアプリは、ANTHROPIC_BASE_URL も settings.json も読みません。ゲートウェイを設定するには次の手順に従います。

  1. Help → Troubleshooting → Enable Developer Mode を開きます。
  2. Developer → Configure Third-Party Inference を開き、ゲートウェイのアドレスを入力します。

詳しい手順は Claude Desktop 設定ガイドをご覧ください。

まず curl で確認する

同じターミナルから、Claude Code を介さずにテストします。

curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":1,"messages":[{"role":"user","content":"."}]}'

レスポンスからわかること:

  • {"id":"msg_ で始まる: URL とキーは正常です。問題は Claude Code の設定にあります。
  • コード invalid_api_key の 401: キーがない、打ち間違えている、または削除されています。
  • /v1/v1/messages を含む 404: base URL に余分な /v1 が付いています。
  • curl は動くのに Claude Code がまだログインを求める: Claude Code 自身に認証情報がありません。claude を起動したのと同じターミナルで変数を設定したか確認するか、変数を ~/.claude/settings.json に移してください。

よくある質問

ANTHROPIC_BASE_URL に /v1 は必要ですか?

いいえ。Claude Code は base URL の後ろに /v1/messages を付け加えるため、https://api.wokey.ai/v1 だと /v1/v1/messages にリクエストして 404 になります。Wokey では https://api.wokey.ai を指定してください。

ANTHROPIC_AUTH_TOKEN と ANTHROPIC_API_KEY のどちらを使うべきですか?

ANTHROPIC_AUTH_TOKEN は Authorization: Bearer として送信され、すぐに有効になります。ANTHROPIC_API_KEY は x-api-key として送信され、対話モードでは一度だけ承認が必要です。Wokey はどちらも受け付けますが、ANTHROPIC_AUTH_TOKEN をおすすめします。両方に異なる値を設定すると 401 conflicting_api_key_headers になります。

base URL だけを設定しました。なぜまだ Claude のサブスクリプションが使われるのですか?

base URL は認証情報ではありません。ANTHROPIC_AUTH_TOKEN も ANTHROPIC_API_KEY もない場合、Claude Code は保存済みの claude.ai ログインを使い続けます。ゲートウェイのキーを追加し、保存済みのログインを消したい場合は /logout を実行してください。

環境変数を変更したのに何も変わらないのはなぜですか?

~/.claude/settings.json の env ブロックはシェル変数より優先されます。そこに古い値が残っていないか確認し、/status を実行して現在の base URL と認証情報の取得元を確認してください。

VS Code 拡張機能で base URL を設定するには?

VS Code のユーザー設定 JSON で、claudeCode.environmentVariables に ANTHROPIC_BASE_URL と ANTHROPIC_AUTH_TOKEN を追加してください。拡張機能のログインチェックは ~/.claude/settings.json を読みません。