> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flexinference.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Codex

> Dirige Codex a FlexInference con una clave que incluye la fecha límite.

[Codex](https://developers.openai.com/codex/cli) construye su propio cuerpo de solicitud, por lo que no tienes dónde colocar `start_within`. La fecha límite se establece en la clave en su lugar. Primero, crea una (consulta [claves de agente](/es/agent-keys)).

## Configúralo con un agente

Abre el bloque siguiente y cópialo en cualquier agente de codificación. El prompt nunca te pide tu clave API: el agente configura todo lo demás y luego imprime la línea de exportación para que la ejecutes tú mismo.

<Accordion title="Copiar prompt de configuración del agente">
  ```text theme={null}
  Configure the Codex CLI to send its requests to FlexInference. Do not change my existing Codex setup: create a separate profile I opt into per run.

  You will never see or handle my API key. The profile stores only the NAME of an environment variable, and I export the value myself. Do not ask me for the key, and do not read it from my environment.

  1. Create `~/.codex/flexinference.config.toml` with exactly this content:

  model = "gpt-5.6-sol"
  model_provider = "flexinference"

  [model_providers.flexinference]
  name = "FlexInference"
  base_url = "https://api.flexinference.com/v1"
  wire_api = "responses"
  env_key = "FLEX_API_KEY"

  2. Tell me to export the key myself, in the shell I will run Codex from:

     export FLEX_API_KEY=<paste your key here>

     Print that line for me to run. Do not run it, do not ask for the value, and do not add it to my shell profile.

  3. Tell me to start Codex with `codex --profile flexinference`.

  Rules that matter, do not deviate:
  - Keep the `model` line. Codex defaults to a slug ending in `-codex`, which FlexInference recognizes but holds no price for and never races. Use the full `gpt-5.6-sol`; the bare `gpt-5.6` alias makes Codex print a metadata warning.
  - Keep `wire_api = "responses"`. FlexInference serves that surface at `/v1/responses`.
  - Never add `service_tier`. FlexInference derives the tier from the key's deadline and returns `400 service_tier_not_allowed` if the request carries its own.
  - `env_key` and `auth` are mutually exclusive. Use `env_key` unless I ask for a keychain helper.
  - Do not set `request_max_retries`. My key may carry its own retry policy and the two stack.

  Verify by checking the file parses under `codex --profile flexinference --strict-config`, then report what you changed.
  ```
</Accordion>

## Configurar Codex

Codex mantiene cada perfil en su propio archivo. Este perfil deja intacta tu configuración habitual de Codex, y tú optas por usarlo en cada ejecución con `--profile`.

1. Escribe el archivo de perfil. Pega esto una vez:

```bash theme={null}
mkdir -p ~/.codex && cat > ~/.codex/flexinference.config.toml <<'EOF'
model = "gpt-5.6-sol"
model_provider = "flexinference"

[model_providers.flexinference]
name = "FlexInference"
base_url = "https://api.flexinference.com/v1"
wire_api = "responses"
env_key = "FLEX_API_KEY"
EOF
```

2. Exporta la clave que Codex lee. El archivo de perfil nunca la contiene.

```bash theme={null}
export FLEX_API_KEY=flex_live_...
```

3. Inicia Codex con el perfil.

```bash theme={null}
codex --profile flexinference
```

Esa es toda la integración. Codex llama a `/v1/responses`, envía la clave como un token de portador, y la clave proporciona la fecha límite. El encabezado de sesión nombra al proveedor en uso, para que puedas ver que el perfil se aplicó.

Para contactarnos en cada ejecución de Codex, coloca las mismas líneas en `~/.codex/config.toml`. Los campos `model` y `model_provider` de nivel superior allí establecen tu valor predeterminado.

`env_key` y `auth` son mutuamente excluyentes. `env_key` lee la clave de tu entorno, que es la ruta corta. Mantén los secretos en un llavero en su lugar y omite `env_key`, luego nombra un comando auxiliar en `auth`.

Mantén la línea `model`. De lo contrario, Codex por defecto usa un slug que termina en `-codex`, para el cual no tenemos un precio y nunca competimos. Usa el `gpt-5.6-sol` completo, porque el alias simple `gpt-5.6` hace que Codex imprima una advertencia de metadatos.

## Confirmar que la clave se aplicó

Cada respuesta viene con `x-flexinference-defaults-applied`. Codex no muestra los encabezados de respuesta, así que lee la solicitud en el panel de control bajo **Logs** en su lugar.

## Solución de problemas

**Nada nos llega en absoluto.** Ejecutaste un `codex` simple, que usa tu proveedor y cuenta habituales. Inícialo con `--profile flexinference`. Cualquier error que hayas visto es de ellos, incluidos los límites de uso, y el encabezado de sesión nombra al proveedor en uso.

**[`400 model_not_priced_for_managed`](/es/errors#model_not_priced_for_managed).** `model` no está configurado, por lo que la solicitud llegó con un slug `-codex` para el cual no tenemos un precio. Configura `model = "gpt-5.6-sol"` en el perfil. Con tu propia clave de proveedor, ejecutamos ese slug en su lugar, sin una cifra de costo nuestra.

**[`400 service_tier_not_allowed`](/es/errors#service_tier_not_allowed).** El perfil establece `service_tier`, y nosotros leemos el nivel de la fecha límite en su lugar. Elimina la línea.

**[`400 key_default_not_applicable`](/es/errors#key_default_not_applicable) nombrando una ruta fijada.** La solicitud fija una ruta en la nube como `foundry`, que no tiene un nivel económico para competir. Elimina la ruta fijada o edita la clave a un nivel.

**Cada solicitud gasta un presupuesto completo de reintentos.** Codex tiene su propio `request_max_retries`, y una política de `retry` de la clave se acumula con él. Configura uno u otro, no ambos.

**El cursor se queda esperando.** **Flex race** cuesta menos y comienza más tarde, lo que se siente en un bucle interactivo. Edita la fecha límite de la clave a **Priority** o **Standard**. La siguiente solicitud lo toma sin necesidad de reiniciar.

Consulta [errores](/es/errors) para cada rechazo que devolvemos, y [claves de agente](/es/agent-keys) para aquellos que no son específicos de Codex.
