NuevoConecta cualquier agente a UberLLM: una clave, todos los modelos, a precio de lista o menos.
UberLLM

Codex CLI con UberLLM: ejecuta el agente de codificación de OpenAI en cualquier modelo

Exporta UBERLLM_API_KEY, luego añade una tabla [model_providers.uberllm] a ~/.codex/config.toml con base_url https://api.uberllm.dev/v1, env_key UBERLLM_API_KEY y wire_api "responses", y configura model_provider = "uberllm" más el model id. UberLLM atiende las llamadas de la Responses API de Codex, por lo que los shell commands, las file edits y las multi-step tasks funcionan en cualquier chat model.

Pasos

  1. Crea una clave en tu página de claves y añade crédito.
  2. Instala Codex si no lo tienes: npm install -g @openai/codex.
  3. Pon la clave en tu perfil de shell (~/.zshrc o ~/.bashrc) y abre una nueva terminal:
export UBERLLM_API_KEY="ull_..."
  1. Abre ~/.codex/config.toml (créalo si no existe) y añade:
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"
  1. Ejecuta codex en una carpeta de proyecto y asígnale una tarea.

Mantén base_url terminando en /v1: Codex le añade /responses. env_key es el nombre de la variable, no la clave en sí.

Cambiar modelos

Pasa -m para una sesión, por ejemplo codex -m deepseek/deepseek-v4.1-flash para una pequeña corrección, o cambia model en el archivo. Cualquier ID de modelo de chat de uberllm.dev/models funciona.

Para scripts y CI, codex exec ejecuta una tarea sin la pantalla interactiva:

codex exec --skip-git-repo-check "add a docstring to every function in utils.py"

Ajustes que vale la pena añadir

  • model_context_window: Codex no conoce el tamaño de contexto de los modelos fuera de la lista de OpenAI y asume 272,000 tokens. Para un modelo más pequeño, establece el número de su página en uberllm.dev/models (por ejemplo, model_context_window = 131072), para que Codex compacte la conversación antes de quedarse sin espacio.
  • model_reasoning_effort: "low", "medium" o "high" se pasa a los modelos que piensan (DeepSeek, Kimi Thinking, GLM, GPT-5). Omítelo para el valor predeterminado del modelo.
  • web_search = "disabled": La búsqueda web de Codex se ejecuta en los propios servidores de OpenAI, por lo que no puede ejecutarse a través de otro proveedor. Al desactivarlo, no se le ofrece al modelo una herramienta que no puede usar.

Qué funciona

Cada herramienta de Codex es una llamada de función normal desde el lado de la API, así que las ejecuciones de comandos, ediciones de archivos, planes y servidores MCP que añades a Codex, todo funciona en cualquier modelo que acepte llamadas a herramientas. Codex envía toda la conversación en cada turno (store = false), así que nada se guarda en UberLLM entre llamadas. Cada llamada aparece en Dashboard → Activity bajo el nombre de la aplicación codex, con su costo.

Solución de problemas

  • wire_api = "chat" ya no es compatible: Codex 0.95 y posteriores solo entienden la Responses API. Establece wire_api = "responses".
  • 401 o "Missing environment variable: UBERLLM_API_KEY": la variable no está exportada en la terminal donde se ejecuta Codex. Abre una nueva terminal después de editar tu perfil, o ejecuta export UBERLLM_API_KEY=... primero.
  • 404 en cada turno: a base_url le falta /v1. Debe ser exactamente https://api.uberllm.dev/v1.
  • "Model metadata for … not found. Defaulting to fallback metadata": Codex imprime esto para cada modelo fuera de la lista propia de OpenAI. Es inofensivo; establece model_context_window como arriba.
  • El modelo responde pero nunca ejecuta un comando: elige un modelo de la primera tabla. Los modelos pequeños se desvían del formato de herramienta de Codex.
  • 402 créditos insuficientes: añade crédito en la página de créditos. Para un límite estricto, establece un límite de gasto en la key.

Sigue leyendo

Models que impulsan bien Codex

Todos admiten tool calls, que Codex utiliza para cada comando y edición. El primero está en la configuración a continuación.

ModeloID del modelo (pega esto)Precio actual
Kimi K3moonshotai/kimi-k3$0.0010 entrada · $0.0788 salida / 1M
DeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flash$0.00018 entrada · $0.0014 salida / 1M
GLM 5.3z-ai/glm-5.3$0.00070 entrada · $0.0141 salida / 1M
Claude Sonnet 5.5anthropic/claude-sonnet-5.5$0.1099 entrada · $0.5495 salida / 1M
Qwen 3 Coder 480bqwen/qwen3-coder$0.0030 entrada · $0.0099 salida / 1M
GPT-5.5openai/gpt-5.5$0.1250 entrada · $0.7500 salida / 1M
Claude Opus 5.5anthropic/claude-opus-5.5$0.1579 entrada · $0.7897 salida / 1M
DeepSeek V4 Prodeepseek/deepseek-v4-pro$0.0016 entrada · $0.0032 salida / 1M
MiniMax M3minimax/minimax-m3$0.0180 entrada · $0.0719 salida / 1M

Precios de la última actualización horaria, sin comisión añadida · todos los modelos →

Models más económicos para tareas pequeñas y codex exec scripts

ModeloID del modelo (pega esto)Precio actual
DeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flash$0.00018 entrada · $0.0014 salida / 1M
GLM 5.3z-ai/glm-5.3$0.00070 entrada · $0.0141 salida / 1M
Qwen 3 Coder 480bqwen/qwen3-coder$0.0030 entrada · $0.0099 salida / 1M
DeepSeek V3.2deepseek/deepseek-v3.2$0.0026 entrada · $0.0039 salida / 1M
GPT-OSS 120Bopenai/gpt-oss-120b$0.000069 entrada · $0.00030 salida / 1M
Kimi K2 Thinkingmoonshotai/kimi-k2-thinking$0.0059 entrada · $0.0248 salida / 1M

Precios de la última actualización horaria, sin comisión añadida · todos los modelos →

Preguntas frecuentes

¿Funciona Codex CLI con UberLLM?

Sí. Añade un proveedor de modelo en ~/.codex/config.toml con base_url https://api.uberllm.dev/v1, env_key UBERLLM_API_KEY y wire_api "responses". UberLLM sirve la API de Responses (POST /v1/responses) que Codex llama, con streaming y tool calls.

¿Qué models puedo usar en Codex a través de UberLLM?

Cualquier modelo de chat en el catálogo de UberLLM que admita tool calls, como DeepSeek, GLM, Kimi, Qwen Coder, Claude y GPT. Establece el modelo a su id, por ejemplo deepseek/deepseek-v4.1-flash.

¿Necesito previous_response_id o stored responses para Codex?

No. Codex envía la conversación completa en cada solicitud con store configurado en false, por lo que UberLLM no guarda nada entre llamadas.