// open-source TypeScript multi-agent framework

A self-organizing team of AI agents, in an environment you control.

Start from a goal or an explicit task DAG. Route, approve, budget, trace, and resume at task boundaries—in your own environment.

for TypeScript backend and AI platform teams
Run no-key demo
team.ts · goalgoal
modeteamroutedeterministicscheduleevent-drivenevidencereceipt + trace
captured goalview fullcollapse

Review this service for security vulnerabilities and produce a triaged report. Evidence — a small Node.js/Express service: FILE: src/server.ts app.get('/admin/users', (req, res) => res.json(db.query("SELECT * FROM users WHERE name = '" + req.query.name + "'"))) FILE: .env.example ADMIN_API_KEY=[REDACTED generic-secret] Dependency manifest: express ^4.17.0; the start script runs src/server.js. Secret signal: .env.example:1 generic-secret. Complete four coordinated deliverables: 1. Review the attack surface: auth, exposed endpoints, and trust boundaries. 2. Review data security: injection, secret handling, and sensitive data. 3. Review the supply chain: dependencies, configuration, and deployment. 4. Synthesize a deduplicated, severity-ranked security report.

decomposes into
parallel
#4be5c70b
Attack Surface Review
STATUS: DONE (5.2s)
attack-surface-reviewerstable
#a3e8c689
Data Security Review
STATUS: DONE (6.8s)
data-security-reviewerstable
#eec506da
Supply Chain Review
STATUS: DONE (5.6s)
supply-chain-reviewerstable
#4f36bf14
Synthesize Security Report
STATUS: DONE (9.8s)
synthesizerstable
#4be5c70bAttack Surface Review3 more tasks · expand full DAG
parallel
#4be5c70b
Attack Surface Review
STATUS: DONE (5.2s)
attack-surface-reviewerstable
#a3e8c689
Data Security Review
STATUS: DONE (6.8s)
data-security-reviewerstable
#eec506da
Supply Chain Review
STATUS: DONE (5.6s)
supply-chain-reviewerstable
#4f36bf14
Synthesize Security Report
STATUS: DONE (9.8s)
synthesizerstable
real runTeam() · deepseek-v4-flash · 4 tasks · 36s
01 Why OMA

From intent to a controlled, inspectable run.

Choose the topology, move ready work, put policy at the right boundaries, and keep the evidence.

01plan → route
Start from an outcome—or an explicit graph.

Use runTeam() to generate a reviewable task DAG, or runTasks() to execute the graph you define. Explicit mode, governance, or an ExecutionRouter chooses single-agent or team execution.

runTeam · runTasks · mode · routingDecision
02schedule → dispatch
Move work as soon as dependencies are ready.

The event-driven scheduler removes unrelated round barriers. Match tasks by capability, validate hard requirements, approve each ready dispatch, and preserve unmerged task results.

event-driven · onTaskDispatch · taskResults
03govern → evidence
Put policy at the boundary it governs.

Declare roles and review paths, confirm consequential tools, bound further calls at turn and task boundaries, then inspect governance conclusions, receipts, traces, and evaluation gates.

governance · onToolCall · receipt · EvalSet
04your environment
Run where your data already lives.

Use cloud providers, a local endpoint, or an air-gapped deployment on your credentials. Tools are default-deny, and core has only three runtime dependencies.

offline · default-deny tools · 3 runtime deps
Run evidence

Inspect what happened after every run.

The offline Run Viewer turns a completed run into reviewable evidence, without sending it to a hosted OMA service.

  • Task DAG and assignees
  • Model, provider, token, and cost rollups
  • Tool calls, status, and safe evidence details
Open the observability reference
// mentioned
A brilliant TypeScript-native multi-agent orchestration framework.
GithubAwesome · 58K subscribers · GitHub Trending Monthly #6
Watch on YouTube: GithubAwesome's GitHub Trending Monthly #6, paused on the open-multi-agent GitHub repository (6k stars).
04 FAQ

How the TypeScript runtime behaves.

Straight answers to the questions that come up most. The full reference lives in the docs.

05 get started

Your first team. One command.Run locally. No signup.

Quick Start
No signup · no API key · no model request.