Reference
OpenCode Compatibility
Connect OpenCode clients, SDKs, and web UI to Sandbox Agent.
Experimental: OpenCode SDK/UI compatibility may change.
Sandbox Agent exposes an OpenCode-compatible API at /opencode.
Why use OpenCode clients with Sandbox Agent?
- OpenCode CLI (
opencode attach) - OpenCode web UI
- OpenCode TypeScript SDK (
@opencode-ai/sdk)
Quick start
OpenCode CLI / TUI
sandbox-agent opencode --port 2468 --no-token
Or start server + attach manually:
sandbox-agent server --no-token --host 127.0.0.1 --port 2468
opencode attach http://localhost:2468/opencode
With authentication enabled:
sandbox-agent server --token "$SANDBOX_TOKEN" --host 127.0.0.1 --port 2468
opencode attach http://localhost:2468/opencode --password "$SANDBOX_TOKEN"
OpenCode web UI
Start Sandbox Agent with CORS
sandbox-agent server --no-token --host 127.0.0.1 --port 2468 --cors-allow-origin http://127.0.0.1:5173
Run OpenCode web app
git clone https://github.com/anomalyco/opencode
cd opencode/packages/app
export VITE_OPENCODE_SERVER_HOST=127.0.0.1
export VITE_OPENCODE_SERVER_PORT=2468
bun install
bun run dev -- --host 127.0.0.1 --port 5173
Open UI
Visit http://127.0.0.1:5173/.
OpenCode SDK
import { createOpencodeClient } from "@opencode-ai/sdk";
const client = createOpencodeClient({
baseUrl: "http://localhost:2468/opencode",
});
const session = await client.session.create();
await client.session.promptAsync({
path: { id: session.data.id },
body: {
parts: [{ type: "text", text: "Hello, write a hello world script" }],
},
});
const events = await client.event.subscribe({});
for await (const event of events.stream) {
console.log(event);
}
Notes
- API base path:
/opencode - If server auth is enabled, pass bearer auth (or
--passwordin OpenCode CLI) - For browser UIs, configure CORS with
--cors-allow-origin - Provider selector currently exposes compatible providers (
mock,amp,claude,codex) - Provider/model metadata for compatibility endpoints is normalized and may differ from native OpenCode grouping
- Optional proxy: set
OPENCODE_COMPAT_PROXY_URLto forward selected endpoints to native OpenCode