Set Up ASI:One in Zed
Set Up ASI:One in Zed
Overview
ASI:One is OpenAI-compatible,
so Zed can use it through its OpenAI-compatible provider
settings. You declare the provider and its models in settings.json, pick a
model in the agent panel, and Zed stores your key in the system keychain.
Prerequisites
- Zed installed.
- An ASI:One API key. Create one at asi1.ai/developer.
Keys start with
sk_. - An ASI:One plan that includes
asi1-ultra. The same key also works forasi1andasi1-mini.
Add the provider
Open your Zed settings with zed: open settings in the command palette. Zed
keeps them at ~/.config/zed/settings.json on macOS and Linux, and
%APPDATA%\Zed\settings.json on Windows. On macOS, that is ~/.config/zed,
not ~/Library/Application Support like most Mac apps. Add the provider under
language_models:
What the fields do:
max_tokensis the model’s context window. Zed uses it to decide when a thread is full and needs compacting.max_output_tokensis the room reserved for the reply. Zed sends it asmax_tokenson each request.prompt_cache_keystaysfalse. ASI:One answers400to request parameters it doesn’t support, andfalseis what keeps Zed from sending this one.imagesistrueonasi1alone. Onlyasi1accepts image input, so the other models refuse the button instead of erroring later.
Sign in
Zed asks for the API key the first time you use the provider. Open the agent
panel, pick an ASI:One model in the model picker, and paste your sk_ key into
the prompt. Zed stores it in your system keychain, keyed by the API URL, and
reuses it from then on.
Choose the model
To make asi1-ultra the default for new threads, add:
Use asi1-ultra for deep refactors, debugging and reviews, and switch to
asi1 or asi1-mini for routine edits where speed matters more. See ASI:One
Models for the tradeoffs. When thinking is enabled, the
model streams its reasoning
alongside the answer and Zed renders it as a collapsible thinking block.
Things to know
- Concurrency. Zed allows 4 concurrent in-flight requests per provider and
model; requests past that queue silently, which looks like a spinner with no
thinking output. If you run many agent threads in parallel, copy the whole
asi:oneblock under a second id such asasi:one-2and point the extra threads at it. Because the keychain entry is keyed by API URL, the clone picks up your stored key with no re-entry. - Compaction. When a thread approaches the model’s
max_tokens, Zed summarizes the conversation and continues in a fresh context. The threshold isagent.auto_compactand defaults to50%. - Images. Only
asi1accepts image input, which thecapabilitiesblock already reflects.
Troubleshooting
Next steps
- Cursor: the same models in the Cursor editor
- OpenCode: the same models in OpenCode
- ASI:One Models: choosing between
asi1,asi1-ultraandasi1-mini - OpenAI Compatibility: which parameters each endpoint supports