SDK & CLI
One key. The whole platform from your terminal.
Mint an API key, point the OpenDoor CLI or TypeScript SDK at the gateway, and use chat, media, assistants, and hosted agents — including OpenBot’s computer — without living in the dashboard.
Faster than the dashboard
Mint a workspace key
Dashboard → API keys. Allow the models you want. Caps and allowlists apply to CLI and SDK the same way they apply to curl.
Point the client at OpenDoor
Set OPENDOOR_API_KEY and OPENDOOR_BASE_URL. The CLI is bun run od --. The TypeScript client is @opendoor/sdk.
Call anything on that key
Chat, images, assistants, workflows, and hosted agents. OpenBot create/chat/computer is the same runtime as Agents in the dashboard.
First call
export OPENDOOR_API_KEY=opd_…
export OPENDOOR_BASE_URL=https://opendoor-gcp.web.app
bun run od -- chat --model llama-3.1-8b-instruct --message "Hello"Point clients at opendoor-gcp.web.app. Model id comes from the live catalog. OPENDOOR_API_URL is accepted as an alias for the base URL.
One Bearer key
Everything the product can do is on this API.
Chat & routing
OpenAI-shaped completions, streaming, tools, and provider sort/order. Same path the playground uses.
Media
Images, video, and audio through /v1 — billed to the same prepaid quota as chat.
Assistants & workflows
Create, run, and iterate without opening the dashboard. Usage lands on this key.
Agents, including OpenBot
Boot OpenClaw, Hermes, NemoClaw, or OpenBot. Computer tools, take-the-wheel, and memory run on the gateway.
Search
POST /v1/plugins/web-search — Vertex grounding with citations. $0.10 / query, included on Enterprise.
OpenBot on the gateway
CopilotKit OpenBot runs here — browser, /workspace files, and take-the-wheel.
Create with runtime: "openbot". That is the MIT OpenBot coworker stack — Chromium computer, /workspace files, snapshot-then-click, take-the-wheel — pointed at this gateway. CopilotKit Intelligence is not required. Set OPENBOT_SUPERVISOR_URL so each OpenBot gets its own Chromium container; without it, navigate/read/files still run here so CLI and SDK keep working. Agents is a $20/month add-on; tokens still bill workspace quota.
CLI
bun run od -- agents create --name "Desk" --runtime openbot --model llama-3.1-8b-instruct
bun run od -- agents chat --id "$AGENT_ID" --message "Open https://example.com and summarize the page."
bun run od -- agents computer --id "$AGENT_ID" --take
bun run od -- agents computer --id "$AGENT_ID" --releaseTypeScript SDK
import { OpenDoor } from "@opendoor/sdk";
const client = new OpenDoor({
apiKey: process.env.OPENDOOR_API_KEY,
baseURL: "https://opendoor-gcp.web.app",
});
const chat = await client.chat.completions.create({
model: "llama-3.1-8b-instruct",
messages: [{ role: "user", content: "Hello" }],
});
const agent = await client.agents.create({
name: "Desk",
runtime: "openbot",
modelId: "llama-3.1-8b-instruct",
});
const turn = await client.agents.chat(agent.id, {
message: "Open https://example.com and summarize the page.",
});
await client.agents.computer(agent.id, "take");curl
curl https://opendoor-gcp.web.app/v1/agents \
-H "Authorization: Bearer $OPENDOOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Desk",
"runtime": "openbot",
"modelId": "llama-3.1-8b-instruct"
}'
curl https://opendoor-gcp.web.app/v1/agents/$AGENT_ID/chat \
-H "Authorization: Bearer $OPENDOOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message":"Open https://example.com and summarize the page."}'Then keep going
Ready to work from the terminal?
Create a workspace, mint a key, and run the same OpenBot coworker the dashboard hosts.