Ollama()

Models on your own hardware, through a local Ollama daemon. No API costs, and nothing leaves your machine.

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

Requires Ollama installed — Axon manages the server for you once it is. A local model always outranks a hosted route when both can serve a role: you already expressed the preference by installing it, and it is what keeps an agent working with the network off.

TUI model palette on the local tab showing an Ollama model downloading

Credentials

None. The models live on your disk and run in your VRAM.

Options

Ollama(options?: ProviderOptions)
OptionDefaultDescription
urlhttp://localhost:11434Daemon endpoint — point it at another machine on your network
slots4Concurrent calls. The daemon queues past its own limit, so a higher number queues deeper rather than going faster
keyNot used

Reaching a daemon on another box is the common override:

providers: [Ollama({ url: "http://box.local:11434" })]

What the catalogue reports

What is pulled, never the shelf of models you could install. Those are different questions: the shelf is a download menu for a picker, and answering with it would resolve a role to weights that are not on your disk.

An unreachable daemon contributes a visible failure rather than an empty list — a dead Ollama and a machine with no models would otherwise look identical, and the difference is whether your agent silently fell back to the cloud.

Managing models

Open the model palette with * to browse the Ollama library. Models are filtered to your hardware and labelled by fit — recommended, possible, or unlikely to run well. Select one and it downloads immediately.

:ollama ps              # models currently loaded in VRAM
:ollama unload          # unload a model from VRAM
:ollama remove          # delete a model from disk
:ollama update          # re-pull all installed models to latest
:ollama stop            # stop the Ollama server

Model ids

Ollama's own tags, including the colon:

export default defineAgent({ model: "ollama:qwen3:8b" })

The route is everything before the first colon, so ollama:qwen3:8b is provider ollama, model qwen3:8b.

Structured output

Local weights get no assumption of structured output — unlike a hosted frontier route behind an API that enforces a reply schema. A cognet role declaring structured: true may therefore reject a local model that a hosted one satisfies.