Aller au contenu
Inscrivez-vous gratuitement
Configuration des Coding Agents

Codex CLI/App : fournisseur tiers, API Key et Base URL

Configurez Codex CLI et Codex App avec config.toml, auth.json, une BetterToken API Key et le Base URL Responses. Avec configuration, exemples et dépannage.

Codex CLI et Codex App partagent config.toml et auth.json pour les tâches locales. Cette configuration utilise une BetterToken API Key via OpenAI Responses.

Paramètres principaux

ChampValeur
API Keyauth.json → OPENAI_API_KEY
Base URLhttps://bettertoken.ai/v1
Modèlegpt-6-astra

Prérequis

  • Installez Node.js si vous utilisez npm ou le script de configuration automatique BetterToken
  • Créez une BetterToken API Key
  • Copiez un Model ID depuis le model plaza ou la boîte de dialogue Setup de l’API Key
Inscrivez-vous et obtenez une BetterToken API Key

Vous avez déjà un compte ? Connectez-vous, rechargez votre solde, puis créez une clé dans la console.

Installation

Vous pouvez utiliser les installateurs autonomes officiels pour macOS/Linux ou Windows sans Node.js. Si vous préférez npm, installez d’abord Node.js, puis exécutez :

Fenêtre de terminal
npm install -g @openai/codex

Localisez les fichiers et sauvegardez-les

Si vous avez défini un CODEX_HOME personnalisé, modifiez config.toml et auth.json dans ce répertoire. Sinon, utilisez ~/.codex sur macOS / Linux ou %USERPROFILE%\.codex sur Windows. CLI et App doivent utiliser le même répertoire. WSL possède son propre répertoire utilisateur.

Quittez complètement Codex avant toute modification. Sauvegardez les deux fichiers dans un emplacement privé. Créez les fichiers manquants. Remplacez les paramètres existants sans dupliquer les clés ni les tables ; conservez les autres paramètres.

Configuration par la ligne de commande

Le script de configuration automatique BetterToken écrit la configuration du fournisseur Codex. Il nécessite Node.js et demande l’API Key ou le Model ID s’ils ne sont pas transmis en arguments.

macOS / Linux

Fenêtre de terminal
curl -fsSL "https://bettertoken.ai/install-codex-provider.sh" | bash

Windows

Fenêtre de terminal
iwr "https://bettertoken.ai/install-codex-provider.ps1" -OutFile "$env:TEMP\install-codex-provider.ps1"; powershell -ExecutionPolicy Bypass -File "$env:TEMP\install-codex-provider.ps1"

Après l’installation, comparez les deux fichiers à la configuration manuelle ci-dessous et corrigez les différences avant de lancer Codex.

Configuration manuelle

Modifiez config.toml

Cette page utilise le config.toml utilisateur. Placez les clés racine avant toutes les tables TOML, pas dans [projects."<path>"] ; cette table contient le trust_level du projet. L’ID sélectionné doit correspondre au nom de la table. Pour l’authentification par fichier, retirez env_key et experimental_bearer_token du provider sélectionné.

model_provider = "bettertoken"
model = "gpt-6-astra"
cli_auth_credentials_store = "file"
[model_providers.bettertoken]
name = "BetterToken"
base_url = "https://bettertoken.ai/v1"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = false

L’exemple utilise GPT-6 Astra (gpt-6-astra). Pour un autre modèle, copiez son ID complet depuis la model plaza et remplacez model. GPT, Kimi et GLM utilisent la même structure d’authentification par fichiers ; la configuration automatique est disponible pour GPT.

Modifiez auth.json

auth.json se trouve dans le même répertoire que config.toml. Si auth.json n’existe pas, créez ce fichier dans ce répertoire. Utilisez le JSON suivant comme contenu du fichier, remplacez YOUR_API_KEY par votre BetterToken API Key, puis enregistrez le fichier.

{
"auth_mode": "apikey",
"OPENAI_API_KEY": "YOUR_API_KEY"
}

Paramètres de configuration

ParamètreRôle et emplacementValeurs par défaut et exemples
model_providerRacine du fichier utilisateur ; sélectionne l’ID défini ci-dessous.Par défaut openai ; ici bettertoken.
modelRacine ; Model ID complet de la place des modèles.Exemple : gpt-6-astra, à remplacer au besoin.
cli_auth_credentials_storeRacine ; stockage des identifiants de connexion.Ici file : lit auth.json dans le même répertoire.
nameTable du provider ; nom affiché uniquement.BetterToken n’est pas un Model ID.
base_urlTable du provider ; Base URL de l’API du modèle.Utilisez https://bettertoken.ai/v1 ; Codex ajoute /responses.
wire_apiTable du provider ; protocole des requêtes.Seul responses est actuellement accepté ; c’est aussi la valeur par défaut.
requires_openai_authTable du provider ; authentification OpenAI et stockage associé.Par défaut false ; ici true. Ce n’est pas un bouton de conservation du fichier de connexion.
supports_websocketsTable du provider ; prise en charge de Responses WebSocket.Par défaut false ; cette configuration conserve HTTP/SSE.
auth_modeDans auth.json ; mode d’authentification.Ici apikey : remplace l’authentification officielle ChatGPT.
OPENAI_API_KEYDans auth.json ; clé pour l’authentification API.Remplacez YOUR_API_KEY par BetterToken API Key.

L’authentification par fichier passe ici au mode API Key. Pour conserver le compte officiel, utilisez la configuration dédiée ; ne mélangez pas les modes. Ils diffèrent par l’objectif d’authentification, pas par CLI, App ou Extension.

Réglages facultatifs

Ces trois réglages sont facultatifs et ne conditionnent pas la connexion. Ajoutez-les à la table existante [model_providers.bettertoken] au besoin ; ne créez pas de doublon.

request_max_retries = 4
stream_max_retries = 8
stream_idle_timeout_ms = 300000
ParamètreRôle et emplacementValeurs par défaut et exemples
request_max_retriesTable du provider ; nombre maximal de nouvelles tentatives HTTP.Par défaut 4 ; adaptez à la connexion.
stream_max_retriesTable du provider ; reconnexions après interruption du flux.Par défaut 5 ; 8 est un réglage personnalisé facultatif.
stream_idle_timeout_msTable du provider ; délai d’inactivité du flux en millisecondes.Par défaut 300000 ; ce n’est pas la durée totale de la tâche.

Couches de configuration et anciennes clés

Ne placez pas modèle ou raisonnement dans [projects."<path>"]. Un modèle propre au projet peut utiliser les clés racine de .codex/config.toml dans un projet approuvé ; provider et authentification restent dans le fichier utilisateur. Les profils actuels utilisent NAME.config.toml sous CODEX_HOME, choisi avec codex --profile NAME, pas les anciennes tables [profiles.NAME] ni le sélecteur racine profile.

Vérifier la connexion

Enregistrez les deux fichiers. Lancez une nouvelle session Codex CLI directement dans le terminal :

Fenêtre de terminal
codex

Quittez complètement Codex App, y compris les processus en arrière-plan. Rouvrez l’application et créez une nouvelle tâche locale. Envoyez une courte consigne dans chaque client utilisé. Une réponse normale vérifie la connexion de ce client.

Codex CLI 0.164.0 a également réussi les tests d’authentification par variables d’environnement, y compris les appels d’outils de lecture de fichiers : env_key fonctionne avec requires_openai_auth = false et lorsque ce champ est omis.

Changer de modèle

Modifiez model et, si nécessaire, review_model. Enregistrez le fichier, arrêtez le processus Codex en cours et relancez-le. Utilisez le Model ID de la boîte de dialogue Setup ou du model plaza.

Erreurs fréquentes

En cas de 401, 403 ou de demande de connexion, vérifiez le répertoire actif, la Key dans auth.json, auth_mode = apikey, cli_auth_credentials_store = file et requires_openai_auth = true. Pour une erreur de fournisseur ou de modèle, vérifiez l’ID du fournisseur, https://bettertoken.ai/v1, wire_api = responses et la disponibilité du modèle. Si les changements ne s’appliquent pas, vérifiez les paramètres prioritaires et assurez-vous que CLI et App utilisent le même CODEX_HOME.

Configuration avancée

Extension Codex

CLI, App et Extension partagent la configuration avec le même CODEX_HOME. Choisissez l’authentification selon l’objectif : API Key ou maintien de la connexion officielle.

guide de configuration de l’extension Codex

Questions associées

Référence officielle

Détails techniques

Protocole Responses

Codex utilise OpenAI Responses. Définissez base_url sur https://bettertoken.ai/v1 et conservez wire_api = "responses". Codex ajoute /responses.