Una clave de API de Codex es cualquier clave con la que Codex CLI pueda facturar por token en lugar de utilizar un plan de ChatGPT: una clave de API de OpenAI de platform.openai.com o una clave de proveedor como la de Kunavo sk-kn-, que Codex lee desde la variable de entorno indicada por env_key en un bloque model_providers. El proveedor debe ofrecer la API Responses; ese es el único requisito que se indica a continuación.
Codex CLI es el agente de programación de terminal open source de OpenAI y funciona mediante un inicio de sesión de ChatGPT o una clave de API. Conviene entender la ruta de la clave de API: factura por token sin cuota mensual y es la única ruta que permite dirigir la CLI a otro proveedor, o incluso a otra familia de modelos. Esta guía cubre la configuración operativa, el único requisito que causa problemas a la mayoría de las puertas de enlace y el coste real de una sesión.
El único requisito importante
Codex CLI es más estricto con los endpoints personalizados que la mayoría de las herramientas. Su bloque model_providers tiene una clave wire_api y acepta exactamente un valor: responses. Esto significa que un proveedor personalizado debe ofrecer la API Responses de OpenAI en POST /v1/responses, no la mucho más común /v1/chat/completions. La mayoría de las puertas de enlace compatibles con OpenAI solo ofrecen esta última, por lo que muchas no pueden ejecutar Codex CLI, independientemente de qué base_url les proporciones.
Kunavo ofrece ambas superficies, por lo que la configuración siguiente funciona tal como está escrita.
La configuración
Codex lee ~/.codex/config.toml. Dos claves de nivel superior seleccionan el modelo y el proveedor; el bloque del proveedor describe cómo acceder a él:
# ~/.codex/config.toml
model = "gpt-5-6-sol"
model_provider = "kunavo"
[model_providers.kunavo]
name = "kunavo"
base_url = "https://api.kunavo.com/v1"
env_key = "KUNAVO_API_KEY"
wire_api = "responses"Observa lo que no aparece en ese archivo: la propia clave. env_key nombra una variable de entorno y Codex lee la clave de ella al iniciarse, por lo que el archivo de configuración es seguro para incluirlo en commits o compartirlo.
# Codex reads the key from the variable named by env_key.
export KUNAVO_API_KEY="sk-kn-..." # create at kunavo.com/app/keys
# Persist it (pick the file your shell actually loads):
echo 'export KUNAVO_API_KEY="sk-kn-..."' >> ~/.zshrc
codex "explain the structure of this repository"Crea la clave en el panel después de registrarte y recargar $10. Se muestra una sola vez, así que guárdala de inmediato. Si codex ya se estaba ejecutando en otro shell, reinícialo: lee la variable al iniciarse, no en cada solicitud.
Verifica antes de depurar
Si algo falla, averigua si el problema está en la clave, el endpoint o la CLI. Una solicitud basta para resolverlo:
# Confirm the key and the endpoint before blaming Codex.
curl https://api.kunavo.com/v1/responses \
-H "Authorization: Bearer $KUNAVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5-6-sol",
"input": "Say OK and nothing else."
}'Una respuesta JSON significa que la clave y el endpoint son correctos y que cualquier problema restante está en config.toml. Un 401 significa que la clave es incorrecta o que la variable está vacía en este shell. Un 404 en model significa que el slug no coincide con el catálogo.
Qué modelo configurar
El valor de model es solo un slug en el mismo endpoint, por lo que cambiar de modelo requiere editar una sola palabra: no necesitas una clave nueva ni un bloque de proveedor nuevo.
| Tarea | Modelo | Entrada / salida de Kunavo (por 1 M) |
|---|---|---|
| Predeterminado especializado en programación | gpt-5-6-sol | $2.00 / $12.00 |
| Refactorizaciones y depuración más difíciles | claude-opus-5 | $3.50 / $17.50 |
| Codificación agentic diaria | claude-sonnet-5 | $1.40 / $7.00 |
| Ediciones rápidas y preguntas y respuestas | claude-haiku-4-5 | $0.70 / $3.50 |
gpt-5-6-sol es el GPT ajustado para programación y la opción predeterminada natural para esta CLI, a $2.00 / $12.00 por 1M de tokens frente al precio de lista de OpenAI de $5.00 / $30.00 — aunque actualmente OpenAI cobra un precio promocional de $4.00 / $20.00, disponible al menos hasta 21 de noviembre de 2026. Las tarifas completas de todos los modelos están en la página de precios.
Ejecutar modelos Claude en Codex CLI
Esto sorprende a muchas personas: Codex CLI está vinculado al protocolo, no al modelo. Utiliza el formato de transmisión Responses y responde cualquier modelo de chat situado detrás de ese endpoint. Dirígelo a claude-opus-5 y se ejecutará de extremo a extremo, incluidas las llamadas a herramientas; el agente seguirá leyendo archivos, proponiendo cambios y ejecutando comandos con normalidad.
# Same provider block, different model — no new key, no new config.
model = "claude-opus-5"
model_provider = "kunavo"
[model_providers.kunavo]
name = "kunavo"
base_url = "https://api.kunavo.com/v1"
env_key = "KUNAVO_API_KEY"
wire_api = "responses"La puerta de enlace traduce la solicitud de Responses a la API Anthropic Messages y vuelve a traducir la respuesta al formato Responses. Una salvedad importante: Codex envía elementos opacos reasoning que solo puede consumir un modelo nativo de Responses, y estos se descartan al enviarlos a un upstream que no sea GPT. El modelo pierde su bloc de notas privado de la ronda anterior; la transcripción visible con la que trabaja permanece intacta. En la práctica, esto reduce un poco la continuidad en cadenas largas de razonamiento y no afecta en absoluto a los ciclos normales de editar-ejecutar-corregir.
Que sea una buena idea es una cuestión distinta de que funcione. Si quieres Claude específicamente, Claude Code está diseñado para ello y pasa cache_control sin traducir. Pero si prefieres el aislamiento de Codex CLI y quieres utilizar Claude detrás de él, esa combinación está disponible.
Cuánto cuesta una sesión
Las CLI agénticas reenvían el prompt del sistema, el historial de la tarea y el contexto actualizado de los archivos en cada paso, por lo que los tokens se acumulan más rápido de lo que sugiere el número de pasos. Un paso típico utiliza aproximadamente 25.000 tokens de entrada y 1.200 de salida:
| Unidad | Tokens (entrada / salida) | gpt-5-6-sol | Según el precio de lista de OpenAI |
|---|---|---|---|
| Un paso agentivo | 25,000 / 1,200 | $0.024 | $0.061 |
| Una tarea de 20 pasos | ~500k / ~24k | ~$0.48 | ~$1.21 |
| Un día intenso (5 tareas así) | — | ~$2.42 | ~$6.05 |
Como las tarifas de salida difieren mucho más entre familias de modelos que las de entrada, el trabajo con mucha salida cambia el orden de clasificación: introduce tus propios números en la calculadora de costes en lugar de confiar en un único ejemplo calculado. Las solicitudes fallidas no se facturan.
Cuándo conviene más la ruta de la clave de API que una suscripción
Un plan de ChatGPT incluye el uso de Codex por una tarifa mensual fija; una clave de API factura solo lo que ejecutas. La ruta de la clave resulta ventajosa cuando programas por rachas en lugar de a diario, cuando quieres límites de gasto por clave y visibilidad del uso en lugar de una asignación opaca, o cuando quieres un modelo que la suscripción no ofrece. Pierde ventaja si eres un usuario intensivo diario: con ese volumen, es difícil superar una tarifa fija. Las rutas no son excluyentes: los perfiles de Codex permiten conservar ambas y cambiar entre ellas según la tarea.
Solución de problemas
| Síntoma | Causa |
|---|---|
404 en cada solicitud | El proveedor no ofrece /v1/responses o base_url ya incluye la ruta; debería terminar en /v1. |
401 Unauthorized | La variable indicada por env_key está vacía en el shell que inició Codex. Reinicia el shell después de exportarla. |
| Modelo no encontrado | El slug no coincide con el catálogo. Los slugs utilizan guiones: gpt-5-6-sol, no gpt-5.3-codex. |
wire_api rechazado | Solo se acepta "responses". Una configuración que utilice "chat" no se cargará. |
| Cuota insuficiente | El saldo de la cartera es inferior a la estimación de la solicitud. Recarga en facturación. |
Preguntas frecuentes
¿Cómo uso una clave de API con Codex CLI?
Añade un bloque [model_providers.NAME] a ~/.codex/config.toml con base_url, env_key y wire_api = "responses"; después, establece model_provider con ese nombre. Codex lee la clave desde la variable de entorno indicada por env_key; no guarda la clave en el archivo de configuración. Con Kunavo, la base URL es https://api.kunavo.com/v1 y la clave es una clave sk-kn- creada en kunavo.com/app/keys.
¿Puede Codex CLI usar un endpoint de API personalizado en lugar de OpenAI?
Sí, pero el proveedor debe ofrecer la API de OpenAI Responses en POST /v1/responses. El bloque model_providers de Codex CLI solo acepta wire_api = "responses", por lo que no se puede configurar una puerta de enlace que ofrezca únicamente /v1/chat/completions. Kunavo ofrece ambos, así que funciona con el bloque de configuración anterior.
¿Necesito una suscripción ChatGPT Plus o Pro para ejecutar Codex CLI?
No. Codex CLI puede iniciar sesión con un plan de ChatGPT o ejecutarse con una clave de API. La ruta de la clave de API factura por token sin cuota mensual, lo que resulta más económico si programas por rachas en lugar de todos los días, y es la única ruta que te permite dirigir la CLI a otro proveedor o familia de modelos.
¿Puede Codex CLI ejecutar modelos de Claude?
Sí, mediante una puerta de enlace que ofrezca la API Responses. Codex CLI está vinculado al protocolo, no al modelo: habla el formato de transmisión Responses y cualquier modelo de chat situado detrás de ese endpoint responde. Al dirigirlo a Kunavo con model = claude-opus-5, Codex CLI se ejecuta de extremo a extremo, incluidas las llamadas a herramientas; la puerta de enlace traduce Responses a la API Anthropic Messages y viceversa.
¿Por qué Codex CLI devuelve 404 con mi proveedor personalizado?
Casi siempre porque el proveedor no implementa POST /v1/responses o porque base_url ya incluye la ruta /responses. Codex añade la ruta por sí mismo, por lo que base_url debe terminar en /v1. Un 401, en cambio, significa que la variable de entorno indicada por env_key está vacía en el shell que inició Codex.
¿Dónde guarda Codex CLI la clave de API?
No la guarda. env_key nombra una variable de entorno y Codex lee la clave del entorno al iniciarse, por lo que config.toml no contiene ningún secreto y es seguro incluirlo en commits.
¿Necesito una suscripción de ChatGPT?
No. Una clave es una alternativa completa al inicio de sesión y la única ruta que admite un proveedor personalizado o un modelo que no sea GPT.
¿Funciona con Codex en la extensión del IDE?
La extensión comparte ~/.codex/config.toml con la CLI, por lo que se aplica el mismo bloque de proveedor. Reinicia el editor después de editarlo.
¿Puedo mantener OpenAI y una puerta de enlace uno al lado del otro?
Sí: define varios bloques [model_providers.*] y cambia entre ellos con model_provider, o incluye cada uno en un perfil de Codex y selecciónalo en cada ejecución.
¿Cómo se compara con Claude Code?
Claude Code lee ANTHROPIC_BASE_URL y utiliza la API Messages, por lo que dirigirlo a una puerta de enlace requiere tres variables de entorno y ningún archivo de configuración. La comparación completa —superficie de la extensión, aislamiento y estructura de costes— está en Claude Code frente a Codex CLI. Como Codex está vinculado al protocolo y no al modelo, usar un modelo de Claude detrás del mismo endpoint requiere cambiar una sola línea; la lista de precios de la API Anthropic Claude contiene las tarifas por token para ese lado del cambio.