Codex CLI con UberLLM: esegui l'agente di codifica di OpenAI su qualsiasi modello
Esporta UBERLLM_API_KEY, quindi aggiungi una tabella [model_providers.uberllm] a ~/.codex/config.toml con base_url https://api.uberllm.dev/v1, env_key UBERLLM_API_KEY e wire_api "responses", e imposta model_provider = "uberllm" più l'ID del modello. UberLLM gestisce le chiamate API Responses di Codex, quindi i comandi shell, le modifiche ai file e le attività multi-step funzionano su ogni modello di chat.
Passaggi
- Crea una chiave sulla tua pagina delle chiavi e aggiungi credito.
- Installa Codex se non lo hai:
npm install -g @openai/codex. - Metti la chiave nel tuo profilo shell (
~/.zshrco~/.bashrc) e apri un nuovo terminale:
export UBERLLM_API_KEY="ull_..."
- Apri
~/.codex/config.toml(crealo se manca) e aggiungi:
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"
- Esegui
codexin una cartella di progetto e dagli un compito.
Mantieni base_url che termina con /v1: Codex vi aggiunge /responses. env_key è il nome della variabile, non la chiave stessa.
Cambio modelli
Passa -m per una sessione, ad esempio codex -m deepseek/deepseek-v4.1-flash per una piccola correzione, o cambia model nel file. Qualsiasi ID di modello di chat da uberllm.dev/models funziona.
Per script e CI, codex exec esegue un'attività senza la schermata interattiva:
codex exec --skip-git-repo-check "add a docstring to every function in utils.py"
Impostazioni utili da aggiungere
model_context_window: Codex non conosce la dimensione del contesto dei modelli al di fuori dell'elenco di OpenAI e assume 272,000 token. Per un modello più piccolo, imposta il numero dalla sua pagina su uberllm.dev/models (ad esempiomodel_context_window = 131072), in modo che Codex compatti la conversazione prima che esaurisca lo spazio.model_reasoning_effort:"low","medium"o"high"viene passato ai modelli che "pensano" (DeepSeek, Kimi Thinking, GLM, GPT-5). Lascialo fuori per il default del modello.web_search = "disabled": La ricerca web di Codex viene eseguita sui server di OpenAI, quindi non può essere eseguita tramite un altro provider. Con essa disattivata, al modello non viene offerto uno strumento che non può usare.
Cosa funziona
Ogni strumento Codex è una normale chiamata di funzione dal lato dell'API, quindi le esecuzioni di comandi, le modifiche di file, i piani e i server MCP che aggiungi a Codex funzionano tutti su qualsiasi modello che accetta tool calls. Codex invia l'intera conversazione ad ogni turno (store = false), quindi nulla viene conservato su UberLLM tra una chiamata e l'altra. Ogni chiamata appare in Dashboard → Attività sotto il nome dell'app codex, con il suo costo.
Risoluzione dei problemi
wire_api = "chat"non è più supportato: Codex 0.95 e versioni successive supportano solo la Responses API. Impostawire_api = "responses".- 401 o "Missing environment variable: UBERLLM_API_KEY": la variabile non è esportata nel terminale in cui è in esecuzione Codex. Apri un nuovo terminale dopo aver modificato il tuo profilo, oppure esegui
export UBERLLM_API_KEY=...prima. - 404 ad ogni turno: A
base_urlmanca/v1. Deve essere esattamentehttps://api.uberllm.dev/v1. - "Model metadata for … not found. Defaulting to fallback metadata": Codex lo stampa per ogni modello al di fuori dell'elenco di OpenAI. È innocuo; imposta
model_context_windowcome sopra. - Il modello risponde ma non esegue mai un comando: scegli un modello dalla prima tabella. I modelli piccoli si discostano dal formato degli strumenti di Codex.
- 402 crediti insufficienti: aggiungi credito sulla pagina dei crediti. Per un limite massimo, imposta un limite di spesa sulla chiave.