Models

Press * to set the focused agent's model. Every way you have to run one is in a single list, grouped by route and priced where pricing applies.

The model palette on an empty query, showing a recent model at the top and the four routes: axon, codex, openrouter and ollama, each with a one-line description

A model is a property of an agent, never something you talk to instead of one. Selecting a row edits that agent's axon.config.ts and hot-reloads it — the conversation, the session and the instance all survive.

Four routes

The same model is usually reachable more than one way, and the route decides who bills you:

RouteWhat it is
axonManaged inference, billed to your Axon ledger. No key needed
codexYour ChatGPT subscription
openrouterYour own OpenRouter key
ollamaModels on this machine. Free, and offered only while the daemon is running

axon:auto lets the platform pick per request.

Type, don't browse

There are no tabs and no provider pages. The query is the state, and the colon is the transition. Type axon: and you are inside that route; keep typing and it narrows:

The model palette with the query 'axon:anthro' showing Anthropic models on the axon route — opus, sonnet and fable variants — each with its context window and input/output price
The model palette with the query 'axon:terra' narrowed to gpt-5.6-terra variants and writer/palmyra-x5, with context windows and prices

Backspacing over the colon returns to the routes, so there is no mode to get stuck in. Every term narrows against any part of a row, so you can go straight at what you want:

QueryFinds
sonnetevery route for every sonnet
codexeverything the subscription covers
codex gpt-5the subscription's gpt-5
ax haikuaxon-billed haiku

Rows are ordered most-recently-used first, so the models you actually use sit at the top before you type anything.

Around 380 of ~400 catalogue models carry at least two routes. Seeing one model three times is three real prices to compare, and one more term collapses them — which is why the list is searched rather than browsed.

Connecting a provider

codex and openrouter need connecting once. Until then their models still list, marked with what is missing rather than hidden:

The openrouter route listing models from qwen, google, bytedance and deepseek, each row marked 'no key' beside its context window
CommandWhat it does
:provider codex connectSign in with your OpenAI account
:provider codex disconnectRemove the connection
:provider openrouter connectStore an OpenRouter API key
:provider openrouter disconnectRemove the key

Credentials are held in your account vault on the backend, not on this machine. That is what lets a deployed agent use the same connection, and why token refresh is invisible to you — there is nothing to re-enter when one expires.

axon needs no connection beyond being signed in.

Local models

Install Ollama and the route appears as soon as the daemon answers. Models on your machine are marked installed; the rest show their download size, and selecting one pulls it with progress in the palette:

The ollama route listing local models — gemma3:4b marked installed, others showing download sizes from 0.8GB to 9.3GB — with parameter counts, capabilities and descriptions

Rows carry what actually matters locally: parameter count, whether it supports tools, thinking or vision, and how much disk it wants. Inference runs entirely on your hardware and nothing leaves the machine.

Not on a deployment

A deployed agent's config lives in the cloud, so * refuses with MODEL_IMMUTABLE_DEPLOYED. Change the model in the project and deploy again.