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:
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 asapi, 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.
