Skip to content
openma
· openma · 5 min read (updated )

Claude Managed Agents vs OpenMA: 1:1 Comparison | OpenMA

Claude Managed Agents vs OpenMA compared 1:1: models, hosting, sessions, sandboxes, credentials, and cost shape — with clear guidance on when each wins.

comparison claude managed-agents self-hosted architecture

A managed agent runtime owns sessions, sandboxes, tool dispatch, and crash recovery so your team does not have to. Two options share almost the same outer shape: Claude Managed Agents (CMA), Anthropic’s hosted service, and OpenMA (Open Managed Agents), an Apache-2.0 runtime you can self-host or use hosted. Both expose agents, environments, sessions, and an event stream. What differs is who runs the control plane, which models you can use, and how the bill is shaped.

Other options are compared in Claude Managed Agents alternative. Moonshot’s hosted equivalent for Kimi models is covered in Kimi Hosted Agents vs OpenMA. For a primer on the hosted product, read what is Claude Managed Agents.

The two products at a glance

Claude Managed AgentsOpenMA
What it isAnthropic-hosted agent harness + runtimeOpen-source managed agent runtime (meta-harness)
Who runs the control planeAnthropicYou (self-host) or OpenMA hosted
ModelsClaudeClaude, OpenAI, DeepSeek, OpenRouter, custom endpoints via Model Cards
LicenseProprietaryApache 2.0
API/v1/agents, /v1/environments, /v1/sessions, eventsSame resource shape at /v1, plus an OpenAI Agents API adapter at /openai/v1

Feature matrix

Model choice: Claude-only vs multi-model

Claude Managed Agents runs Claude models. That is a feature if Claude is your standard and you want Anthropic to tune the harness for it.

OpenMA separates the model from the runtime. Each agent references a model (or a Model Card for a custom provider or gateway), so one agent can run on Claude and another on an OpenAI or OpenRouter model. Provider keys are encrypted at rest in Model Cards. The “brain and hands” split also lets you swap the model vendor without touching the runtime.

Hosting: Anthropic cloud vs self-host

Claude Managed Agents runs the harness and session state on Anthropic-operated infrastructure, also when you use it through Claude Platform on AWS or Google Cloud. Its docs describe self-hosted sandboxes for tool execution, and the agent loop and control plane stay with Anthropic (CMA overview).

OpenMA runs wherever you deploy it: Node.js or Docker, Fly.io, Vercel (beta), or Cloudflare. Session history lives in your database (SQLite, PostgreSQL, MySQL, or Cloudflare D1 / Durable Object SQL), and workspace blobs in S3-compatible storage or R2. See self-hosted AI agents for why teams choose that path.

API, sessions, sandbox, observability, multi-tenancy

AreaClaude Managed AgentsOpenMA
Session modelHosted, long-running sessions with an event streamDurable sessions stored as an event log, so a crashed run resumes where it stopped
Event streamSSE (agent.message, agent.tool_use, session.status_idle, …)Same event families over SSE or JSON polling
HarnessAnthropic’s harness, not modifiableBuilt-in Pi harness, ACP adapters for Claude Code / Codex, or your own
SandboxAnthropic cloud sandboxes; self-hosted sandbox optionReplaceable drivers: Docker, E2B, Daytona, Modal, Sprites, Vercel, Blaxel, BoxLite, Cloudflare, and more
CredentialsVaults managed by AnthropicVaults with injection at an outbound proxy. Enforcement depends on the sandbox provider and runtime profile
ObservabilityEvent history persisted server-side and fetchable through the APIEvent log in your own database, viewable in the OpenMA Console
Multi-tenancyScoped to your Anthropic organizationTenants in your own deployment
Workplace integrationsMCP serversMCP plus GitHub, Linear, Slack, and Feishu integrations

API compatibility. OpenMA keeps the Claude Managed Agents resource shape on purpose, so most client code moves by changing the base URL:

- const client = new Anthropic({ baseURL: "https://api.anthropic.com" });
+ const client = new Anthropic({ baseURL: "http://localhost:8787" });

Coverage is tracked surface by surface in the Claude Managed Agents compatibility matrix. Check it for each endpoint you depend on.

Who owns the loop. In CMA, decisions about context engineering, caching, compaction, and tool retries happen inside a harness you cannot see. OpenMA splits the stack:

┌─────────────────────────────────────────────────────────┐
│  Harness (the brain — default or your own)              │
│  - Reads events, builds context, calls the model        │
│  - Stateless: crash → rebuild from event log → resume   │
├─────────────────────────────────────────────────────────┤
│  Meta-harness (the platform)                            │
│  - Tools, skills, history, sandbox lifecycle            │
│  - Crash recovery, credential isolation, usage tracking │
├─────────────────────────────────────────────────────────┤
│  Infrastructure (Cloudflare, or Node + SQL + storage)   │
└─────────────────────────────────────────────────────────┘

Every input and output is appended to a per-session event log before it is broadcast. When a harness crashes, the next one replays the log and continues. That property is also what makes the harness swappable.

Sandbox swaps. OpenMA picks the sandbox provider per deployment in configuration, and the Session API stays the same across providers. The sandbox guide maps each driver’s isolation and suspend/resume behavior.

When Claude Managed Agents wins

  • You are standardized on Claude and want Anthropic to own harness tuning.
  • You want zero infrastructure decisions and no on-call for the runtime.
  • Anthropic-hosted data processing fits your compliance posture.
  • You need features the moment Anthropic ships them.
  • Session-hour plus token pricing fits your usage shape.

When OpenMA wins

  • You need more than one model vendor, or want to route agents to different models by task or cost.
  • Data residency or audit rules require session history, credentials, and outputs to stay on infrastructure you control.
  • You want to read, fork, or replace the harness for custom context engineering, caching breakpoints, or bringing Claude Code / Codex into a managed sandbox via ACP.
  • You want to choose the sandbox provider and backend services.
  • You want an OpenAI Agents API endpoint and a Claude Managed Agents endpoint over the same sessions.

Cost shape

The two bills are structured differently:

Claude Managed AgentsOpenMA self-hostedOpenMA hosted
RuntimeSession-hour fee while a session is runningYour infrastructure costWallet-based cloud sandbox compute
Model tokensAnthropic token ratesPaid directly to your provider (BYOK)Paid directly to your provider (BYOK)
Platform feeIncluded in session runtimeNoneNone. You pay for sandbox compute (pricing)

For the billable components, easy-to-miss spend, and a worked monthly example, see Claude Managed Agents pricing. Self-hosting moves cost from a vendor line item to infrastructure and operations you own, and whether that is cheaper depends on your usage.

Trying OpenMA with an existing CMA client

  1. Confirm the endpoints you rely on in the compatibility matrix.

  2. Run OpenMA locally:

    git clone https://github.com/openma-ai/open-managed-agents
    cd open-managed-agents
    cp .env.example .env   # add a model provider key
    docker compose up -d
  3. Point your existing client at it, then follow migrating from Claude Managed Agents for vaults, sessions, and integrations.