Codex()

OpenAI's models through a ChatGPT Plus or Pro subscription. No API key, no per-token cost — you are billed by OpenAI exactly as you already are, and Axon takes nothing.

export default defineProfile({
    providers: [Codex()],
})

The catalogue is per-account: chatgpt.com reports what your own subscription can run, so two people declaring Codex() may see different models. Not being connected is an absent entitlement rather than an error — you simply get no Codex routes.

TUI model palette on the OpenAI tab showing Codex models

Credentials

OAuth, vaulted. Connect once and it works on every machine you sign in from.

:provider codex connect       # opens a browser to approve
:provider codex disconnect

Refresh is the vault's job and is invisible to you — there is nothing to reconnect unless you explicitly disconnect. Only a narrow, short-lived token ever reaches an agent; refresh material never leaves the vault.

Options

Codex(options?: ProviderOptions)
OptionDefaultDescription
slotsunboundedCeiling on concurrent calls
keyNot used. Codex is OAuth, not a key
urlNot used

Model ids

Bare OpenAI slugs, as your subscription reports them:

export default defineAgent({ model: "codex:gpt-5.6-terra" })

Not the same as OpenAI()

OpenAI() is the API platform, billed per token against an API key. This is the consumer subscription. Same vendor, different product, different bill — and only this one has a per-account catalogue.