Codex CLI avec UberLLM : exécutez l'agent de codage d'OpenAI sur n'importe quel modèle
Exportez UBERLLM_API_KEY, puis ajoutez une table [model_providers.uberllm] à ~/.codex/config.toml avec base_url https://api.uberllm.dev/v1, env_key UBERLLM_API_KEY et wire_api "responses", et définissez model_provider = "uberllm" ainsi que l'ID du modèle. UberLLM gère les appels de l'API Responses de Codex, ainsi les commandes shell, les modifications de fichiers et les tâches en plusieurs étapes fonctionnent sur chaque modèle de chat.
Étapes
- Créez une clé sur votre page des clés et ajoutez du crédit.
- Installez Codex si vous ne l'avez pas :
npm install -g @openai/codex. - Placez la clé dans votre profil shell (
~/.zshrcou~/.bashrc) et ouvrez un nouveau terminal :
export UBERLLM_API_KEY="ull_..."
- Ouvrez
~/.codex/config.toml(créez-le s'il est manquant) et ajoutez :
model = "moonshotai/kimi-k3"
model_provider = "uberllm"
web_search = "disabled"
[model_providers.uberllm]
name = "UberLLM"
base_url = "https://api.uberllm.dev/v1"
env_key = "UBERLLM_API_KEY"
wire_api = "responses"
- Exécutez
codexdans un dossier de projet et donnez-lui une tâche.
Gardez base_url se terminant par /v1 : Codex y ajoute /responses. env_key est le nom de la variable, pas la clé elle-même.
Changer de modèles
Passez -m pour une session, par exemple codex -m deepseek/deepseek-v4.1-flash pour une petite correction, ou modifiez model dans le fichier. N'importe quel ID de modèle de chat depuis uberllm.dev/models fonctionne.
Pour les scripts et CI, codex exec exécute une tâche sans l'écran interactif :
codex exec --skip-git-repo-check "add a docstring to every function in utils.py"
Paramètres utiles à ajouter
model_context_window: Codex ne connaît pas la taille du contexte des modèles en dehors de la liste d'OpenAI et suppose 272,000 tokens. Pour un modèle plus petit, définissez le nombre à partir de sa page sur uberllm.dev/models (par exemplemodel_context_window = 131072), afin que Codex compacte la conversation avant de manquer d'espace.model_reasoning_effort:"low","medium"ou"high"est transmis aux modèles qui pensent (DeepSeek, Kimi Thinking, GLM, GPT-5). Laissez-le vide pour la valeur par défaut du modèle.web_search = "disabled": La recherche web de Codex s'exécute sur les propres serveurs d'OpenAI, elle ne peut donc pas passer par un autre fournisseur. Si elle est désactivée, le modèle ne se voit pas proposer un outil qu'il ne peut pas utiliser.
Ce qui fonctionne
Chaque outil Codex est un appel de fonction normal du côté de l'API, donc les exécutions de commandes, les modifications de fichiers, les plans et les serveurs MCP que vous ajoutez à Codex fonctionnent tous sur n'importe quel modèle qui prend en charge les appels d'outils. Codex envoie toute la conversation à chaque tour (store = false), donc rien n'est conservé sur UberLLM entre les appels. Chaque appel apparaît dans Dashboard → Activity sous le nom de l'application codex, avec son coût.
Dépannage
wire_api = "chat"n'est plus pris en charge : Codex 0.95 et versions ultérieures ne communiquent qu'avec l'API Responses. Définissezwire_api = "responses".- 401 ou « Missing environment variable: UBERLLM_API_KEY » : la variable n'est pas exportée dans le terminal où Codex s'exécute. Ouvrez un nouveau terminal après avoir modifié votre profil, ou exécutez
export UBERLLM_API_KEY=...d'abord. - 404 à chaque tour : Il manque
/v1àbase_url. Il doit être exactementhttps://api.uberllm.dev/v1. - « Model metadata for … not found. Defaulting to fallback metadata » : Codex affiche ceci pour chaque modèle en dehors de la liste d'OpenAI. C'est inoffensif ; définissez
model_context_windowcomme ci-dessus. - Le modèle répond mais n'exécute jamais de commande : choisissez un modèle dans le premier tableau. Les petits modèles s'écartent du format d'outil de Codex.
- 402 crédits insuffisants : ajoutez du crédit sur la page des crédits. Pour un plafond strict, définissez une limite de dépenses sur la clé.