openma

Platforms & APIs 💻 TypeScript ⚖️ Apache-2.0 🟢 Actively maintained
257 stars

Open Managed Agents (OMA) is an open-source platform for running AI agents, offering a self-hosted alternative to Claude Managed Agents. It provides a meta-harness that manages sessions, sandboxes, tools, memory, and integrations, allowing developers to focus on writing the agent logic. It is designed for developers who want to deploy and manage agents on their own infrastructure or on Cloudflare Workers.

✨ Key features

  • Drop-in compatible with Claude Managed Agents API
  • Runs on Cloudflare Workers or Docker self-host
  • Built-in sessions, sandboxes, tools, and memory
  • Encrypted vaults for credential storage
  • Crash recovery and durable event log
  • Custom harness support with SDK

🎯 Use cases

  • Self-hosted agent platform for internal tools
  • Deploy agents on Cloudflare edge
  • Build custom agent workflows with custom harnesses
  • Run agents with BYOK model credentials
  • Integrate with Slack, GitHub, Linear

📦 Installation

🧰 Requirements: Node.js for self-host, Cloudflare Workers Paid plan for Cloudflare deploy; requires BETTER_AUTH_SECRET and PLATFORM_ROOT_SECRET; optional ANTHROPIC_API_KEY.

git clone https://github.com/openma-ai/open-managed-agents.git
cd open-managed-agents
cp .env.example .env
Two secrets are required before first boot — both generated locally: · BETTER_AUTH_SECRET — signs Console sessions · PLATFORM_ROOT_SECRET — encrypts credentials, model-card API keys, integration tokens at rest · (lose it and every encrypted row is unreadable — back it up)
$EDITOR .env
SQLite + LocalSubprocess sandbox (default — fastest path)
docker compose up -d
curl localhost:8787/health
open http://localhost:8787   # Console UI on the same port

🚀 Usage

AID=$(curl -s -X POST localhost:8787/v1/agents -H 'content-type: application/json' \
  -d '{"name":"hello","model":"claude-sonnet-4-6","tools":[{"type":"agent_toolset_20260401"}]}' | jq -r .id)

SID=$(curl -s -X POST localhost:8787/v1/sessions -H 'content-type: application/json' \
  -d "{\"agent\":\"$AID\"}" | jq -r .id)

curl -s -X POST localhost:8787/v1/sessions/$SID/events -H 'content-type: application/json' \
  -d '{"events":[{"type":"user.message","content":[{"type":"text","text":"Run: uname -a"}]}]}'

⚠️ Good to know

Requires Cloudflare Workers Paid plan for Cloudflare deployment; memory store has 100KB cap per memory and 30-day version retention.

❓ FAQ

What are the two ways to run OMA?

You can self-host using Docker (Node) or deploy to Cloudflare Workers. Both use the same SDK and API.

What secrets are required before first boot?

BETTER_AUTH_SECRET and PLATFORM_ROOT_SECRET are required. PLATFORM_ROOT_SECRET encrypts credentials and must be backed up.

Is it compatible with Claude Managed Agents API?

Yes, it is drop-in compatible with the Claude Managed Agents API, using the same endpoints and event types.

Can I write a custom harness?

Yes, you can define a custom harness using the SDK and deploy it with 'oma deploy'.

📊 Repository

Stars★ 257
Forks🍴 36
Open issues🐛 18
Last commit🕒 Sep 3, 2026
Created📅 Apr 2026
Language💻 TypeScript
License⚖️ Apache-2.0
Websiteopenma.dev

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.