ドキュメント
CC Switch
CC Switchは、デスクトップアプリからClaude CodeとCodexを複数のプロバイダー間で切り替えます。KunavoはCustom Configurationとして追加します。サービスルート、Bearer認証、Anthropic Messagesネイティブの設定を使い、ローカルルーティングは使いません。
項目は3つ、ドロップダウンは2つです。エンドポイントにhttps://api.kunavo.com、お使いのsk-kn-…キーを入力し、多くのガイドで省略されている設定として、API FormatはAnthropic Messages (Native)のまま、Auth FieldはANTHROPIC_AUTH_TOKENのままにします。KunavoはMessages APIをネイティブに扱うため、Claude Code側ではローカルルーティングは不要です。
Provider Name Kunavo
API Key sk-kn-...
API Endpoint https://api.kunavo.com <- service root, no /v1, no trailing slash
Advanced Options
API Format Anthropic Messages (Native) <- the default; do NOT switch
Auth Field ANTHROPIC_AUTH_TOKEN (Default)/v1は付けず、末尾にスラッシュも付けません。Anthropic形式のクライアントは自ら/v1/messagesを追加します。そのため、この項目はOpenAIの例と異なり、OpenAIでは/v1をベースURLに含めます。詳しくはANTHROPIC_BASE_URLのページをご覧ください。手順(Claude Codeタブ)
/app/keysでキーを作成してコピーします。キーは一度だけ表示されます。- CC Switchを開き、最上部の
Claude Codeタブを選んでプラスボタンをクリックします。プリセットではなく、デフォルトのCustom Configurationを選んだままにします。 Provider Name、API Keyを入力し、API Endpoint=https://api.kunavo.comに設定します。Advanced Optionsを展開して、API FormatがAnthropic Messages (Native)、Auth FieldがANTHROPIC_AUTH_TOKEN (Default)になっていることを確認します。どちらもデフォルト値です。変更するのではなく、確認することが目的です。- 保存してから
Activateします。カードに表示されないのが正しい状態です。Needs Routingマーカーが表示されるのは、プロトコルの変換が必要なプロバイダーだけです。
「Needs Routing」マーカーが表示されない理由
CC Switchのローカルルートは、プロトコル間の橋渡しをします。Claude CodeはAnthropic Messagesリクエストを/v1/messagesに送信します。OpenAI Chat CompletionsまたはResponses APIしか公開していないゲートウェイは、このリクエストに応答できないため、ルートが送信時にリクエストを変換し、応答時に元へ変換します。この変換では、ストリーミングイベント、ツール呼び出し、thinking設定の形式が組み替えられます。機能はしますが、エディターとモデルの間にもう1つの処理が加わります。
KunavoはPOST /v1/messagesを直接提供するため、Claude Code側では変換が不要です。プロバイダーはAnthropic Messages (Native)のままになり、ルートは経由しません。また、同じキーでPOST /v1/chat/completionsとPOST /v1/responsesも提供しているため、以下のCodex側の構成が可能になります。
| CC Switchのタブ | 形式を次のように設定 | ローカルルーティング |
|---|---|---|
| Claude Code | Anthropic Messages (Native) | 不要 |
| Codex | Anthropic Messages (routing required) | 必須 — ルートが/ |
Codex内でClaudeモデルを実行する
他のプロバイダーガイドでは扱われていない構成です。CodexはOpenAI Responses APIを使用するため、/v1/messagesエンドポイントに直接向けると404が返ります。CC SwitchではCodexをローカルルート経由にして、プロトコルを変換します。CodexタブにはAnthropicのプリセットがないため、ここもCustom Configurationです:
Provider Name Kunavo
API Key sk-kn-...
API Request URL https://api.kunavo.com
Default Model claude-sonnet-5
Advanced Options
Upstream Format Anthropic Messages (routing required)sk-kn-…キーでMessages APIとResponses APIの両方を利用でき、いずれにもクライアントの許可リストはありません。翻訳を介さずに利用したい場合は、Codex CLIからKunavoネイティブの/v1/responsesエンドポイントに直接接続することもできます。この方法はCodex CLIのページで説明しています。モデルのマッピング
CC SwitchはClaude Codeの3つのティアを実際のモデルIDに割り当てます。3つすべてとDefault fallback modelを設定してください。そうしないと、一致しないリクエストが元のClaude名のまま送信され、上流でエラーになります。料金はカタログからリアルタイムで取得した、100万トークンあたりの米ドル建て料金(入力/出力)です。
| 階層 | モデル ID | Kunavo 入力 / 出力 | 理由 |
|---|---|---|---|
| Haiku | claude-haiku-4-5 | $0.70 / $3.50 | Claude Codeがバックグラウンドのサブタスクをここに振り分けます。最も安価なティアが適しています |
| Sonnet | claude-sonnet-5 | $1.40 / $7.00 | 編集作業の標準モデル |
| Opus | claude-opus-5-5 | $2.80 / $14.00 | アーキテクチャレベルの変更 |
1Mのチェックボックスはオフにしてください。上流が備えていないコンテキスト長を宣言しても、対応範囲が広がるわけではありません。長い会話の途中で失敗するだけです。アプリのデバッグ前に確認する
リクエストを1組(2件)送れば、失敗の原因がキー、エンドポイント、CC Switchのどれかを特定できます。両方が200を返すなら、残っている問題はフォームのフィールドにあります。ほぼ必ずAuth Fieldか、エンドポイントに含めるべきでない/v1です。
# Settles whether a failure is the key, the endpoint, or CC Switch.
# 200 + a JSON list of model ids means the same key works in the app.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."
# The Anthropic face, which is the one the Claude Code tab actually calls.
curl -sS https://api.kunavo.com/v1/messages \
-H "Authorization: Bearer sk-kn-..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-haiku-4-5","max_tokens":16,
"messages":[{"role":"user","content":"ping"}]}'参考情報
CC Switchはgithub.com/farion1231/cc-switchでオープンソースとして公開されています。上記のフィールド名と動作は、同アプリのガイドであるClaude CodeのルーティングガイドとCodexのルーティングガイドに基づいています。どちらも3.17.0以降が対象です。それ以前のバージョンではフォームが異なります。ここに記載したフィールドが見つからない場合は、アプリの「About」画面を確認してください。Kunavo側の仕様は、Messages API、チャット補完、インテグレーションハブで説明しています。
よくある質問
CC Switchでカスタムプロバイダーを追加するには?
Claude Codeタブでプラスボタンをクリックし、デフォルトのCustom Configurationを選んだまま、Provider Name、API Key、API Endpointを入力します。API Endpointは、末尾にスラッシュを付けないゲートウェイのサービスルートです。Kunavoの場合はhttps://api.kunavo.comで、/v1は付けません。次にAdvanced Optionsを開き、API FormatとAuth Fieldの2項目を確認します。プロバイダーが機能するかどうかはこの2項目で決まり、多くの設定ガイドでは省略されています。
KunavoでCC Switchのローカルルーティングを有効にする必要がありますか?
いいえ。ローカルルーティングは、上流がClaude Codeのプロトコルに対応していない場合に、プロトコルを変換するための機能です。Claude Codeの/v1/messagesリクエストをOpenAI ResponsesまたはChat Completionsに変換し、上流がそれらの形式のみを扱う場合に使います。KunavoはAnthropic Messages APIをhttps://api.kunavo.com/v1/messagesでネイティブに提供するため、API FormatはデフォルトのAnthropic Messages (Native)のままにします。プロバイダーカードにはNeeds Routingマーカーが表示されず、リクエストは上流に直接送信されます。Chat Completionsしか提供しないゲートウェイでは、すべてのリクエストにローカルルーティングが必要です。
OpenAIの例とは異なり、API Endpointに/v1を付けないのはなぜですか?
2つの方式が意図的に異なるためです。Anthropic形式のクライアントは自ら/v1/messagesを追加するため、オリジンだけを指定します。つまりhttps://api.kunavo.comです。OpenAI SDKでは、base_urlに/v1まで含める必要があるため、https://api.kunavo.com/v1を指定します。CC SwitchのClaude CodeタブはAnthropic側なので、/v1を付けません。これを逆にするのは、あらゆるクライアントで最もよくある設定ミスです。ANTHROPIC_BASE_URLのページで、両方の形式を説明しています。
Auth FieldをANTHROPIC_API_KEYに設定すべきですか?
いいえ。デフォルトのANTHROPIC_AUTH_TOKENのままにしてください。この設定では、CC SwitchはAuthorization: Bearer <key>を送信します。ANTHROPIC_API_KEYを選ぶと、代わりにx-api-keyヘッダーが送信されます。Kunavoはどちらも問題なく読み取れるため、問題はヘッダーではなく承認です。Claude Codeは対話セッションでANTHROPIC_API_KEYを使う前に、一度だけ承認を求めます。そこでキーの使用が拒否されると、その後は無視されます。キー自体が正しくても認証エラーのように見えます。
CC Switchを通じてCodex内でClaudeモデルを実行できますか?
はい。こちらの使い方は、多くのプロバイダーガイドで説明が省かれています。CodexタブでCustom Configurationを追加し、API Request URLにhttps://api.kunavo.com、Default Modelにclaude-sonnet-5などを指定します。続いてAdvanced OptionsでUpstream FormatをAnthropic Messages (routing required)に設定します。この方向ではCodexがResponses APIを使用し、ルートが/responsesを/v1/messagesに書き換えるため、ローカルルーティングを有効にする必要があります。CC Switch自身のガイドでは、一部のプロバイダーがClaude APIをClaude Codeクライアントに限定しており、そのキーはCodex経由では使えないと警告しています。Kunavoはその制限がなく、同じsk-kn-キーで両方のクライアントから利用できます。
CC Switchのモデルマッピングには、どのモデルIDを入力すればよいですか?
KunavoのカタログIDを使用してください。適切なデフォルトの分け方は、Haikuティアにclaude-haiku-4-5(100万トークンあたり$0.70/$3.50)です。Claude Codeはバックグラウンドのサブタスクをそこに送信するためです。Sonnetティアにはclaude-sonnet-5($1.40/$7.00)、Opusティアにはclaude-opus-5-5($2.80/$14.00)を設定します。Default fallback modelも必ず入力してください。空欄のままにすると、CC Switchは一致しないリクエストを元のClaude名のまま転送し、上流でエラーになります。最新の一覧はGET /v1/modelsで取得できます。
CC SwitchはAPIキーをどこに保存しますか?
クライアントの設定ではなく、CC Switch独自のストアに保存されます。CC Switchはプロバイダーを~/.cc-switch/cc-switch.dbに保存します。ローカルルーティングがクライアントに代わってリクエストを送る場合、~/.claude/settings.jsonに書き込まれるのはローカルルートのアドレスだけで、認証情報にはプレースホルダーが使われます。実際のキーは転送時にルートが挿入します。これはKunavoではなくCC Switchの仕様です。貼り付けたキーと、コミットしようとしているファイルにあるキーが別物だと分かるため、知っておくと役立ちます。