Codex CLI com UberLLM: execute o agente de codificação da OpenAI em qualquer modelo
Exporte UBERLLM_API_KEY, então adicione uma tabela [model_providers.uberllm] a ~/.codex/config.toml com base_url https://api.uberllm.dev/v1, env_key UBERLLM_API_KEY e wire_api "responses", e defina model_provider = "uberllm" mais o ID do modelo. UberLLM atende às chamadas da Responses API do Codex, assim, comandos de shell, edições de arquivo e tarefas multi-etapas funcionam em qualquer modelo de chat.
Passos
- Crie uma chave na sua página de chaves e adicione crédito.
- Instale o Codex se ainda não o tiver:
npm install -g @openai/codex. - Coloque a chave no seu perfil do shell (
~/.zshrcou~/.bashrc) e abra um novo terminal:
export UBERLLM_API_KEY="ull_..."
- Abra
~/.codex/config.toml(crie-o se não existir) e adicione:
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"
- Execute
codexem uma pasta de projeto e dê uma tarefa a ele.
Mantenha base_url terminando em /v1: o Codex adiciona /responses a ele. env_key é o nome da variável, não a chave em si.
Trocar modelos
Passe -m para uma sessão, por exemplo codex -m deepseek/deepseek-v4.1-flash para uma pequena correção, ou mude model no arquivo. Qualquer ID de modelo de chat de uberllm.dev/models](uberllm.dev/models](/models)) funciona.
Para scripts e CI, codex exec executa uma tarefa sem a tela interativa:
codex exec --skip-git-repo-check "add a docstring to every function in utils.py"
Configurações que valem a pena adicionar
model_context_window: O Codex não sabe o tamanho do contexto de modelos fora da lista da OpenAI e assume 272,000 tokens. Para um modelo menor, defina o número da sua página em uberllm.dev/models (por exemplomodel_context_window = 131072), para que o Codex compacte a conversa antes que ela fique sem espaço.model_reasoning_effort:"low","medium"ou"high"é passado para modelos que pensam (DeepSeek, Kimi Thinking, GLM, GPT-5). Deixe de fora para o padrão do modelo.web_search = "disabled": A pesquisa web do Codex roda nos próprios servidores da OpenAI, então não pode ser executada através de outro provedor. Com ela desativada, o modelo não recebe uma ferramenta que não pode usar.
O que funciona
Cada ferramenta Codex é uma chamada de função normal do lado da API, então execuções de comandos, edições de arquivos, planos e servidores MCP que você adiciona ao Codex funcionam em qualquer modelo que aceite chamadas de ferramenta. Codex envia a conversa inteira a cada turno (store = false), então nada é mantido no UberLLM entre as chamadas. Cada chamada aparece em Dashboard → Atividade sob o nome do aplicativo codex, com seu custo.
Solução de Problemas
wire_api = "chat"não é mais suportado: Codex 0.95 e posteriores só se comunicam com a API de Respostas. Definawire_api = "responses".- 401 ou "Missing environment variable: UBERLLM_API_KEY": a variável não está exportada no terminal onde o Codex é executado. Abra um novo terminal depois de editar seu perfil, ou execute
export UBERLLM_API_KEY=...primeiro. - 404 a cada turno:
base_urlestá faltando/v1. Deve ser exatamentehttps://api.uberllm.dev/v1. - "Model metadata for … not found. Defaulting to fallback metadata": O Codex exibe isso para todo modelo fora da lista própria da OpenAI. É inofensivo; defina
model_context_windowcomo acima. - O modelo responde, mas nunca executa um comando: escolha um modelo da primeira tabela. Modelos pequenos se desviam do formato de ferramenta do Codex.
- 402 créditos insuficientes: adicione crédito na página de créditos. Para um limite rígido, defina um limite de gastos na chave.