Skip to main content

One command →

curl -fsSL https://get.aireserve.com/install.sh | sh installs the aireserve CLI and connects Codex and the ChatGPT desktop app: your browser signs you in, and the CLI writes a command-auth provider into ~/.codex/config.toml whose helper (aireserve token codex) exchanges the machine’s key for a gateway session token that expires within the hour. The key never sits in the config file, and the full gateway model catalog appears in Codex’s native model picker — reasoning-effort toggles included.
Codex only refreshes a provider’s model list for command-auth providers, so the CLI is the only setup that unlocks the native picker; it is also the only one that gives sessions short-lived credentials. codex --profile original runs one session on your pre-CLI setup and aireserve unconfigure restores the selected profile without removing another profile’s credentials. The connect page walks through the same command with the desktop-app steps. Everything below is the manual equivalent — the escape hatch for a machine where you cannot install the CLI.

Codex CLI / ChatGPT desktop app

Define a custom provider in ~/.codex/config.toml that reads your key from the environment:
env_key is the only auth to use here. Codex’s experimental_bearer_token (a literal key pasted into config.toml) is marked discouraged upstream in favor of env_key, leaves a long-lived credential in a plain-text file, and gets none of the picker or short-lived-token behavior above. http_headers alone does not authenticate — Codex ignores it for the provider-has-auth check and waits for an interactive login.
With env_key Codex never refreshes its model list from the provider, so its picker only shows the model you pinned. The aireserve CLI configures command auth plus a served model catalog instead — that is what unlocks the full native picker with per-model reasoning-effort options, and what keeps the key out of config.toml. If you want that experience, use the CLI; it is not practical to maintain by hand.

Codex SDK

The Codex runtime speaks the OpenAI Responses format, served at /v1/responses:
Legacy audacity_api_… keys and the AUDACITY_API_KEY name keep working everywhere aireserve_api_… does.