Skip to main content
CloudDevin drives sessions running in Devin’s cloud over the same Agent Client Protocol as LocalDevin, connected over a WebSocket and authenticated with a personal access token (cog_…). Turns, streaming, permission handling, and _cognition.ai/* extension notifications work identically to local sessions.

MCP servers

CloudDevin accepts the same mcpServers session option as local sessions:
When you load or attach to a session, pass the option again: cloud.loadSession(id, { mcpServers }) or cloud.attach(id, { mcpServers }). The SDK forwards the list in ACP session/new, session/load, or session/resume requests. An omitted option or mcpServers: [] sends an empty list.
Tool availability depends on the cloud ACP endpoint and its MCP support. The SDK forwards the configuration but does not enable server-side MCP support. Support in the local CLI does not establish support in a cloud deployment.

Where it runs

CloudDevin needs a WebSocket that can send the Authorization header, so it runs on Node.js, Bun, Cloudflare Workers and Deno 2.5 or newer (since 0.0.1-beta.2; the SDK uses the runtime’s built-in WebSocket, or a fetch upgrade on Workers, and no longer depends on ws). Runtimes whose WebSocket cannot send headers — browsers, Vercel Edge, older Deno — get a DevinError from connect(). Local sessions need Node.js or Bun, because they spawn the Devin CLI.

Cancelling a turn

session.stream(), streamUpdates(), send(), postMessage() and run() accept { signal } (since 0.0.1-beta.2). Aborting cancels the Devin turn right away — it ends with stopReason: "cancelled" — and an already-aborted signal throws before the prompt is sent. In a server route, pass the request’s signal so a client that stops listening stops Devin too:

The API client escape hatch

ACP covers live interaction; everything else — session snapshots, structured output, pull requests, and platform resources (playbooks, secrets, organizations) — lives on the Devin REST API. The cloud client exposes a typed client for all of it as api, authenticated with the same key:
api is cloud-only. See Using devin.api for the client’s shape, errors, pagination, and the generated reference for every resource. To point the client at a deployment other than production, see Environments; for the same session API on your own machine, see Local sessions. To export session traces to Langfuse or another OpenTelemetry backend, see Tracing.