Claude Code
Claude Code を Echo Token Station 経由で Claude のモデルにつなぐ設定と、確認されている問題です。
Claude Code は、Anthropic のコーディング用 AI ツールです。ターミナルや VS Code で動きます。Claude Code は Anthropic 形式で Echo に接続します。
動作確認:Claude Code 2.1.278(2026-09-27、Echo の検証環境)
始める前に
- Claude Code で使うのは Claude のモデルです。Anthropic は、Echo のような中継サービス(ゲートウェイ)を経由して Claude 以外のモデルを使う構成をサポートしていません。また、ゲートウェイ製品を推奨・保守・監査していません
- Echo のキーを設定している間は、claude.ai のサブスクリプションは使われません。料金は Echo の残高から差し引きます
- Echo の API キーと、使う Claude のモデルの ID を用意します。提供する Claude のモデルとその ID は、モデル一覧で確認できます
設定する
ターミナルで設定する
次の環境変数(パソコンに設定しておく名前付きの値)を設定します。sk-... は Echo の API キーに、モデル ID は使うモデルの ID に置き換えます。
export ANTHROPIC_BASE_URL="https://token.echohub.io"
export ANTHROPIC_AUTH_TOKEN="sk-..."
export ANTHROPIC_MODEL="claude-sonnet-5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5-5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-4-5"| 変数 | 意味 |
|---|---|
ANTHROPIC_BASE_URL | 接続先。/v1 は付けません。Claude Code が /v1/messages を付けます |
ANTHROPIC_AUTH_TOKEN | Echo の API キー。Authorization: Bearer ヘッダーで送られます |
ANTHROPIC_MODEL | 使うモデルの ID |
ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_SONNET_MODEL | Claude Code の中で「opus」「sonnet」を選んだときに使うモデルの ID |
ANTHROPIC_DEFAULT_HAIKU_MODEL | 「haiku」を選んだときと、裏側の処理(セッション名の作成など)に使うモデルの ID |
- モデル ID を設定しないと、Claude Code は自分の既定のモデル ID で呼び出します。その ID を Echo が提供していない場合はエラーになり、表示されるまで 1 分以上かかります(下の「確認されている問題」)
ANTHROPIC_DEFAULT_OPUS_MODELなどの 3 つにも、Echo が提供しているモデルの ID を入れます。提供していない ID を入れると、そのモデルを使う場面でエラーになりますANTHROPIC_API_KEYに別のキー(Anthropic のキーなど)が入っている場合は、削除してから設定します。Claude Code はこの変数のキーをx-api-keyヘッダーで送ります
設定ファイルに書く
毎回設定しない場合は、~/.claude/settings.json(Windows は %USERPROFILE%\.claude\settings.json)の env に書きます。
{
"env": {
"ANTHROPIC_BASE_URL": "https://token.echohub.io",
"ANTHROPIC_AUTH_TOKEN": "sk-...",
"ANTHROPIC_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5-5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
}
}シェルと設定ファイルの両方で同じ変数を設定した場合は、設定ファイルの値が使われます。
注意:プロジェクトの .claude/settings.json にはキーを書かないでください。このファイルはリポジトリに入り、ほかの人にも共有されます。
VS Code の拡張機能で使う
VS Code のユーザー設定(コマンド「Preferences: Open User Settings (JSON)」で開きます)の claudeCode.environmentVariables に書きます。拡張機能は、起動前にこの設定の認証情報を確認します。
{
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://token.echohub.io" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-..." },
{ "name": "ANTHROPIC_MODEL", "value": "claude-sonnet-5" }
]
}動作を確かめる
- 環境変数を設定したターミナルで、次のコマンドを実行します。最後の行に
200が表示され、その上に"type":"message"を含む JSON が表示されれば、接続先とキーは正しく設定されています
curl -sS -w '\n%{http_code}\n' -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": 16, "messages": [{"role": "user", "content": "こんにちは"}]}'- 同じターミナルで
claudeを起動し、/statusを実行します。接続先がhttps://token.echohub.ioになっていること、認証情報としてANTHROPIC_AUTH_TOKENが表示されていることを確認します - 何か話しかけて、エラーなく回答が返れば完了です。コンソールの「呼び出し履歴」にも記録が出ます
確認されている問題
2026-09-27 に Echo の検証環境で確認した動作です。
| 状況 | Claude Code での見え方 | 対処 |
|---|---|---|
| 残高が足りない | Failed to authenticate. API Error: 403 Insufficient balance と表示されます。「認証に失敗」と出ますが、原因はキーではなく残高です | チャージする |
| キーの誤り(401)、モデル ID の誤り(503)、混雑(429・529) | エラーを表示する前に再試行を続けます。検証では、60 秒以上何も表示されないまま待つことがありました | 原因を早く確かめるときは、上の curl で HTTP ステータスとエラー本文を確認する。再試行の回数は環境変数 CLAUDE_CODE_MAX_RETRIES(既定 10 回)で減らせます |
| 回答の途中で、経由先の API がエラーを返した、または接続が切れた | エラーを表示せずに、その回の回答が途中で終わる、または空になることがあります | 同じ指示をもう一度送る。修正予定:[ ] |
トークン数を数える API(/v1/messages/count_tokens)を使う場面 | Echo はこの API に対応していないため、Claude Code は文字数からの概算に切り替えます。/context の表示は概算になります | 対処は不要です。料金の計算には影響しません |
経由先の API がエラーを返す状況と、エラー本文の一覧はエラーと対処にあります。
うまくいかないとき
| 症状 | 原因 | 対処 |
|---|---|---|
| 起動するとログイン画面が出る | Claude Code が Echo のキーを読み込んでいない | ANTHROPIC_AUTH_TOKEN を、シェルか ~/.claude/settings.json の env に設定する |
| 起動時に、認証情報が 2 つあるという警告が出る | claude.ai のログインと Echo のキーの両方が有効 | /logout で claude.ai のログインを消す |
| 回答が返らないまま長く待ったあと、401 のエラーが出る | キーが違う、停止している、有効期限切れ、または利用上限を使い切った | コンソールでキーの状態と利用上限を確認する |
404 と Invalid URL (POST /v1/v1/messages) | ANTHROPIC_BASE_URL に /v1 を付けている | https://token.echohub.io に直す |
Failed to authenticate. API Error: 403 Insufficient balance | 残高が足りない | チャージする |
403 と This API key has reached its spending limit | キーの残りの利用上限が足りない | 上限とレート制限を見る |
回答が返らないまま長く待ったあと、503 と The model … does not exist or is not available が出る | モデル ID が違う、または Echo が提供していないモデル | ANTHROPIC_MODEL などのモデル ID を確認する |
400 で context_management や Extra inputs are not permitted などが出る | 経由先の API が、Claude Code の試験的な機能のパラメータを受け付けない | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 を設定する |
Claude Code は、リクエストに端末とセッションを区別する ID を付けて送ります。Echo はこの値を変えずに経由先の Anthropic に渡します。詳しくはデータの取り扱いにあります。
確認した情報源
| 内容 | 情報源 | 確認日 |
|---|---|---|
接続先とモデルの環境変数での接続、残高不足・再試行・回答の途中で止まったときの見え方、/v1 を付けたときの 404 | Echo の検証環境での実測(Claude Code 2.1.278)。本番と同じ中継設定で、経由先の API の代わりに試験用の応答を返すサーバーを使いました | 2026-09-27 |
接続先とキーの環境変数、ANTHROPIC_API_KEY が x-api-key で送られること、設定ファイルの優先順位、VS Code の設定、確認用の curl と /status、エラーの対処表 | https://code.claude.com/docs/en/llm-gateway-connect | 2026-09-27 |
| Claude 以外のモデルはサポート外、ゲートウェイ製品を推奨・保守・監査していないこと、サブスクリプションが使われなくなること | https://code.claude.com/docs/en/llm-gateway | 2026-09-27 |
/v1/messages/count_tokens がない場合は文字数から概算すること | https://code.claude.com/docs/en/llm-gateway-protocol | 2026-09-27 |
再試行の回数と CLAUDE_CODE_MAX_RETRIES | https://code.claude.com/docs/en/errors | 2026-09-27 |