Skip to main content
Run a coding agent from your own code. Not a model that writes code back to you — an agent with a computer, that writes files, runs them, and leaves what it built at a URL you can open. The agent is pi — the open-source coding agent, MIT-licensed, running unmodified inside each session. Gobare is the computer around it and the API in front of it. If you have used another agent API, the request shapes will look familiar; that is deliberate. What is different is what a session is — a real computer — and three things that are true of it at once: More in How Gobare is different, including what it does not do yet. Don’t write code? Build in the Console instead.

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.
Open it. There is a working page there, served from the computer the agent was given — a form, a running total, saved in the browser. Forty-nine seconds on one run of this, a hundred and eleven on another; the difference is how long the sandbox took to come up. All seven of the programs above ran this exact scenario against production — each produced a session, a preview URL, and a page that loaded. None of them need a client library: this API is plain HTTP and JSON, so each is standard library only, the same rule the guides follow. You need a token for this. It takes a minute and the quickstart has it.

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.
The session is the thing to hold on to. Everything else is reached through it, and a session you created yesterday still answers today — its computer may have been reclaimed and rebuilt, and the conversation does not restart.

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 what completed does not mean. Weighing OpenAI’s Agents API against the other options as a whole? OpenAI Agents API alternatives compares the hosted, wire-compatible and self-hosted choices, with the request shapes side by side and a field-by-field migration map.

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 as scenarios you can copy, and Integrations connect a session to systems you already run — Temporal, agent frameworks, GitHub Actions, Slack, Cloudflare Workers and billing. 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:
That is there for callers who cannot read this page — an agent has the response in front of it and no way to guess a URL, and one header on a call it was already making is worth more than a paragraph it will never see. It is generated from the same route table the server matches against, so it cannot describe an endpoint that does not exist.

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 by deploy/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.

Scope

Gobare brings your own model key. The API does not sell you inference — it runs an agent against a model credential your organization has already connected, on a sandbox Gobare provides. There is no request field for a model provider, because the provider is a property of the credential. There is also no sandbox-free mode. For a coding agent the workspace is the product, not an accessory, so every session has one.