# Codex

Codex habla con los modelos a través de la API Responses. Añade en config.toml un proveedor que apunte a NezhaGate y programa con los modelos GPT de NezhaGate.

> https://nezhagate.com/es/docs/integrations/codex

Escrita con Codex CLI 0.160

## Antes de empezar

- Instala la CLI de Codex, o la extensión de Codex en VS Code, Cursor o Windsurf, y crea una clave de API en la consola.

- Codex solo usa la API Responses de OpenAI (`/v1/responses`), donde NezhaGate ofrece los modelos GPT. Para Claude, Gemini y los demás modelos, usa el endpoint de chat o una herramienta como [Claude Code](https://nezhagate.com/es/docs/integrations/claude-code).

Modelos que puedes usar en Codex:

`gpt-5.6-sol` · `gpt-5.6-terra` · `gpt-5.6-luna` · `gpt-5.5` · `gpt-6-astra` · `gpt-6.1-sol` · `gpt-6-sol` · `gpt-6-luna`

## Añade un proveedor en config.toml

Abre `~/.codex/config.toml` (`%USERPROFILE%\.codex\config.toml` en Windows), créalo si no existe, y añade:

```
model = "gpt-6.1-sol"
model_provider = "nezhagate"
web_search = "disabled"

[model_providers.nezhagate]
name = "NezhaGate"
base_url = "https://nezhagate.com/v1"
wire_api = "responses"
env_key = "NEZHAGATE_API_KEY"
```

- Las claves de nivel superior, como `model` y `model_provider`, deben ir antes de la primera tabla `[...]`; si no, Codex las lee como parte de esa tabla.

- `web_search = "disabled"`: la búsqueda web integrada de Codex depende de una herramienta alojada por OpenAI que no está garantizada con otro proveedor, así que desactívala.

- El proveedor debe estar en el config.toml de nivel de usuario: `model_provider` en el `.codex/config.toml` de un proyecto se ignora. El ID del proveedor no puede ser `openai`, `ollama` ni `lmstudio`; Codex los reserva.

## Define la clave de API

Codex lee la clave de la variable de entorno `NEZHAGATE_API_KEY` (el `env_key` de arriba) y la envía como `Authorization: Bearer`; no hace falta `codex login`.

```
export NEZHAGATE_API_KEY=YOUR_API_KEY
codex
```

```
setx NEZHAGATE_API_KEY "YOUR_API_KEY"
```

En macOS / Linux, pon la línea `export` en `~/.zshrc` o `~/.bashrc` para que se mantenga. En Windows, vuelve a abrir la terminal o VS Code después de `setx` para que recoja la variable.

## Ejecuta y comprueba

Ejecuta el siguiente comando; si la respuesta es `gateway-ok`, ya estás conectado:

```
codex exec "Reply with exactly: gateway-ok"
```

- Escribe `/status` en Codex para ver el modelo y el proveedor actuales.

- Para cambiar de modelo, arranca con `codex -m gpt-6.1-sol` o cambia `model` en config.toml. El menú `/model` de Codex solo lista sus propios modelos integrados, no la lista de NezhaGate.

- Después, pide algo que necesite una herramienta (por ejemplo, lista los archivos de esta carpeta) para comprobar que las llamadas a herramientas también funcionan.

## La extensión para IDE

La extensión de Codex en VS Code, Cursor y Windsurf lee el mismo config.toml: icono de engranaje en el panel de la extensión → **Codex Settings** → **Open config.toml**. Reinicia el editor después de editarlo, y asegúrate de que un editor no abierto desde una terminal pueda ver la variable de la clave de API.

## Errores habituales

**Missing environment variable: `NEZHAGATE_API_KEY`**

El proceso que inició Codex no ve la variable: defínela en la misma terminal antes de ejecutar; reinicia el IDE o la aplicación de escritorio, y en Windows vuelve a abrirla después de `setx`.

**`wire_api = "chat"` is no longer supported**

Una configuración antigua: cambia `wire_api` a `"responses"`.

**unexpected status 401**

La clave está mal: comprueba que la copiaste completa, sin espacios de más, o si se desactivó.

**unexpected status 404**

A `base_url` le falta `/v1`. Debería ser `https://nezhagate.com/v1`; Codex añade `/responses` por su cuenta.

**Errores al elegir un modelo Claude, Gemini u otro que no sea GPT**

Codex solo usa `/v1/responses`, donde NezhaGate solo ofrece los modelos GPT. Cambia a uno de los modelos GPT de la lista de arriba.

**stream disconnected before completion**

El streaming se cortó antes de terminar, normalmente por un proxy local o por la red. Reintenta, y si pasa a menudo, revisa tu proxy.
