Claude Code Routerを検索する人の多くは、異なる2つの目的のどちらかを求めています。Claude Codeを複数のモデルプロバイダー間でルーティングすること、またはAnthropicの定価より安い場所でClaude Codeを実行することです。ルーターが必要なのは前者だけです。Claude Codeは ANTHROPIC_BASE_URL をネイティブに読み取るため、後者なら環境変数を3つ設定するだけで、追加ソフトウェアは一切不要です。
このガイドでは両方の経路を扱い、正確な変数名、サイレントな 401 を発生させる資格情報の落とし穴、そして任意のゲートウェイ経由で動作しなくなる機能を正直に一覧します。最近別のCCR解説を読んだ場合は、まずOption Bに進んでください。そこで編集するよう案内されている config.json は、現在ルーターが読み取る設定ではありません。
実際に必要なのはどちらですか?
| 目的 | 用途 |
|---|---|
| Claude CodeでClaudeをより安く実行する | ベースURLの切り替え — インストール不要 |
| タスクごとに異なるモデル(計画 / コード / バックグラウンド) | どちらでも可 — ANTHROPIC_DEFAULT_*変数、またはルーター |
| 1つのClaude Codeの背後で複数のプロバイダーを組み合わせる | claude-code-router |
| Claude以外のモデルでClaude Codeを動かす | claude-code-router |
| リクエストごとのログ:プロバイダー、モデル、レイテンシ、トークン、コスト | claude-code-router |
| メインループとは異なるモデルにサブエージェントを割り当てる | claude-code-router — ティア変数ではそこまで分割できません |
ルーターはローカルサービスです。もう1つプロセスを実行、設定、最新状態に維持する必要があり、2026年時点では編集するファイルではなく、独自のUIを備えたデスクトップアプリでもあります。複数プロバイダー間のルーティング、リクエストごとの会計、またはサブエージェント単位のモデル選択が本当に必要な場合、そのコストに見合います。ベースURLだけで済む場合には見合いません。
Option A — ベースURLの切り替え(インストール不要)
KunavoはネイティブのAnthropic Messages APIを /v1/messages で提供しており、これがClaude Codeの呼び出すエンドポイントです。そこを指定します。
export ANTHROPIC_BASE_URL=https://api.kunavo.com
export ANTHROPIC_AUTH_TOKEN=sk-kn-... # create at kunavo.com/app/keys
export ANTHROPIC_MODEL=claude-sonnet-5 # exact slug — see the table below
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5 # the opus alias and plan mode (v2.1.280+)
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5 # the sonnet alias; Sonnet 5.5 is not on Kunavo
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5 # background tasksANTHROPIC_BASE_URLはOriginのみです。Claude Codeが/v1/messagesを自動的に付加するため、パスを含めないでください。モデル行も維持してください。Claude Codeに組み込まれたデフォルトとそのopusエイリアスは、どちらも最新のOpusに解決されます。Kunavoがそのモデルをまだ提供していない場合、最初のリクエストは404を返します。sonnetエイリアスはKunavoが提供していないSonnet 5.5を要求するため、ANTHROPIC_DEFAULT_SONNET_MODELの行がないと、/model sonnet、opusplanの実行フェーズ、model: sonnetに設定されたすべてのサブエージェントが404になります。opusエイリアスはOpus 5.5(claude-opus-5-5)に固定されており、Claude Code v2.1.280以降が必要です。古い場合はclaude updateを実行してください。登録して$10をチャージした後、ダッシュボードからキーを取得します。キーは一度だけ表示されます。
どの資格情報変数を使うべきか — そして重要な理由
Claude Codeは2つの資格情報変数を異なるHTTPヘッダーで送信します。サーバーが読み取らないヘッダーにキーを入れると、401で失敗します。
| 変数 | 送信されるヘッダー | Kunavoでの状況 |
|---|---|---|
ANTHROPIC_AUTH_TOKEN | Authorization: Bearer | 推奨 — どこでも動作 |
ANTHROPIC_API_KEY | x-api-key | 一度だけ承認すれば、チャットとモデル検出で動作 |
具体的な理由から ANTHROPIC_AUTH_TOKEN を優先してください。ANTHROPIC_API_KEY には対話型セッションで一度だけ承認が必要で、一度拒否したキーはその後プロンプトなしで無視されます。変数は明確に設定されているのに明確に使われないという、分かりにくい失敗です。Kunavoでは、モデル検出によってこの選択は決まりません。Claude Codeのゲートウェイモデル検出は、ANTHROPIC_AUTH_TOKEN が設定されている場合はベアラートークンのみを送信し、それ以外では x-api-key にフォールバックします。Kunavoの /v1/models エンドポイントは、どちらのヘッダーからもキーを読み取ります。
設定を定着させる
シェルのexportは、そのターミナルとそこから起動したものにしか適用されません。Dockから開いたエディターには反映されず、バックグラウンドエージェントにも反映されません。すべてを対象にするには、設定ファイルに値を記述してください。
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.kunavo.com",
"ANTHROPIC_AUTH_TOKEN": "sk-kn-...",
"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 を使用してください。プロジェクトの .claude/settings.json にキーを記述してはいけません。このファイルはコミットされます。
信頼する前に確認する
まずエンドポイントを直接テストし、失敗の原因が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":"."}]}'
# A response starting with {"id":"msg_ means the URL and key both work.
# 401 -> the key is in the wrong header; see "Which credential variable" below.次に、同じシェルから claude を起動して /status を実行します。Anthropic base URL の行に api.kunavo.com が表示され、Auth token の行に変数名が表示されれば、両方が有効です。
カスタムモデルを設定する — スラッグを明示的に選択
Kunavoはモデルスラッグを完全一致で解決し、日付サフィックス付きの名前を別名扱いしません。そのため、claude-sonnet-4-5-20250929 は404を返し、claude-sonnet-5 は成功します。組み込みデフォルトに依存せず、必ず ANTHROPIC_MODEL を設定してください。
| 役割 | スラッグ | 100万トークンあたりの入力/出力 |
|---|---|---|
| 日常のコーディング(デフォルト) | claude-sonnet-5 | $1.40 / $7.00 |
| 前世代 | claude-sonnet-4-6 | $2.10 / $10.50 |
| 最も難しいリファクタリング、計画モード | claude-opus-5-5 | $2.80 / $14.00 |
| バックグラウンドタスク、簡単な依頼 | claude-haiku-4-5 | $0.70 / $3.50 |
エイリアス用の変数を設定すれば、ルーターなしでタスクごとに振り分けられます。ANTHROPIC_DEFAULT_OPUS_MODELはopusエイリアスとプランモードに使われます。ANTHROPIC_DEFAULT_SONNET_MODELはsonnetとopusplanの実行フェーズに使われます。ANTHROPIC_DEFAULT_HAIKU_MODELはhaikuと、要約やタイトル生成などClaude Codeのバックグラウンド作業に使われます。Kunavo経由では後者の2つが必須です。固定しないと、Kunavoが提供していないモデルID(Sonnet 5.5と、v2.1.293以降のHaiku 5.5)を要求します。Haikuの設定先はclaude-haiku-4-5にしてください。これにより、バックグラウンド作業もメインモデルから切り替わります。(ANTHROPIC_SMALL_FAST_MODELは同じ設定の非推奨表記です。)
任意:ピッカーにすべてのモデルを表示する
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1(Claude Code v2.1.129以降)を設定すると、Claude Codeは起動時に GET /v1/models をクエリし、見つかったモデルを /model ピッカーにFrom gatewayというラベルで追加します。Kunavoはこのエンドポイントを提供するため、有効なClaudeモデルがすべて表示され、/model は手動で管理するリストではなくライブメニューになります。どちらの資格情報変数でも使用できます。上記を参照してください。
Option B — 現在実際に動作するclaude-code-router
ここから始めてください。CCRについて書かれたもののほとんどは、もはや存在しないバージョンについて説明しているからです。以前のルーターはJSONファイルと ccr code コマンドでした。現在はデスクトップアプリ、管理UI、リクエストログ、モデルゲートウェイを備えたローカルコントロールプレーンです。そして、チュートリアルが示す config.json は、もう設定には使われません。
CCRはランタイム設定を
~/.claude-code-router/config.sqlite(Windowsでは%APPDATA%\claude-code-router\config.sqlite)に保持します。従来のconfig.jsonは、SQLite設定がまだ存在しない場合に、移行元として一度だけ読み取られます。その初回実行後は、編集しても実行中の設定には影響しません。エラーも警告も表示されません。慎重に貼り付けたProvidersブロックは、単に設定ではありません。
これには、2026-09-06以前のこのページも含まれます。以前ここに掲載していたJSONスニペットは誤っており、無視されたことを何も知らせないため、午後の時間を費やす種類の誤りでした。現在はUIで設定します(バックアップの場合はSettings → Export dataを使用します。CCRの実行中にライブSQLiteファイルをコピーしないでください)。
インストールと起動
CCRには2つの提供方法があります。GitHub Releasesから入手するデスクトップアプリ(トレイ、自動更新、デスクトップ統合)と、ヘッドレスまたは監視付きデプロイ向けのnpm CLIです。両者は同じ設定ディレクトリを共有します。
# CCR ships as a desktop app (GitHub Releases) or an npm CLI. Both read the
# same ~/.claude-code-router directory. The CLI needs Node.js 22+.
npm install -g @musistudio/claude-code-router
ccr ui # management UI on :3458, model gateway on :3456
# Configure the provider and an Agent Config profile in that UI, then launch
# Claude Code through the profile by name:
ccr "Claude Code - Kunavo" # npm CLI
ccr-app "Claude Code - Kunavo" # the desktop app's own launcher
# There is no 'ccr code' in the current command reference. The service commands
# are start / ui / stop / serve / web; everything else is a profile name.Kunavoの追加は、1つのプロバイダーエントリ(Providers → Add provider、プリセット Other / custom API endpoint、エンドポイント https://api.kunavo.com、自分の sk-kn- キー)と、1つの Agent Config → Add profile → Claude Code プロファイルで完了します。Check Connectionとモデル検出を含むフィールドごとの手順は、Claude Code Router統合ページにあります。このセクションの残りでは、そのページで扱っていない資格情報、費用、失敗モードを説明します。
3つの資格情報と、401がどれを指すか
これは、動作するセットアップが壊れているように見える最も一般的な原因です。CCRには3つの別々のシークレットがあり、それぞれ異なる3つのホップを認証します。
| 資格情報 | 認証対象 | 配置先 |
|---|---|---|
Kunavoキー(sk-kn-…) | CCR → Kunavo | プロバイダー → プロバイダーのAPIキー欄 |
| CCRクライアントキー | 任意のクライアント → CCRゲートウェイ | API Keysページで作成します。これがないと、ゲートウェイはモデルリクエストを拒否します |
管理トークン(ccr_web_token) | あなた → CCR UIおよびRPC | URLにccr uiが表示されます。パスワードとして扱ってください |
ポートの対応関係も混乱しやすい点です。管理サービスのデフォルトは127.0.0.1:3458、モデルゲートウェイは127.0.0.1:3456です。3458を指すベースURLでは、ゲートウェイではなくUIに到達します。(Dockerでは、意図的に両方を1つのNginxエンドポイントの背後にまとめているため、Dockerの手順は異なって見えます。)UIに到達できても、ゲートウェイが動作しているとは限りません。ゲートウェイアドレスで/healthを確認し、ServerがRunningと表示されることを確認してください。
ティアごとのマッピングが要点です
Claude Codeはモデルを要求するのではなく、ティアを要求します。メインループではSonnetまたはOpusが必要で、バックグラウンド処理(サブエージェント、検索、要約、会話タイトル)では小型で高速なモデルが必要です。Agent ConfigのClaude Codeプロファイルでは、これらを個別のフィールドとして設定できます。デフォルトのModelに加え、オプションでFable、Opus、Sonnet、Haikuを上書きでき、それぞれProvider/model値を受け取ります。ティアを空欄にすると、Claude Codeが選択します。
| 階層 | 次にマッピングします | 100万トークンあたりの入力/出力 | そこで実際に実行されるもの |
|---|---|---|---|
| Opus | Kunavo/claude-opus-5-5/ $14.00 | プランモード、複雑なリファクタリング | |
| Sonnet(デフォルト) | Kunavo/claude-sonnet-5 | $1.40 / $7.00 | メインエージェントループ — トークンの大部分を使用 |
| Sonnet、旧世代 | Kunavo/claude-sonnet-4-6 | $2.10 / $10.50 | 同じループで、Sonnet 5より50%高価 |
| Haiku | Kunavo/claude-haiku-4-5 | $0.70 / $3.50 | サブエージェント、ファイルの振り分け、タイトル、要約 |
誰かのティア構成をコピーする前に、この表を確認してください。明らかな分割が最初のレバーです。claude-sonnet-5はKunavoでclaude-opus-5-5より50%安い($1.40 / $7.00 対 $2.80 / )。2つ目のレバーはHaikuティアです。$0.70 / $3.50ではSonnet 5より2倍安く、見えない大量の処理を担います。すべてのサブエージェント、すべてのファイル振り分け処理、生成されるすべてのタイトルが対象です。claude-sonnet-4-6はもはや安価なSonnetではありません。$2.10 / $10.50ではSonnet 5より50%高いため、上のスニペットではANTHROPIC_MODEL=claude-sonnet-5を設定しています。
サブエージェントのルーティング — ティアマップではできないこと
ティアの上書きでは、すべてのサブエージェントが1つのモデルに固定されます。CCRなら、さらに細かく設定できます。Claude Codeのリクエストが組み込みルートに一致すると、利用可能なモデルのリストをAgent / Taskツールの説明に挿入します。そしてClaude Codeは、生成する各エージェントのプロンプトの先頭に、使用したいモデル名のタグを付けます。
<CCR-SUBAGENT-MODEL>provider/model</CCR-SUBAGENT-MODEL>
CCRはタグを取り除き、その1件のリクエストを適切にルーティングします。そのため、検索サブエージェントをHaikuで実行し、レビュー用サブエージェントをOpusで実行するなど、固定ではなくタスクごとに選択できます。この切り替えは見落としやすい点です。Modelsページで少なくとも1つのモデルにDescriptionが設定されるまで、この仕組みは無効です。説明がない場合、CCRは何も挿入せず、すべてのサブエージェントが静かにプロファイルのデフォルトへフォールバックします。説明にはタスクへの適性を書いてください。Haikuには「コード検索、ファイルの振り分け、低コストの並列サブエージェント」、Opusには「アーキテクチャ分析、高リスクのレビュー」などです。動作すると、リクエストログにルート理由としてbuiltin:claude-code-subagentが表示されます。
プロトコルの選択と、キャッシュで発生するコスト
CCRはエンドポイントを調べ、通信プロトコルを選択します。ベースオリジンとしてhttps://api.kunavo.comを指定するとAnthropic Messagesで通信し、https://api.kunavo.com/v1を指定するとOpenAI互換形式で通信します。どちらのインターフェースも同じキーで利用でき、Advanced設定で自動検出を上書きできます。
Anthropic Messages形式を推奨します。これによりcache_controlが通信上に保持されるため、プロンプトキャッシュがモデルまで届き、キャッシュ済み入力は入力料金の10%で課金されます(仕組み)。各ステップで安定したプレフィックスを再送するエージェントループでは、利用可能な節約効果の中で最大です。正直な注意点として、経路上のルーターはリクエストを変更します。CCRはClaude Codeが挿入する課金ヘッダーのシステムメッセージを削除し、サブエージェントのルーティングが有効な場合はツールの説明にモデルリストを追加します。どちらもキャッシュブレークポイントの手前に位置するため、その内容を変更するたびに1回キャッシュミスが発生し、新しいプレフィックスが温まります。その後は安定しますが、実行の手間が少ないことに加え、これがOption Aのキャッシュ効率がOption Bよりわずかに高い実際の理由です。
ただし、OpenAI互換形式でもプロンプトキャッシュはモデルまで届きます。長いプロンプトでは、Kunavoがそのルート上でキャッシュブレークポイントを自ら設定します。設定先は、システムプロンプト、ツール定義、そして会話にアシスタントのターンが含まれていれば最後のメッセージです。メッセージまたはツール定義に付いて届いたcache_controlは保持されます。
フォールバック:再試行とフェイルオーバー
RoutingページのDefault on failureは、必要になる前に設定しておく価値があります。Retryは、408、409、429、5xxの場合に同じモデルへ再送し、Retry-Afterに従い、それがない場合は待機時間を1秒から指数関数的に増やします。待機時間の上限は30秒です。Fallback targetsはバックアップモデルの順序付きリストをたどり、任意の4xxまたは5xxで発動します。モデルが見つからない場合やプロバイダーによる拒否は、現在のターゲットだけに影響している可能性があるためです。個別のルールでグローバル設定を上書きできます。フォールバックが実行されると、レスポンスにx-ccr-fallback-attemptsとx-ccr-fallback-modelが含まれるため、後から確認できます。
実際に経路上にあることを確認する
プロファイルからClaude Codeを起動して1件メッセージを送信し、CCRでRequest logsを開きます。行にはrequest model(Claude Codeが要求したもの)、resolved provider、resolved model(実際の送信先)が表示されます。この3つが証拠です。CLI内では/modelでCCRが公開するモデルを一覧表示できます。Claude Codeが応答するのにログ行が表示されない場合は、CCR経由ではなく自分でClaude Codeを起動しており、プロファイルのスコープがOnly opened from CCRになっています。
コーディングセッションのコスト
Claude Codeは各ステップでシステムプロンプト、会話、新しいファイルコンテキストを再送するため、トークン単価が急速に積み重なります。Kunavoのclaude-sonnet-5料金では、次のようになります。
| 単位 | トークン(入力 / 出力) | Kunavo | Anthropicリスト価格 |
|---|---|---|---|
| エージェント型の1ステップ | 25,000 / 1,200 | $0.043 | $0.062 |
| 20ステップのタスク | 約500k / 約24k | ~$0.87 | ~$1.24 |
| 負荷の高い日(5タスク) | — | ~$4.34 | ~$6.20 |
プロンプトキャッシュ適用前で、メインモデルではおよそ30%安価です。完全な料金はClaude API pricing guideに、独自のトークン数を使った計算はcost calculatorに掲載されています。
現在も動作するもの — そして動作しないもの
Claude Codeを任意のゲートウェイに向けると、いくつかの点が変わります。コミットする前に知っておく価値のある項目は、次のとおりです。
| 機能 | ゲートウェイの背後 |
|---|---|
| コーディング、ツール、サブエージェント、MCP、フック | 影響なし |
| プロンプトキャッシュ | 動作 — ネイティブMessages APIルート |
| claude.aiのサブスクリプション | 使用されません。代わりにキーへトークン単位で課金されます |
| Remote Control | 利用不可 — claude.aiのIDが必要です |
| 音声入力 | 利用不可 — 理由は同じです |
/contextトークン数 | ローカルで推定(下記参照) |
最後の行について:トークンカウントは、Anthropic独自のゲートウェイ仕様でオプションとされている唯一のエンドポイントです。これがない場合、Claude Codeはコンテキスト使用量をローカルで推定します。Kunavoは現在/v1/messages/count_tokensを提供していないため、/contextの値は正確なカウントではなく推定値です。それ以外の点で機能が低下することはありません。自動コンパクションとセッション自体には影響しません。
トラブルシューティング
ベースURLのパス
| 症状 | 原因と修正方法 |
|---|---|
すべてのリクエストで401 | キーが、サーバーが読み取らないヘッダーに入っています。ANTHROPIC_AUTH_TOKENとANTHROPIC_API_KEYを切り替えて、上記のcurlを再実行してください。 |
| Claude Codeがログインを求めるが、curlは動作する | 到達可能なベースURLは認証情報ではありません。初回セットアップ前に読み込まれる場所でANTHROPIC_AUTH_TOKENを設定してください。シェルのexport、または~/.claude/settings.jsonです。 |
ANTHROPIC_API_KEYを設定したのに無視され、プロンプトが表示されない | 一度限りの承認が以前に拒否されています。/config → Use custom API keyで有効にするか、ANTHROPIC_AUTH_TOKENに切り替えてください。 |
モデル名を示す404 | 完全一致のスラッグを使用します。日付のサフィックスを削除し、上の表にあるスラッグを使用してください。 |
400がthinkingまたはadaptiveを示す | Claude Codeは4.6以降のモデルでadaptive reasoningを要求します。Opus 4.6およびSonnet 4.6では、CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1でこの問題を回避できます。 |
/fastがfast modeは無効だと表示する | 可用性チェックはapi.anthropic.comを直接呼び出し、ベースURLには従いません。CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1を設定してください。 |
| モデル選択欄にモデルがない | CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1を有効にするか、ANTHROPIC_DEFAULT_*_MODEL変数でモデル名を指定してください。 |
…ルーターが経路上にある場合
| 症状 | 原因と修正方法 |
|---|---|
config.jsonを編集しても何も変わらない | 変わりません。実行時設定はconfig.sqliteです。JSONファイルは一度限りの移行元です。変更はUIで行ってください。 |
ccr codeが見つからない | 現在のコマンドセットにはありません。プロファイルを名前で起動します。ccr "My Profile"、またはデスクトップアプリからccr-app "My Profile"です。 |
インストール後にccrが見つからない | npmのグローバルbinがPATHに含まれていないか、Nodeが22未満です。npm prefix -gとnode --versionを確認してください。 |
| UIは読み込まれるが、モデルリクエストが失敗する | 管理サービスとゲートウェイは、異なるポートで動作する別々のサービスです。ServerがRunningと表示されることを確認し、クライアントは:3458ではなく:3456を指定してください。 |
| プロバイダーの確認は成功するのに、ゲートウェイが401を返す | CCRクライアントキーがありません。API Keysページで作成してください。sk-kn-キーとは別の認証情報です。 |
| Claude Codeは実行されるが、Request logsに何も表示されない | プロファイルのスコープがOnly opened from CCRなのに、Claude Codeを直接起動しています。CCRから起動するか、スコープをSystem defaultに切り替えてください。 |
| すべてのサブエージェントがデフォルトモデルを使用する | サブエージェントのルーティングは、ModelsページのDescriptionフィールドが条件です。説明がない場合、CCRはルーティング指示を挿入せず、タグも書き込まれません。 |
/modelにCCRモデルが表示されない | プロバイダーとモデルが設定されていないか、プロファイルが無効です。まずプロバイダーでCheck Connectionを実行してください。 |
API自体のエラー別の修正方法は、invalid API keyおよびrate limitのトラブルシューティングページにあります。
よくある質問
別のAPIでClaude Codeを使うにはclaude-code-routerが必要ですか?
いいえ。Claude CodeはANTHROPIC_BASE_URLをネイティブに読み取るため、Anthropic Messages APIを提供する任意のエンドポイントを指定するだけなら、追加ソフトウェアは不要です。環境変数を3つ設定すれば完了します。複数のプロバイダー間でルーティングしたい場合、プロバイダー、モデル、レイテンシ、トークン、コストのリクエストごとのログが必要な場合、またはすべてのサブエージェントに同じモデルを使うのではなく、サブエージェントごとに異なるモデルを使いたい場合は、CCRを実行する価値があります。単に安価なエンドポイントでClaudeを実行したいだけなら、ベースURLを切り替える方が小さく信頼性の高い構成です。追加サービスは不要で、プロンプトキャッシュもそのまま通過します。
claude-code-routerのconfig.jsonを編集しても何も起きないのはなぜですか?
現在、CCRが読み取る設定ではなくなったためです。現在のビルドでは、ランタイム設定を ~/.claude-code-router/config.sqlite(Windowsでは%APPDATA%\claude-code-router\config.sqlite)に保持します。また、SQLite設定がまだ存在しない場合に限り、移行元として従来のconfig.jsonを一度だけ読み取ります。その初回実行後はJSONファイルが黙って無視され、エラーも表示されません。そのため、手動で編集したProviders配列やRouterブロックはまったく反映されません。代わりにCCRのデスクトップUIで変更し、ファイルレベルのバックアップが必要ならSettings → Export dataを使用してください。現在も多くのサードパーティ製CCRチュートリアルではJSONファイルについて説明しています。
現在、claude-code-router経由でClaude Codeを起動するにはどうすればよいですか?
ccr codeではなく、プロファイル名を使います。Agent Config → Add profile → Claude Codeでプロファイルを作成し、モデルを選択して保存した後、起動します。npm CLIでは ccr "Claude Code - Work"、デスクトップアプリでは ccr-app "Claude Code - Work" を使います。デスクトップアプリでは、各プロファイルカードにCLI用のターミナルボタンとClaudeアプリ用の再生ボタンも表示されます。現在のCLIコマンドセットはstart、ui、stop、serve、webに加えて、プロファイル名またはIDです。codeサブコマンドはありません。エージェント独自のフラグは二重ダッシュの後に追加します。例:ccr "Claude Code - Work" cli -- --model sonnet。
Claude Codeでカスタムモデルを使用できますか?
仕組み上は可能です。ANTHROPIC_MODEL は ANTHROPIC_BASE_URL の背後にあるエンドポイントが提供する任意のスラッグを受け付け、claude-code-routerはその上にプロバイダー間のタスク単位のルーティングを追加します。ただし、Anthropic独自のゲートウェイドキュメントでは、どのゲートウェイを使ってもClaude CodeをClaude以外のモデルへルーティングすることはサポートしていないと明記されています。そのため、Claude以外のモデルでのツール使用やエージェント動作は、サポートされた構成ではなく、未テストの領域です。Kunavoでサポートされる経路は、より安価なエンドポイント上のClaudeスラッグです。その他のカタログモデルには、Claude Code経由ではなくOpenAI互換API経由で接続できます。正確なスラッグのルールとモデル一覧は、上記のカスタムモデルを設定に、完全なカタログはモデルページにあります。
Claude Codeに必要なベースURLと環境変数は何ですか?
ANTHROPIC_BASE_URLをhttps://api.kunavo.comに設定します(Claude Codeが自動で/v1/messagesを付加します)。ANTHROPIC_AUTH_TOKENにはsk-kn-キーを、ANTHROPIC_MODELにはclaude-sonnet-5などの正確なモデルスラッグを設定します。エイリアスも固定してください。ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5は/model opusとプランモードに使います(Opus 5.5にはClaude Code v2.1.280以降が必要です。claude updateを実行してください)。sonnetエイリアスはKunavoが提供していないSonnet 5.5を要求するため、ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5を設定します。haikuエイリアスもKunavoが提供していないモデルID(v2.1.293以降はHaiku 5.5)を要求するため、ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5を設定します。この行により、バックグラウンドタスクも最安の料金で処理されます。
ANTHROPIC_AUTH_TOKENとANTHROPIC_API_KEYのどちらを使うべきですか?
ANTHROPIC_AUTH_TOKENを使用してください。これはAuthorization: Bearerヘッダーとして送信され、すぐに有効になります。一方、ANTHROPIC_API_KEYはx-api-keyとして送信され、一度だけ対話的な承認が必要です。一度拒否したキーは、その後は黙って無視されます。Kunavoでは、この承認の有無が唯一の違いです。Claude Codeのゲートウェイモデル検出が利用する/v1/messagesと/v1/modelsエンドポイントは、どちらのヘッダーからもキーを読み取ります。
Claude Codeがモデルを利用できないと言うのはなぜですか?
Kunavoはモデルスラッグを完全一致で処理し、日付付きの名前にはエイリアスを設定しません。そのためclaude-sonnet-4-5-20250929へのリクエストは404を返し、claude-sonnet-5は成功します。Claude Codeの組み込みデフォルトに頼らず、カタログにある正確なスラッグをANTHROPIC_MODELに設定してください。もう1つの一般的な原因はsonnetエイリアスです。固定しない場合、Kunavoが提供していないSonnet 5.5を要求するため、ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5を設定するまで、/model sonnet、opusplanの実行フェーズ、model: sonnetに設定されたサブエージェントは404を返します。
Claude Codeをゲートウェイ経由で実行すると、何が使えなくなりますか?
設計上、3つあります。Remote Controlと音声入力はどちらもclaude.aiのIDを必要とするため、ゲートウェイ資格情報が設定されている間は利用できません。/fastの利用可能性チェックは、ベースURLに従わずapi.anthropic.comを直接呼び出すため、通常のリクエストが動作していても高速モードを利用不可と報告することがあります。CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1を設定すると復元できます。コーディング、ツール、サブエージェント、MCP、プロンプトキャッシュには影響ありません。
Claude ProまたはMaxのサブスクリプションを代わりに使えますか?
いいえ。チャットのサブスクリプションにはAPIアクセスが含まれていません。また、ゲートウェイ資格情報を設定すると、意図的にclaude.aiのログインが無効化されます。サブスクリプションの制限は適用されなくなり、代わりにキーに対してトークン単位で利用料金が請求されます。詳しい内訳はClaude Codeは無料かを参照してください。
VS Code拡張機能でも動作しますか?
はい。ただし、拡張機能は起動前に資格情報を確認するため、~/.claude/settings.jsonだけでなく、VS Code独自のclaudeCode.environmentVariables設定に記述してください。
Cursor、Kilo Code、Clineについてはどうですか?
これらは環境変数ではなく、OpenAI互換プロバイダーのフィールドを使用します。ベースURLは https://api.kunavo.com/v1 で、キーは同じです。セットアップとツールごとのモデルルーティングについては、Cline、Roo Code、Kilo Codeのガイドで説明しています。