Documentation
Claude Code
Claude Code traite tout point de terminaison au format Anthropic comme une passerelle. Deux variables le dirigent vers Kunavo, trois autres fixent les modèles proposés par Kunavo, l’installation reste intacte et chaque session est facturée par jeton sur votre solde plutôt que par abonnement.
Deux variables d’environnement — ANTHROPIC_BASE_URL et ANTHROPIC_AUTH_TOKEN — font passer Claude Code au paiement à l’usage sans modifier l’installation.
# One terminal session
export ANTHROPIC_BASE_URL=https://api.kunavo.com # origin, no /v1
export ANTHROPIC_AUTH_TOKEN=sk-kn-...
# Pin models Kunavo serves. Claude Code's default and its opus/sonnet aliases
# follow Anthropic's newest models; the sonnet alias asks for Sonnet 5.5,
# which Kunavo does not serve — unpinned, /model sonnet 404s.
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
claudeANTHROPIC_BASE_URL est l’origine. Claude Code ajoute lui-même /v1/messages — la commande de vérification d’Anthropic est curl "$ANTHROPIC_BASE_URL/v1/messages" — ; une valeur qui se termine par /v1 génère donc des requêtes vers /v1/v1/messages et une erreur 404. C’est l’erreur de configuration la plus fréquente ; la page ANTHROPIC_BASE_URL traite les autres.sonnet demande Sonnet 5.5, que Kunavo ne propose pas, donc /model sonnet renvoie 404 sauf s’il est lui aussi épinglé. ANTHROPIC_MODEL définit le modèle de la session ; ANTHROPIC_DEFAULT_OPUS_MODEL couvre /model opus (Opus 5.5 nécessite Claude Code v2.1.280 ou une version ultérieure), ANTHROPIC_DEFAULT_SONNET_MODEL couvre /model sonnet, et ANTHROPIC_DEFAULT_HAIKU_MODEL les appels en arrière-plan. Tout identifiant provenant de GET /v1/models fonctionne.ANTHROPIC_AUTH_TOKEN, et non ANTHROPIC_API_KEY. Les deux variables déterminent un en-tête : AUTH_TOKEN envoie Authorization: Bearer, tandis que API_KEY envoie x-api-key. Kunavo accepte les deux, mais API_KEY nécessite une invite d’approbation unique dans une session interactive avant de prendre effet, contrairement à AUTH_TOKEN.sk-kn-) et ajoutez un crédit à partir de 10 $ — les appels sont payés sur ce solde et les appels échoués ne sont pas facturés. Le tableau de bord s’ouvre ensuite sur la configuration Claude Code.Étape par étape
- Créez une clé sur
/app/keyset copiez-la — elle n’est affichée qu’une seule fois. - Exportez les variables ci-dessus pour la session, ou conservez-les dans le bloc
envde~/.claude/settings.json:{"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"}}. La documentation d’Anthropic précise que l’identifiant ne doit pas figurer dans le fichier.claude/settings.jsond’un projet, car ce fichier est placé dans le dépôt. - Exécutez
claudeet ouvrez l’onglet Status. Une ligne mentionnantAuth tokenconfirme que l’identifiant de la passerelle est actif ; une ligneLogin methodmentionnant un compte claude.ai signifie que la variable n’a pas été prise en compte. - Pour l’extension VS Code, les variables doivent figurer dans
claudeCode.environmentVariablesdes paramètres utilisateur propres à VS Code. L’extension vérifie les identifiants avant de se lancer ;~/.claude/settings.jsonparvient donc au processus enfant, mais pas à cette vérification.
Vérifié avec « Connecter Claude Code à une passerelle LLM » d’Anthropic le 3 octobre 2026. Les paramètres tiers évoluent ; si le nom d’un champ ne correspond plus à ce que vous voyez ici, cette page fait autorité, pas celle-ci.
Vérifiez avant de déboguer le client
Une requête suffit à déterminer si l’échec vient de l’endpoint, de la clé ou du fichier de configuration. Si cette requête renvoie du JSON, la même URL de base et la même clé fonctionnent dans Claude Code.
# Settles whether a failure is the endpoint, the key, or the client.
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-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'Quel identifiant de modèle saisir dans le champ
Tous les modèles textuels sont accessibles sous forme d’identifiant de modèle — la liste à jour se trouve sur GET /v1/models, et le catalogue avec les prix sur la page des modèles. Les tarifs sont en USD par million de tokens, entrée / sortie.
| Identifiant du modèle | Entrée / sortie sur Kunavo | Où cela s’intègre dans Claude Code |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | le modèle de travail par défaut — défini avec /model ou ANTHROPIC_ |
claude-opus-5-5 | $2.80 / $14.00 | la planification et les modifications au niveau de l’architecture |
claude-haiku-4-5 | $0.70 / $3.50 | le niveau léger et rapide utilisé par Claude Code pour le travail en arrière-plan |
claude-fable-5 | $7.00 / $35.00 | le niveau de pointe, pour les plans qui justifient son tarif |
Questions fréquentes
Comment utiliser Claude Code sans abonnement Claude ?
Définissez ANTHROPIC_BASE_URL sur un point de terminaison au format Anthropic, ANTHROPIC_AUTH_TOKEN sur la clé de ce point de terminaison, et ANTHROPIC_MODEL sur un modèle qu’il propose — le modèle par défaut intégré à Claude Code n’en fait peut-être pas partie. Claude Code s’authentifie alors auprès du point de terminaison plutôt que de claude.ai, et l’utilisation est facturée par jeton par le détenteur de cet identifiant, au lieu d’être imputée à un abonnement. Anthropic décrit ce fonctionnement comme le mode passerelle ; la connexion claude.ai enregistrée reste sur le disque, inutilisée, et redevient active dès que les variables sont supprimées.
ANTHROPIC_BASE_URL doit-elle inclure /v1 ?
Non. Claude Code ajoute lui-même la route ; la variable doit donc contenir l’origine — https://api.kunavo.com, et non https://api.kunavo.com/v1. La commande de vérification d’Anthropic est curl "$ANTHROPIC_BASE_URL/v1/messages", ce qui montre directement la concaténation. Une URL de base qui se termine déjà par /v1 envoie les requêtes vers /v1/v1/messages et renvoie une erreur 404.
Quelle est la différence entre ANTHROPIC_AUTH_TOKEN et ANTHROPIC_API_KEY ?
Elles placent la credenziale dans des en-têtes HTTP différents : ANTHROPIC_AUTH_TOKEN envoie Authorization: Bearer, tandis que ANTHROPIC_API_KEY envoie x-api-key. Une clé placée dans la mauvaise variable parvient au point de terminaison dans un en-tête qu’il ne lit pas et la requête échoue avec une erreur 401. Si la documentation d’une passerelle indique « bearer token », utilisez ANTHROPIC_AUTH_TOKEN ; si elle indique « API key » ou « x-api-key », utilisez ANTHROPIC_API_KEY.
Quelles fonctionnalités de Claude Code cessent de fonctionner derrière une URL de base personnalisée ?
Remote Control et la dictée vocale nécessitent toutes deux une identité claude.ai et sont indisponibles lorsqu’un identifiant de passerelle est défini. Remote Control est en outre désactivé chaque fois qu’ANTHROPIC_BASE_URL pointe vers un hôte non Anthropic. La vérification de disponibilité du mode rapide s’adresse aussi directement à api.anthropic.com au lieu de suivre l’URL de base. Tout le cœur de la boucle — l’agent, les outils, les sous-agents, les serveurs MCP — fonctionne avec l’API Messages et n’est pas affecté.