omnara-ai/omnara
The open-source managed agent platform. A self-hostable alternative to Claude Managed Agents and OpenAI's Agents API.
Omnara – Open‑source Managed Agent Platform
What it is – Omnira is a self‑hostable platform that lets you run AI agents (LLM‑driven bots) on any model and on any machine. It provides a REST API, a TypeScript SDK, and a CLI for launching agents, streaming their events, and handling approvals. Think of it as an open‑source alternative to Claude Managed Agents or OpenAI’s Agents API, but you can run it on your own infrastructure and pick any model you like.
Core concepts
| Concept | What it does |
|---|---|
| Agents | Defined by an agent.yaml (model, tools, machine pool, memory, etc.). The platform runs the agent loop: build prompt → call model → execute tools → store state. |
| Machines | Remote runtimes (your laptop, VM, container, or sandbox providers). Each runs the omnarad daemon so agents can execute shell commands, edit files, etc., without opening inbound ports. |
| Tools & Skills | Built‑in tools (shell, file I/O, web search, ask‑human) plus custom tools and reusable skills (bundled instructions/files). |
| Memory stores | Persistent file‑like storage that agents can read/write across conversations, optionally shared between agents. |
| Sub‑agents | An agent can spawn a fresh‑context sub‑agent, monitor its progress, and hand off results. |
| Integrations | Slack, Discord, GitHub, webhooks, streaming events, and custom integrations via the same public API. |
| Permissions & RBAC | Fine‑grained control over who can run which tools, view data, or approve actions. |
How it works (high‑level architecture)
- API – Your app, the CLI, or the dashboard talk to a central HTTP API (OpenAPI spec provided). It handles launching agents, sending messages, and streaming events.
- Postgres – Every step of every agent is logged here, giving durable state. Workers can resume an agent after a crash.
- Workers – Stateless processes that execute the agent loop. One worker can serve many agents; you can scale horizontally.
- Machines – Remote daemons (
omnarad) that expose a secure outbound connection, letting agents run commands on any macOS/Linux host or on sandbox providers (Arker, Modal, etc.). - Redis & Blob storage – Used for queues, transient data, and storing attachments/tool outputs.
Getting started
1. Try Omnira Cloud (no install)
# Save an example config
cat > agent.yaml <<'EOF'
version: v1
instruction: |
You are an engineering assistant. Use your machine to run commands.
model:
provider_config: omnara-openrouter
name: anthropic/claude-fable-5.1
machine_sources:
- machine_pool_name: default-pool
EOF
# Launch via the CLI (Node 22+)
npx omnira agents launch --file agent.yaml \
--name "Machine assistant" \
--message "Report this machine's operating system and free disk space."
The CLI will open a browser for you to log in if needed.
2. Self‑host (Docker Compose)
git clone https://github.com/omnira-ai/omnira.git
cd omnira
docker compose -f compose.yaml --profile app up -d # start API, workers, DB, etc.
- Open
http://localhost:8000, sign up (verification link appears in container logs). - Add a model provider, a model, and a machine in the web UI.
- Point the CLI at your instance:
npx omnira config --api-url http://localhost:8000/api/v1 --issuer-url http://localhost:8000
npx omnira login
- Use the same
agent.yaml(replacemachine_pool_namewith your machine name) and launch as above.
Notable features
- Model‑agnostic – Supports OpenAI, Anthropic, OpenRouter, LiteLLM, Ollama, or any compatible endpoint.
- Tool ecosystem – Built‑in shell, file, web‑search, human‑question tools; MCP servers; custom webhook tools.
- Skills – Reusable bundles of instructions/files that agents can load on demand.
- Durable state – Every turn persisted in Postgres; agents survive crashes or machine loss.
- Multi‑tenant – One deployment can host many organizations, each with its own secrets, models, and machines.
- Scheduling – Cron‑style triggers can message agents, launch new ones, or start Slack/Discord threads.
- Permissions – Approvals can be required before a tool runs; the platform enforces these rules.
- Streaming & webhooks – Real‑time event streams or webhook callbacks for integration.
Example use cases (provided in examples/)
- Coding assistant – Fix bugs from Slack/Discord/GitHub PRs and open a new PR.
- SRE bot – Diagnose 5xx spikes, query logs, and suggest remediation.
- Browser automation – Drive a real browser for long‑running web tasks.
- Social‑media signal agents – Summarize the last 24 h of Reddit, X, or LinkedIn posts on a topic.
- Video generation – Create short videos from a textual brief.
- Custom CLI chat app – Simple terminal UI built on the TypeScript SDK.
Pricing & licensing
- License – Apache 2.0 (free, permissive).
- Self‑host – No platform fee; you only pay for the models and any sandbox resources you use.
- Omnira Cloud – Free tier when you bring your own keys/machines; pay‑as‑you‑go for hosted models and sandbox time.
Community & contributions
- Discord – https://discord.gg/Dc46sYk6e3
- Issues & PRs – GitHub repository.
- Contributing – Requires Go (as declared in
go.mod), Node 24+, ripgrep, Docker Compose. Runmake verifyfor the fast gate; full guidelines inCONTRIBUTING.md.
In short: Omnira gives you the plumbing to run stateful, tool‑enabled LLM agents at scale, on any model and any compute, while keeping all data under your control. It’s ideal if you want the flexibility of a managed agent service without being locked into a single vendor’s cloud.
Related
- Project
- Project
- Project
- Project
- Project