BERD TASK · 0002 · SET UP BERD
Connect a provider and pick a model¶
Give Berd a model to talk to, confirm the connection works, and know what each error means before it happens. The outcome is a provider that shows a live model list, and a model chosen per chat.
Steps at a glance
- Open the providers section of Settings and choose what to add
- Save the credential and let the model list load
- Read a failure by its cause, not its wording
- Pick the model from the chat toolbar
- Remember that no agent runs without both
1. Open the providers section of Settings and choose what to add¶
Settings has a providers section. It holds two kinds of thing side by side: model providers (a credentialed connection to a model API) and agent harnesses (an installed runtime such as Claude Code or Codex that brings its own sign-in). The section's own description says it: connect a model provider to use Goose, or connect another agent harness.
At v0.6.4 the curated catalog lists Goose, Claude Code, Codex, Copilot, Amp, Cursor Agent and Pi as harnesses, and Databricks AI Gateway as a model provider. Anything else is added as a custom provider: choose an API type (Anthropic API, OpenAI API, or Ollama for a local model), give it a display name, an API URL, a key if it needs one, and at least one model name. Templates exist for known providers so you are not typing endpoints from memory. The catalog is one of the fastest-moving files in the app, so treat this list as what was true on the date below.
Which provider you connect is the decision on this page. Every message in every chat that uses this provider goes to that vendor. For an engagement with confidential material, that is a contractual question before it is a technical one.
[SCREENSHOT: T02-01 — providers section]
2. Save the credential and let the model list load¶
Save. Berd immediately fetches the provider's live model list, and that request is the verification — it checks the key, the URL and the network in one go. A list of models appearing is your success signal. A Saved state with a note that the model refresh needs attention means the credential stored but the check failed; read the message before moving on.
For harnesses that install a local binary, the failure set is narrower: something already at the install path, an unsupported OS or architecture, or the CLI installing but not landing on your PATH (restart your terminal and try again).
[SCREENSHOT: T02-02 — credential saved, model list fetched]
3. Read a failure by its cause, not its wording¶
Berd maps raw provider errors to four stable causes. The help skill calls this mapping deliberate, documented behaviour rather than an implementation detail, so it is safe to learn:
| You see | It means | Do |
|---|---|---|
| 401 / 403, "unauthorized", "invalid API key" | The credential itself was rejected | Re-check the key in the provider's console |
| 404 / "not found" | The server answered, but not at that path | Check the URL — a custom URL usually needs /v1 on the end |
| Connection refused, timeout, DNS failure, "network error" | Nothing answered at all | Check the URL, your network, and whether the service is up |
| 429 / "rate limit" / "too many requests" | The key works; the provider is throttling | Wait. This is not a configuration problem |
The in-app hints say the same in plainer words (did you include /v1?). If the thing that failed is an automation rather than a chat (in a distribution that enables automations; the v0.6.4 public build does not), stop before blaming the provider — automations fail in two different phases, and only one of them is a provider problem.
[SCREENSHOT: T02-03 — a 404 error on a custom URL]
4. Pick the model from the chat toolbar¶
The model is chosen per chat, from the toolbar. Since v0.6.3 the models you used recently sit near the top, and the compact view shows a recommended set; Browse all models opens the full list with search. Databricks models show readable names with the full ID kept underneath. There is also a reasoning-effort control on the toolbar for models that support it.
Switch mid-chat when the work changes shape — a cheap model for tidying, a strong one for the reasoning step. If a switch fails, Berd tells you which model the chat is still using. One documented dead end: a chat with Claude reasoning history in an older form cannot continue on a Claude model; start a new chat or move it to a non-Claude model.
[SCREENSHOT: T02-04 — model picker with recency]
5. Remember that no agent runs without both¶
Berd's laws are short and this one is a single line: an agent must have a configured provider and model before it can be invoked. A saved agent with a blank provider is not broken; it is waiting. When an agent will not start, check its provider and model before anything else.
Watch out
The provider you save here receives every prompt, file and reply in every chat that uses it. Confirm the vendor is one the engagement allows before you paste a key — a wrong provider is not an error Berd can show you.
Last checked: Berd v0.6.4, 2026-09-11 — read from source and release notes, not yet tested in the app.
Learn more
- Provider errors mean four things — the taxonomy with worked cases
- App vs harness: where Berd stops — why a harness and a model provider sit in the same list
- What stays on your laptop — and what leaves it through a provider
- Model vs harness (Buzz Guide) — the same distinction, from the Buzz side
Reference
- block/berd — distro/skills/berd-help/references/ai-providers.md — the four-way error mapping
- block/berd — src/features/providers/curatedProviders.ts — the curated catalog at v0.6.4
- block/berd — src/shared/i18n/locales/en/settings.json — provider, custom-provider and hint strings
- block/berd — src/shared/i18n/locales/en/chat.json — model picker and switch errors
- block/berd — LAWS/AGENTS.md
- block/berd — CHANGELOG.md — v0.6.3 model picker recency, Databricks names
- Moment
- apply
- Takes
- 10 min
- Steps
- 5
- Verified
- Berd v0.6.4 · 2026-09-11 · source-read