โ† Back to Features

Edge backend

Run the same control plane at the Cloudflare edge, with one Durable Object per session and SQLite persistence on the same object.

provide-uterm-cloudflare is a complete second implementation of the hub that runs on Cloudflare Workers. It is not a stripped-down proxy โ€” it is the same protocol with a different runtime.

One Durable Object per session

Each terminal session is orchestrated by a single Durable Object instance. That gives you:

  • Strong consistency for the session โ€” all participants talk to the same DO, no shared-state race conditions.
  • Geographic locality โ€” the DO can pin near the worker that owns the PTY.
  • Independent scaling โ€” sessions scale horizontally because each is its own object.

SQLite on the object

DOs use attached SQLite storage. uterm uses it to persist:

  • Session metadata.
  • DeckMux chat history.
  • Annotation history.

No central database is required. The artifacts of a long-lived session live on the same object that hosts the session.

Same client surface

Browsers, the Python client SDK, and the MCP server speak the same control channel to the edge hub. The protocol does not change between the reference hub and the edge backend.

Authorization does. The Worker accepts AUTH_MODE=jwt only โ€” every other mode raises at config load and the Worker refuses to boot. That is deliberate: dev_token, header and api_key are safe because they can be pinned to a loopback bind or a trusted proxy hop, and a Worker has neither. A deployment using one of those has an auth change to make, not just a URL change.