Retour aux guides
Configuration·26 juillet 2026·Mis à jour le 30 septembre 2026·9 min de lecture

Clé API de la CLI Codex — la configuration fonctionnelle avec un fournisseur personnalisé

La CLI Codex n’accepte un fournisseur personnalisé qu’au moyen de l’API Responses. Voici le bloc de configuration fonctionnel, le rôle de chaque champ et le coût d’une session.

Dernière vérification le .

Une clé API Codex est toute clé avec laquelle Codex CLI peut facturer par token au lieu d'un forfait ChatGPT : une clé API OpenAI provenant de platform.openai.com, ou une clé fournisseur telle que sk-kn- de Kunavo, que Codex lit depuis la variable d'environnement indiquée par env_key dans un bloc model_providers. Le fournisseur doit exposer l'API Responses — c'est l'unique exigence ci-dessous.

Codex CLI est l'agent de codage open source en terminal d'OpenAI ; il fonctionne avec une connexion ChatGPT ou une clé API. La route par clé API est celle qu'il faut comprendre : elle facture par token sans frais mensuels et c'est la seule route qui vous permet de pointer la CLI vers un autre fournisseur — ou vers une famille de modèles entièrement différente. Ce guide présente la configuration opérationnelle, l'unique exigence qui pose problème à la plupart des passerelles et le coût réel d'une session.

L'unique exigence importante

Codex CLI est plus strict que la plupart des outils concernant les endpoints personnalisés. Son bloc model_providers contient une clé wire_api et n'accepte qu'une seule valeur : responses. Cela signifie qu'un fournisseur personnalisé doit exposer l'API Responses d'OpenAI à l'adresse POST /v1/responses — et non l'endpoint beaucoup plus courant /v1/chat/completions. La plupart des passerelles compatibles OpenAI ne proposent que ce dernier, ce qui explique pourquoi tant d'entre elles ne peuvent pas piloter Codex CLI, quelle que soit la valeur de base_url que vous lui fournissez.

Kunavo expose les deux surfaces, le fichier de configuration ci-dessous fonctionne donc tel quel.

La configuration

Codex lit ~/.codex/config.toml. Deux clés de premier niveau sélectionnent le modèle et le fournisseur ; le bloc du fournisseur décrit la manière de le joindre :

~/.codex/config.toml
# ~/.codex/config.toml
model          = "gpt-5-6-sol"
model_provider = "kunavo"

[model_providers.kunavo]
name     = "kunavo"
base_url = "https://api.kunavo.com/v1"
env_key  = "KUNAVO_API_KEY"
wire_api = "responses"

Notez ce qui n'est pas présent dans ce fichier : la clé elle-même. env_key désigne une variable d'environnement, et Codex lit la clé dans cette variable au lancement — le fichier de configuration peut donc être validé dans le dépôt ou partagé sans risque.

shell
# Codex reads the key from the variable named by env_key.
export KUNAVO_API_KEY="sk-kn-..."     # create at kunavo.com/app/keys

# Persist it (pick the file your shell actually loads):
echo 'export KUNAVO_API_KEY="sk-kn-..."' >> ~/.zshrc

codex "explain the structure of this repository"

Créez la clé dans le tableau de bord après vous être inscrit et avoir rechargé 10 $. Elle n'est affichée qu'une seule fois, enregistrez-la donc immédiatement. Si codex fonctionnait déjà dans un autre shell, redémarrez-le — il lit la variable au lancement, et non à chaque requête.

Vérifiez avant de déboguer

En cas de problème, déterminez s'il vient de la clé, de l'endpoint ou de la CLI. Une seule requête suffit :

verify.sh
# Confirm the key and the endpoint before blaming Codex.
curl https://api.kunavo.com/v1/responses \
  -H "Authorization: Bearer $KUNAVO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5-6-sol",
    "input": "Say OK and nothing else."
  }'

Une réponse JSON signifie que la clé et l'endpoint sont corrects et que tout problème restant se trouve dans config.toml. Une erreur 401 signifie que la clé est incorrecte ou que la variable est vide dans ce shell. Une erreur 404 sur model signifie que le slug ne correspond pas au catalogue.

Quel modèle définir

La valeur de model est simplement un slug sur le même endpoint ; changer de modèle revient donc à modifier un seul mot — aucune nouvelle clé, aucun nouveau bloc fournisseur.

TâcheModèleEntrée / sortie Kunavo (par million)
Modèle par défaut spécialisé dans le codagegpt-5-6-sol$2.00 / $12.00
Refactorisations et débogages les plus difficilesclaude-opus-5$3.50 / $17.50
Codage agentique au quotidienclaude-sonnet-5$1.40 / $7.00
Modifications rapides et questions-réponsesclaude-haiku-4-5$0.70 / $3.50

gpt-5-6-sol est le GPT optimisé pour le codage et le choix par défaut naturel pour cette CLI, à $2.00 / $12.00 par million de tokens, contre $5.00 / $30.00 — OpenAI facture toutefois actuellement un tarif promotionnel de $4.00 / $20.00, disponible au moins jusqu’au 21 novembre 2026 au tarif catalogue d’OpenAI. Les tarifs complets de chaque modèle figurent sur la page des tarifs.

Exécuter des modèles Claude dans Codex CLI

Cela surprend : Codex CLI est lié au protocole, pas au modèle. Il utilise le format filaire Responses, et le modèle conversationnel situé derrière ce point de terminaison répond. Dirigez-le vers claude-opus-5 et il fonctionne de bout en bout — y compris les appels d’outils ; l’agent continue donc à lire les fichiers, proposer des modifications et exécuter des commandes normalement.

~/.codex/config.toml
# Same provider block, different model — no new key, no new config.
model          = "claude-opus-5"
model_provider = "kunavo"

[model_providers.kunavo]
name     = "kunavo"
base_url = "https://api.kunavo.com/v1"
env_key  = "KUNAVO_API_KEY"
wire_api = "responses"

La passerelle traduit la requête Responses en API Anthropic Messages, puis reconvertit la réponse au format Responses. Une réserve importante : Codex envoie des éléments opaques reasoning qu’un modèle natif de Responses est le seul à pouvoir consommer, et ceux-ci sont supprimés avant d’atteindre un fournisseur amont non-GPT. Le modèle perd son bloc-notes privé de la conversation précédente ; la transcription visible sur laquelle il travaille reste intacte. En pratique, cela réduit légèrement la continuité lors des longues chaînes de raisonnement, mais n’a aucun effet sur les boucles ordinaires modification-exécution-correction.

La question de savoir si c’est une bonne idée est distincte de celle de savoir si cela fonctionne. Si vous voulez spécifiquement Claude, Claude Code est conçu pour cela et transmet cache_control sans traduction. Mais si vous préférez le bac à sable de Codex CLI et souhaitez l’utiliser avec Claude, cette combinaison est disponible.

Coût d’une session

Les CLI agentiques renvoient l’invite système, l’historique de la tâche et le nouveau contexte des fichiers à chaque étape ; les tokens s’accumulent donc plus vite que ne le laisse penser le nombre d’étapes. Une étape typique représente environ 25 000 tokens en entrée et 1 200 en sortie :

UnitéTokens (entrée / sortie)gpt-5-6-solAu tarif catalogue d’OpenAI
Une étape agentique25,000 / 1,200$0.024$0.061
Une tâche de 20 étapes~500k / ~24k~$0.48~$1.21
Une journée intensive (5 tâches de ce type)—~$2.42~$6.05

Comme les tarifs de sortie diffèrent bien davantage entre les familles de modèles que ceux d’entrée, les tâches riches en sorties modifient le classement — saisissez vos propres chiffres dans le calculateur de coûts plutôt que de vous fier à un seul exemple détaillé. Les requêtes échouées ne sont pas facturées.

Quand la clé API est plus avantageuse qu’un abonnement

Un forfait ChatGPT inclut l’utilisation de Codex à un tarif mensuel fixe ; une clé API ne facture que ce que vous exécutez. La clé est avantageuse lorsque vous codez par périodes plutôt que quotidiennement, lorsque vous voulez des limites de dépenses par clé et une visibilité sur l’utilisation au lieu d’une allocation opaque, ou lorsque vous voulez un modèle que l’abonnement ne propose pas. Elle est moins avantageuse si vous êtes un utilisateur quotidien intensif — à ce volume, un tarif fixe est difficile à battre. Les deux options ne s’excluent pas : les profils Codex vous permettent de conserver les deux et de choisir selon la tâche.

Dépannage

SymptômeCause
404 à chaque requêteLe fournisseur ne propose pas /v1/responses, ou bien base_url inclut déjà le chemin — il doit se terminer par /v1.
401 UnauthorizedLa variable nommée par env_key est vide dans le shell qui a lancé Codex. Redémarrez le shell après l’avoir exportée.
Modèle introuvableLe slug ne correspond pas au catalogue. Les slugs utilisent des traits d’union : gpt-5-6-sol, et non gpt-5.3-codex.
wire_api rejetéSeul "responses" est accepté. Une configuration utilisant "chat" ne sera pas chargée.
Quota insuffisantLe solde du portefeuille est inférieur à l’estimation de la requête. Rechargez-le dans la facturation.

Questions fréquentes

Comment utiliser une clé API avec Codex CLI ?

Ajoutez un bloc [model_providers.NAME] à ~/.codex/config.toml avec base_url, env_key et wire_api = "responses", puis définissez model_provider sur ce nom. Codex lit la clé depuis la variable d'environnement indiquée par env_key — il ne stocke pas la clé dans le fichier de configuration. Avec Kunavo, la base URL est https://api.kunavo.com/v1 et la clé est une clé sk-kn- créée sur kunavo.com/app/keys.

Codex CLI peut-il utiliser un endpoint API personnalisé au lieu d'OpenAI ?

Oui, mais le fournisseur doit exposer l'API OpenAI Responses à l'adresse POST /v1/responses. Le bloc model_providers de Codex CLI n'accepte que wire_api = "responses" ; une passerelle qui propose uniquement /v1/chat/completions ne peut donc pas être configurée. Kunavo expose les deux, il fonctionne donc avec le bloc de configuration ci-dessus.

Ai-je besoin d'un abonnement ChatGPT Plus ou Pro pour exécuter Codex CLI ?

Non. Codex CLI peut se connecter avec un forfait ChatGPT ou fonctionner avec une clé API. La route par clé API facture par token sans frais mensuels ; c'est la formule la moins chère si vous codez par périodes plutôt que tous les jours, et c'est la seule route qui vous permet de pointer la CLI vers un autre fournisseur ou une autre famille de modèles.

Codex CLI peut-il exécuter des modèles Claude ?

Oui, via une passerelle qui expose l'API Responses. Codex CLI est lié au protocole, pas au modèle : il parle le format filaire Responses, et tout modèle de chat derrière cet endpoint peut répondre. Pointé vers Kunavo avec model = claude-opus-5, Codex CLI fonctionne de bout en bout, y compris les appels d'outils — la passerelle convertit Responses en API Anthropic Messages et inversement.

Pourquoi Codex CLI renvoie-t-il une erreur 404 avec mon fournisseur personnalisé ?

Presque toujours parce que le fournisseur n'implémente pas POST /v1/responses, ou parce que base_url contient déjà le chemin /responses. Codex ajoute lui-même le chemin ; base_url doit donc se terminer par /v1. Une erreur 401 signifie en revanche que la variable d'environnement indiquée par env_key est vide dans le shell qui a lancé Codex.

Où Codex CLI stocke-t-il la clé API ?

Nulle part. env_key désigne une variable d'environnement et Codex lit la clé dans l'environnement au lancement ; config.toml ne contient donc aucun secret et peut être validé sans risque dans le dépôt.

Ai-je besoin d'un abonnement ChatGPT ?

Non. Une clé est une alternative complète à la connexion, et la seule route qui prend en charge un fournisseur personnalisé ou un modèle autre que GPT.

Cela fonctionne-t-il avec Codex dans l'extension IDE ?

L'extension partage ~/.codex/config.toml avec la CLI, le même bloc de fournisseur s'applique donc. Redémarrez l'éditeur après l'avoir modifié.

Puis-je conserver OpenAI et une passerelle côte à côte ?

Oui — définissez plusieurs blocs [model_providers.*] et changez de fournisseur avec model_provider, ou encapsulez chacun dans un profil Codex et sélectionnez-le à chaque exécution.

Quelle est la différence avec Claude Code ?

Claude Code lit ANTHROPIC_BASE_URL et utilise l'API Messages ; le pointer vers une passerelle nécessite donc trois variables d'environnement et aucun fichier de configuration. La comparaison complète — surface d'extension, bac à sable, structure des coûts — se trouve dans Claude Code vs Codex CLI. Comme Codex est lié au protocole plutôt qu'au modèle, utiliser un modèle Claude derrière le même endpoint se résume à une modification d'une ligne ; la liste des tarifs de l'API Anthropic Claude fournit les tarifs par token de cette option.