Durable sessions
Append-only event log per session in a SQLite-backed Durable Object. Resume from anywhere; survive restarts and crashes.
oma (Open Managed Agents) is the infrastructure layer for AI agents. You bring the harness — the loop that decides what the model does next — and oma takes care of everything else: durable sessions, sandboxed code execution, tool calls, semantic memory, secret-safe credentials, and crash recovery.
It runs entirely on Cloudflare (Workers, Durable Objects, D1, R2, KV, Vectorize, Containers), and you can either use the hosted product at oma.duyet.net or fork and self-host to your own Cloudflare account.
Most agent frameworks tell you how to build an agent — the loop, the prompt format, the orchestration shape. oma is different: it stays out of the harness and instead provides what every long-running agent needs but is painful to build.
Durable sessions
Append-only event log per session in a SQLite-backed Durable Object. Resume from anywhere; survive restarts and crashes.
Sandboxed execution
Tool calls run in per-session Cloudflare Containers. Pre-install Python / Node / apt packages declaratively.
Vault-backed credentials
Secrets never enter the sandbox. An outbound proxy injects auth headers per-host so tools can hit private APIs without ever seeing the key.
Built-in memory
Per-agent semantic memory across sessions, indexed in Vectorize via Workers AI embeddings.
MCP, everywhere
Connect any MCP server and oma auto-generates mcp_* tools the model can call.
Three integrations, day one
Publish agents into Linear (assignable issues), GitHub (PRs), and Slack (channels) with OAuth-managed auth.
Every sandbox — cloud container, local process, or browser tab — runs behind one SandboxExecutor interface, selected per-environment via sandbox_provider. Availability differs between the Cloudflare deployment and self-host Node; see the Kubernetes deploy guide and k8s-bridge reference for the cluster-backed options.
Cloud
Cloudflare Containers (default on Cloudflare) · BoxRun · Kubernetes via k8s-remote or OpenShell (both runtimes, gateway-relayed on Cloudflare) · Daytona and E2B (self-host Node only) · Dynamic Workers — ephemeral V8-isolate JS/Wasm eval, Cloudflare only · oma-remote federation to another oma instance (Cloudflare; Node not yet wired)
Local
Local subprocess via oma bridge daemon (both runtimes — relayed to Cloudflare over WebSocket) · Docker / docker-compose (self-host Node) · Kubernetes pods, direct in-cluster (self-host Node) · LiteBox micro-VMs (self-host Node)
Browser
Browser VM — a WASM VM (v86) running inside a browser tab, paired as a runtime and driven over the same relay as the local subprocess provider. Zero-infra sandboxing for demos and constrained environments.
Bring your own model or credentials — an agent references a model by id, and oma resolves credentials per tenant.
Anthropic
Direct API access with ANTHROPIC_API_KEY — the default provider fallback when no Model Card matches.
OpenAI-compatible
Any /chat/completions-compatible endpoint via a Model Card (oai / oai-compatible).
AnyRouter
One-click OAuth connect from the Console — no pasted key. Auto-provisions model cards (e.g. anyrouter/free, anyrouter-strong, anyrouter-fast) with a live credit balance and preset picker.
poolside
The laguna / malibu agentic-coding models, driven through the poolside harness over the same OpenAI-compatible loop.
Custom Model Cards / BYOK
Per-tenant credentials with a custom base_url, for any Anthropic-wire or OpenAI-wire provider you self-host or proxy.
The harness decides how an agent’s turn runs; the platform decides what it has available (tools, skills, sandbox, history). oma ships two harnesses today, with more planned:
OMA harness (default)
oma’s own agent loop, built on the ai SDK — prompt-cache-safe context engineering, tool loop, and event emission. Works out of the box for any agent.
Claude Agent SDK
Runs the actual Claude Code CLI as a subprocess (self-host Node only), with per-agent model and credential resolution via Model Cards.
Local runtime (ACP bridge)
acp-proxy delegates the whole loop to a local ACP-compatible agent — Claude Code, Codex — running on a paired machine via oma bridge daemon.
More harnesses are planned — see Architecture for how to implement and register your own.