TypeScript AI agent orchestration framework with dynamic workflows. Describe the goal, not the graph: a coordinator plans the task DAG at runtime and runs it on any LLM (Claude, ChatGPT, Gemini, DeepSeek, or local models).
# Add to your Claude Code skills
git clone https://github.com/open-multi-agent/open-multi-agentGuides for using ai agents skills like open-multi-agent.
Last scanned: 7/14/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@protobufjs/utf8: protobufjs has overlong UTF-8 decoding",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@vitest/coverage-v8: Vulnerability found",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "@vitest/mocker: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "brace-expansion: brace-expansion: Large numeric range defeats documented `max` DoS protection",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "esbuild: esbuild enables any website to send any requests to the development server and read the response",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "express-rate-limit: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "fast-uri: fast-uri vulnerable to path traversal via percent-encoded dot segments",
"severity": "high"
},
{
"type": "npm-audit",
"message": "fast-xml-builder: fast-xml-builder allows attribute values with unwanted quotes to bypass malicious or unwanted attributes",
"severity": "high"
},
{
"type": "npm-audit",
"message": "form-data: form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
"severity": "high"
},
{
"type": "npm-audit",
"message": "hono: Hono has CSS Declaration Injection via Style Object Values in JSX SSR",
"severity": "high"
},
{
"type": "npm-audit",
"message": "ip-address: ip-address has XSS in Address6 HTML-emitting methods",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "postcss: PostCSS has XSS via Unescaped </style> in its CSS Stringify Output",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "protobufjs: Arbitrary code execution in protobufjs",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "qs: qs has a remotely triggerable DoS: qs.stringify crashes with TypeError on null/undefined entries in comma-format arrays when encodeValuesOnly is set",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "vite: Vite Vulnerable to Path Traversal in Optimized Deps `.map` Handling",
"severity": "high"
},
{
"type": "npm-audit",
"message": "vite-node: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "vitest: Vulnerability found",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "ws: ws: Uninitialized memory disclosure",
"severity": "high"
}
],
"status": "FAILED",
"scannedAt": "2026-07-14T06:10:16.878Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}open-multi-agent is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by open-multi-agent. TypeScript AI agent orchestration framework with dynamic workflows. Describe the goal, not the graph: a coordinator plans the task DAG at runtime and runs it on any LLM (Claude, ChatGPT, Gemini, DeepSeek, or local models). It has 6,782 GitHub stars.
open-multi-agent failed SkillsLLM's automated security scan, which flagged one or more high-severity issues. Review the Security Report section carefully before using it.
Clone the repository with "git clone https://github.com/open-multi-agent/open-multi-agent" and add it to your Claude Code skills directory (see the Installation section above).
open-multi-agent is primarily written in TypeScript. It is open-source under open-multi-agent on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh open-multi-agent against similar tools.
No comments yet. Be the first to share your thoughts!
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
open-multi-agent is an AI agent orchestration framework for TypeScript backends that drops into any Node.js app. It runs dynamic workflows: a coordinator turns one goal into a task DAG at runtime, a deterministic scheduler executes it across the team, and the whole run stays data you can inspect, approve, and replay. The dashboard above is the built-in offline Run Viewer replaying a real run.
Requires Node.js 20 or newer. For production, use a currently maintained Node.js LTS release.
Scaffold a PR review agent, security analysis agent, or teaching DAG:
npm create oma-app@latest my-oma
In an interactive terminal, that one command selects a starter and runtime, installs dependencies, and runs a deterministic local demo. The demo needs no API key and makes no model request: scripted model responses drive the real OMA scheduler, result aggregation, and offline dashboard.
Or add OMA to an existing backend:
npm install @open-multi-agent/core
import { OpenMultiAgent } from '@open-multi-agent/core'
const oma = new OpenMultiAgent({ defaultProvider: 'openai', defaultModel: 'gpt-5.4' })
const team = oma.createTeam('research-team', {
name: 'research-team',
agents: [
{ name: 'researcher', systemPrompt: 'Find the relevant facts.' },
{ name: 'analyst', systemPrompt: 'Compare evidence and identify tradeoffs.' },
],
sharedMemory: true,
})
const result = await oma.runTeam(team, 'Compare three approaches and recommend one.')
console.log(result.agentResults.get('coordinator')?.output)
import { OpenMultiAgent } from '@open-multi-agent/core'
const model = process.env.OMA_MODEL ?? 'gpt-5.4'
const oma = new OpenMultiAgent({ defaultProvider: 'openai', defaultModel: model })
const team = oma.createTeam('research-team', {
name: 'research-team',
agents: [
{ name: 'researcher', systemPrompt: 'Find the relevant facts.' },
{ name: 'analyst', systemPrompt: 'Compare evidence and identify tradeoffs.' },
],
sharedMemory: true,
})
const result = await oma.runTeam(team, 'Compare three approaches and recommend one.')
// Nothing above declares a task graph. The coordinator planned one at runtime,
// and the finished run is data you can read back.
for (const task of result.tasks ?? []) {
console.log(`[${task.status}] ${task.title} → ${task.assignee ?? 'unassigned'}`, task.dependsOn)
}
console.log(result.agentResults.get('coordinator')?.output)
console.log(result.totalTokenUsage)
Set OPENAI_API_KEY to run this example. Providers covers other hosted models, local servers, OpenAI-compatible endpoints, and AI SDK providers.
runTeam() plans from a goal, runAgent() runs a single agent, and runTasks() executes an explicit pipeline. The Core package guide walks through all three modes, provider and credential setup, and the production checklist. The example index lists 50+ runnable examples across basics, cookbook workflows, patterns, providers, and integrations.
Every seam, an interface. Every run, a record.
OMA combines dynamic orchestration with the control, evidence, and recovery paths needed to move multi-agent systems from prototype to production.
open-multi-agent launched 2026-04-01 under MIT. Known users and integrations to date:
bash, file_*, grep) inside a Docker runtime. Confirmed production use.defineTool repo-context tools and a custom ContextStrategy for token-aware diff compression.runAgent / runTasks / runTeam with a custom coordinator, paired with DeepSeek.Integrations
runTeam workflow template.runAgent() and runTeam() as Baize slot capabilities.Using open-multi-agent in production or a side project? Open a discussion and we will list it here. Built an integration? The integration guide covers how to get listed. For a deep integration, see the Featured partner program.
Paid sponsors supporting open-multi-agent. Sponsorship does not affect technical decisions or model recommendations.
Providers