Connect an LLM provider
Zero does not ship with a model of its own. It talks to providers you already have an account with — Anthropic, OpenAI, Google, and others — using your API key, or to a model server you run yourself, which needs no account at all.
Do this before anything else. Until one provider is ready and has at least one enabled model, chats cannot send, the Assistant cannot answer, and workflow steps that call a model fail. Everything else in Zero works without it, but the AI half of the application is inert.
You only do this once per machine, not once per project.
Open the settings
Settings is a dialog over your workspace rather than a page you navigate to — open it and you stay where you were. The sections you need are LLM Providers, and afterwards Chats.
Note which section: chat keys live inside LLM Providers, on each provider's own API Keys tab. The top-level Integrations section is for other services — image, video, speech, transcription, search — and is not what you want here.
1. Turn on a provider
Settings → LLM Providers lists the providers Zero knows about, each with a switch. Turn on the one you have a key for.
The switch records your intent, not readiness: a provider you have just turned on is on, and still unusable. The next two steps are what make it work, and the page tells you which one is missing.
2. Add an API key
With the provider selected, open its API Keys tab and add a key. A key entry has two parts:
- a label, for your own benefit — which account or which billing this key belongs to;
- the key itself.
You can store more than one key for a provider, but exactly one of them is active — the switch on the row. Zero sends requests with the active key.
A stored key that is not marked active is the one failure worth recognizing: the provider looks configured, the key is visibly there, and chats still fail on send. The provider page says No API key is active when this happens.
Each row also records when the key was added and when it was last used, and carries a Check key button that asks the vendor directly whether the key is still valid. A key that has never been checked, and one whose check could not get an answer, both read as Not checked — an unreachable network says nothing about the key, so it is not allowed to condemn one.
3. Enable the models you want
Open the Models tab. Zero knows a large catalog of models per provider — current ones, older ones, and retired ones — and shows none of them in the chat picker until you tick them on.
Enable a few rather than all of them. The chat model picker is exactly this list, so a dozen enabled models make choosing harder, not easier.
The list can be searched, filtered by family and sorted. Each row carries the model's description, its family, when it was released, what it can do, and a rough cost tier so you can see what you are switching on before you use it — the same cost mark appears beside models in the chat picker later, where the choice is actually made. One Latest badge marks the current model per provider, and superseded ones are tucked into Older versions.
Models are never removed from the catalogue, only retired. A chat that used one keeps naming it.
Running a model on your own machine
A server that speaks the OpenAI protocol — Ollama, LM Studio, vLLM, a company gateway — is an ordinary provider here, with its own entry, its own models and its own row in the picker. They are grouped under Your servers.
Ollama is built in. It is already listed, pointing at the usual local address, and needs no registration. It needs no key either: a provider that declares it wants no credentials shows no key section at all and is ready as soon as it answers, so nothing tells you to "add a key" for it.
Two things differ from a cloud vendor:
- The model list comes from the server, not from a catalogue. After
ollama pullsomething new, press Refresh models on that provider's Models tab. - Zero cannot know what a local model can do. A plain protocol answer gives names and nothing else, so a model whose abilities are unknown is treated as unknown rather than assumed — it is offered without the options that would depend on knowing.
If the refresh comes back with nothing, the server did not answer. That is not the same as "this server has no models", and the list you already had is left alone.
4. Pick your defaults
Settings → Chats sets the provider and model a new chat starts with, so you are not choosing one every time. The default has to name a provider you turned on and a model you enabled — if you later disable that model, set the default again.
Where your key is stored
Keys are stored on your machine, in the operating system's application-data folder for Zero, alongside your model preferences:
| System | Location |
|---|---|
| Windows | %APPDATA%\Zero\ |
| macOS | ~/Library/Application Support/Zero/ |
| Linux | ~/.config/Zero/ |
They are never written into a project folder. Sharing a project, committing it, or pushing it to a remote does not carry your keys with it — and the next project you open on this machine is already connected, without repeating any of the above.
A server you run is still configured per machine, not per project — otherwise every new project would open without your own model.
Services that are not models
Image, video, speech and transcription services — and the web search an agent can use — are configured elsewhere, since they are not part of chat. See Integrations and generation.