Documentation
CC Switch
CC Switch bascule Claude Code et Codex entre différents fournisseurs depuis une application de bureau. Ajoutez Kunavo en tant que configuration personnalisée : racine du service, authentification Bearer, API Anthropic Messages native, sans routage local.
Trois champs et deux menus déroulants. https://api.kunavo.com comme point de terminaison, votre clé sk-kn-… et — le détail omis par la plupart des guides — laissez API Format sur Anthropic Messages (Native) et Auth Field sur ANTHROPIC_AUTH_TOKEN. Kunavo prend en charge nativement l’API Messages ; aucun routage local n’est donc nécessaire du côté de 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, pas de barre oblique finale. Les clients de style Anthropic ajoutent eux-mêmes /v1/messages — c’est pourquoi ce champ diffère de tous les exemples OpenAI, où /v1 doit figurer dans l’URL de base. Explication complète sur la page ANTHROPIC_BASE_URL.Étapes à suivre (onglet Claude Code)
- Créez une clé sur
/app/keyset copiez-la — elle n’est affichée qu’une seule fois. - Ouvrez CC Switch dans l’onglet principal
Claude Codeet cliquez sur le bouton plus. Conservez la valeur par défautCustom Configurationplutôt qu’un préréglage. - Renseignez
Provider Name,API Keyet définissezAPI Endpointsurhttps://api.kunavo.com. - Développez
Advanced Optionset vérifiez queAPI Formatest défini surAnthropic Messages (Native)etAuth FieldsurANTHROPIC_AUTH_TOKEN (Default). Ce sont les valeurs par défaut ; il s’agit de vérifier, pas de modifier. - Enregistrez, puis
Activate. La carte ne doit pas afficher de marqueurNeeds Routing— ce marqueur apparaît uniquement pour les fournisseurs dont le protocole doit être converti.
Pourquoi le marqueur « Routage requis » n’apparaît pas
Le routage local de CC Switch sert à faire le pont entre les protocoles. Claude Code envoie des requêtes Anthropic Messages à /v1/messages ; une passerelle qui n’expose que l’API OpenAI Chat Completions ou Responses ne peut pas y répondre. La route convertit donc la requête à l’aller et la réponse au retour. Cette conversion remodèle les événements de diffusion en continu, les appels d’outils et la configuration de réflexion — cela fonctionne, mais ajoute un élément intermédiaire entre votre éditeur et le modèle.
Kunavo fournit directement POST /v1/messages ; côté Claude Code, rien n’est donc à convertir : le fournisseur reste Anthropic Messages (Native) et la route n’intervient pas du tout. Kunavo fournit aussi POST /v1/chat/completions et POST /v1/responses avec la même clé, ce qui permet d’utiliser Codex comme décrit ci-dessous.
| Onglet CC Switch | Définir le format sur | Routage local |
|---|---|---|
| Claude Code | Anthropic Messages (Native) | Non nécessaire |
| Codex | Anthropic Messages (routing required) | Requis — la route réécrit /responses en /v1/messages |
Utiliser des modèles Claude dans Codex
C’est le cas que les guides des autres fournisseurs ne couvrent pas. Codex utilise l’API OpenAI Responses ; si vous le pointez directement vers un point de terminaison /v1/messages, vous obtenez une erreur 404. CC Switch résout ce problème en maintenant Codex sur la route locale et en effectuant la conversion. Dans l’onglet Codex, il n’y a pas de préréglage Anthropic ; il s’agit donc également d’une 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-… donne accès aux interfaces Messages et Responses, sans liste d’autorisation de clients pour l’une ou l’autre. Si vous préférez éviter complètement la conversion, l’interface CLI de Codex peut aussi se connecter directement à l’interface native /v1/responses de Kunavo ; cette configuration est décrite sur la page de l’interface CLI de Codex.Mappage des modèles
CC Switch associe les trois niveaux de Claude Code à de véritables identifiants de modèle. Renseignez les trois niveaux ainsi que Default fallback model — les requêtes non correspondantes passent autrement avec leur nom Claude d’origine et échouent en amont. Les tarifs sont en USD par million de jetons, entrée / sortie, et sont lus en direct depuis le catalogue.
| Niveau | Identifiant du modèle | Entrée / sortie sur Kunavo | Pourquoi |
|---|---|---|---|
| Haiku | claude-haiku-4-5 | $0.70 / $3.50 | Claude Code y achemine les sous-tâches en arrière-plan — choisissez le niveau le moins cher |
| Sonnet | claude-sonnet-5 | $1.40 / $7.00 | Le choix par défaut pour les modifications |
| Opus | claude-opus-5-5 | $2.80 / $14.00 | Modifications au niveau de l’architecture |
1M décochée, sauf si le niveau prend réellement en charge une fenêtre d’un million de jetons. Déclarer un contexte que le fournisseur amont ne prend pas en charge ne prolonge rien : cela ne fait que déplacer l’échec au milieu d’une longue conversation.Vérifiez avant de déboguer l’application
Une paire de requêtes suffit à déterminer si l’échec vient de la clé, du point de terminaison ou de CC Switch. Si les deux renvoient 200, tout problème persistant vient d’un champ du formulaire — presque toujours Auth Field ou un /v1 qui ne devrait pas figurer dans le point de terminaison.
# 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"}]}'Références
CC Switch est un logiciel libre disponible sur github.com/farion1231/cc-switch. Les noms des champs et leur comportement décrits ci-dessus proviennent de ses propres guides : le guide de routage pour Claude Code et le guide de routage pour Codex, qui précisent tous deux s’appliquer à la version 3.17.0 et aux suivantes. Le formulaire diffère dans les anciennes versions ; consultez la section À propos de l’application si un champ mentionné ici est absent. La configuration côté Kunavo est décrite dans l’API Messages, Chat Completions et le centre d’intégrations.
Questions fréquentes
Comment ajouter un fournisseur personnalisé dans CC Switch ?
Dans l’onglet Claude Code, cliquez sur le bouton plus, gardez la configuration personnalisée par défaut, puis renseignez Provider Name, API Key et API Endpoint. API Endpoint correspond à la racine de service de la passerelle, sans barre oblique finale. Pour Kunavo, indiquez https://api.kunavo.com, sans /v1. Ouvrez ensuite Advanced Options et vérifiez deux champs : API Format et Auth Field. Ils déterminent tous deux si le fournisseur fonctionne, mais sont souvent omis des guides de configuration.
Le routage local de CC Switch doit-il être activé pour Kunavo ?
Non. Le routage local sert à traduire les protocoles : il convertit la requête /v1/messages de Claude Code en requête OpenAI Responses ou Chat Completions lorsque le service amont ne prend en charge que ces formats. Kunavo sert nativement l’API Anthropic Messages à https://api.kunavo.com/v1/messages. Le champ API Format conserve donc sa valeur par défaut, Anthropic Messages (Native) ; la fiche du fournisseur n’affiche jamais l’indicateur Needs Routing et les requêtes sont envoyées directement au service amont. Avec une passerelle qui ne propose que Chat Completions, le routage local doit être activé pour chaque requête.
Pourquoi l’API Endpoint n’inclut-il pas /v1, contrairement aux exemples OpenAI ?
Parce que les deux conventions diffèrent délibérément. Les clients de type Anthropic ajoutent eux-mêmes /v1/messages et attendent donc uniquement l’origine : https://api.kunavo.com. Les SDK OpenAI attendent que /v1 figure déjà dans base_url ; ils utilisent donc https://api.kunavo.com/v1. L’onglet Claude Code de CC Switch relève du protocole Anthropic, et /v1 doit donc être omis. Inverser ces conventions est l’erreur de configuration la plus fréquente, tous clients confondus ; la page ANTHROPIC_BASE_URL explique les deux formats.
Dois-je définir Auth Field sur ANTHROPIC_API_KEY ?
Non, conservez la valeur par défaut ANTHROPIC_AUTH_TOKEN. CC Switch envoie alors Authorization: Bearer <key>. Si vous choisissez ANTHROPIC_API_KEY, il envoie plutôt un en-tête x-api-key, que Kunavo accepte aussi. Le problème ne vient donc pas de l’en-tête, mais de l’autorisation. Avant d’utiliser ANTHROPIC_API_KEY dans une session interactive, Claude Code demande une autorisation ponctuelle. Si vous la refusez, la clé est ensuite ignorée : l’échec d’authentification donne l’impression que la clé est incorrecte alors qu’elle fonctionne.
Puis-je utiliser des modèles Claude dans Codex via CC Switch ?
Oui, et c’est la partie que la plupart des guides de fournisseurs omettent. Dans l’onglet Codex, ajoutez une configuration personnalisée avec l’URL de requête API https://api.kunavo.com et un modèle par défaut, par exemple claude-sonnet-5, puis définissez Upstream Format sur Anthropic Messages (routing required) dans Advanced Options. Le routage local doit être activé dans ce sens, car Codex utilise l’API Responses et la route réécrit /responses en /v1/messages. Le guide de CC Switch avertit que certains fournisseurs limitent leur API Claude au client Claude Code et que leurs clés échouent alors via Codex. Ce n’est pas le cas de Kunavo : la même clé sk-kn- fonctionne pour les deux interfaces.
Quels ID de modèle dois-je mettre dans la correspondance des modèles de CC Switch ?
Utilisez les identifiants de catalogue de Kunavo. Une bonne répartition par défaut consiste à utiliser claude-haiku-4-5 ($0.70 / $3.50 pour 1 million de tokens) au niveau Haiku, car Claude Code y envoie les sous-tâches en arrière-plan ; claude-sonnet-5 ($1.40 / $7.00) au niveau Sonnet ; et claude-opus-5-5 ($2.80 / $14.00) au niveau Opus. Remplissez toujours également le modèle de secours par défaut : si vous le laissez vide, CC Switch transmet les requêtes non correspondantes sous le nom Claude d’origine, et celles-ci échouent en amont. La liste en temps réel est disponible via GET /v1/models.
Où CC Switch stocke-t-il ma clé d’API ?
Dans son propre stockage, et non dans la configuration du client. CC Switch conserve les fournisseurs dans ~/.cc-switch/cc-switch.db. Lorsque le routage local prend en charge les requêtes d’un client, il écrit uniquement l’adresse de la route locale dans ~/.claude/settings.json, avec une valeur fictive dans le champ d’authentification ; la route insère la véritable clé au moment de transmettre la requête. C’est une propriété de CC Switch, et non de Kunavo. À savoir : la clé que vous collez n’est pas celle qui figure dans le fichier que vous pourriez vous apprêter à valider dans Git.