A minute, start to finish
This asks for something to be built, waits, and prints an address. Nothing is elided — it is the whole program.What just happened
Five nouns, and they nest:- Agent — a named configuration: model, instructions, tools. Optional; a session can carry its own.
- Session — one cloud computer. Its workspace persists between rounds and survives being paused.
- Turn — one piece of work, from your message until it settles.
- Items — the record: messages, tool calls, file changes.
- Events — the same, as it happens: streamable, resumable.
- Artifacts — files it published; they outlive the computer.
- Preview — a port it serves, optionally at a public URL.
Why this and not a model API
A model API returns text. You would still be writing the part that actually runs: a sandbox and its lifecycle, an agent loop, tool dispatch, file capture, streaming, resumption after a dropped connection, and somewhere for a person to approve something before it happens. That list is the product. It is also why there is no sandbox-free mode — for a coding agent the workspace is not an accessory. What Gobare deliberately does not do: sell you inference, choose your model, or hold your conversation state in your process. The first is why you connect your own key; the last is why a session is a URL you can come back to rather than an object you keep in memory. Coming from another Agents API? design-decisions.md lists where this one diverges and why — queueing versus steering, durable versus transient events, and whatcompleted does not mean.
Common tasks
Base URL:
https://api.gobare.dev — https://app.gobare.dev serves the same
API and is what the Console uses.
Every page
Those pages describe the parts. Guides put them together:
six scenarios — long-running work, structured extraction, approvals, dispatch
from your own service, showing the agent’s work live, and moving between model
providers — each written as a sequence you can copy.
The machine-readable reference is
GET /v1/openapi.json — OpenAPI 3.1, no
token needed, because it describes the API rather than holding data in it.
Take it before you read anything else here: it carries every field constraint
and a real example payload for every event type, which is the part prose is
worst at. Every /v1 response points at it:
How these pages stay true
The product repository is the source. This directory is checked against the code it describes — ceilings against the constants that enforce them, error codes against their statuses, both event vocabularies — so a page cannot quietly drift from the API. These pages are published as a site at docs.gobare.dev, built from this directory bydeploy/publish-docs-site.sh. A copy of the markdown also goes to
gobare_tools
via scripts/publish-api-docs.sh, which refuses to run if the check above does
not pass.