The multi-agent harness that checks the work: verifies agent runs by artifacts (stop-hook gates, independent judges, append-only event logs) across Claude Code, Codex, Cursor, and 10+ runtimes.
Overview
Ever wished your AI assistant had coworkers? That's what oh-my-agent does. Instead of one AI doing everything (and getting confused halfway through), oh-my-agent splits work across — frontend, backend, architecture, QA, PM, DB, mobile, infra, debug, design, and more. Each one knows its domain deeply, has its own tools and checklists, and stays in its lane. Works with all major AI IDEs: Antigravity, Claude Code, Codex, Cursor, Grok Build, Kimi Code, OpenCode, Pi, Qwen Code, and more. Microsoft's Agent Package Manager (APM) — skills-only distribution. Click to expand. Not to be confused with oma-observability's APM (Application Performance Monitoring). APM ships skills only. For workflows, rules, oma-config.yaml, keyword-detection hooks, and the oma agent:spawn CLI, use bunx oh-my-agent@latest. Pick one distribution per project to avoid drift. oh-my-agent keeps .
README
oh-my-agent
Ship 400+ commits a day.
한국어 | 中文 | Português | 日本語 | Français | Español | Nederlands | Polski | Русский | Deutsch | Tiếng Việt | ภาษาไทย
oh-my-agent (oma) turns Claude Code, Codex CLI, Cursor and 11 other coding agents into a team. A planner splits the work, engineers build in parallel, a reviewer checks the result, and a debugger fixes the root cause.
Run this from your project root.
curl -fsSL https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
Then open your agent and type /orchestrate build a TODO app with login.
Start with your task
Pick a task. Load one skill into the agent you already use, or install the whole team.
| Your task | Start here | First request |
|---|---|---|
| Review AI-written code | bunx skills use first-fluke/oh-my-agent@oma-qa |
“Review this diff for bugs and missing checks. Cite the affected lines.” |
| Design an admin screen | bunx skills use first-fluke/oh-my-agent@oma-design |
“Review the hierarchy and table density of our admin page.” |
| Fix a failing test | bunx skills use first-fluke/oh-my-agent@oma-debug |
“Reproduce this test failure, fix its cause, and run the affected checks.” |
| Review system boundaries | bunx skills use first-fluke/oh-my-agent@oma-architecture |
“Review the boundary between our API and worker.” |
| Run the whole team | Install oma | /orchestrate add login to this app |
Run the skills use command in your agent’s terminal. It loads that one skill. For the full team with workflows, install oma. Other options are in Choose a setup.
After installing, run oma doctor. Your first 5 minutes starts with a read-only task before team workflows.
What you get
Workflows are what you type (or just say). They call in roles, the specialists. Skills are the know-how: each role carries its own, and your agent loads the rest whenever a task needs them.
| What it gives you | Try it | |
|---|---|---|
| 12 specialist roles | PM, architect, backend, frontend, mobile, database and infra engineers, QA reviewer, debugger, refactorer, docs curator, researcher (meet them) | /orchestrate build a TODO app with login |
| 21 workflows | Slash commands from /brainstorm and /plan to /review, /debug and /scm. Most also start from a plain request (keyword banks in up to 11 languages) |
“review this PR” |
| 33 skills | Domain know-how that loads only when a task needs it: UI, APIs, schemas, Terraform, CI, security, git, observability | loads by itself, e.g. “add a Terraform S3 bucket” |
| Files you can open | Plans, design docs, API contracts, ADRs, bug notes, per-agent results, security evidence, HTML explainers, recaps | ls .agents/results |
| Research and content | Cited search, market research, papers, slide decks, MP4 videos, images, local voice, PDF/HWP to Markdown | /video, /convert |
| One folder, 14 runtimes | One portable .agents/ directory, written into each runtime’s own config files |
oma link cursor |
Install · First 5 minutes · The team · Which workflow? · Everything in the box · Works with · FAQ · Docs
Install
The script installs bun if it is missing, installs the oma command globally (bun install --global oh-my-agent, skipped when oma is already on your PATH), then starts the interactive setup. The hooks (keyword detection and the Stop gate) and several workflows call the globally installed oma command. The hooks silently do nothing if they cannot find it. If you skip the script, install it yourself with bun install --global oh-my-agent (npm install --global oh-my-agent or brew install oh-my-agent also work).
The setup asks for your response language, which agent runtimes to wire up, capability providers, a browser MCP, a model preset, and a skill preset. Choose All for the skill references used across every workflow: domain presets omit some of those skills. Provider availability and task verification remain separate checks.
Choose a preset explicitly when you want a domain’s skills:
oma install --preset frontend --yes
This selects the eight frontend-preset skills. The installer still configures the runtime, providers, and shared workflow files, and retains previously installed skills. Custom selection is available in the interactive installer. See preset values and workflow dependencies.
Your first 5 minutes
-
Choose your setup. For the task below, load
oma-scmwithbunx skills use first-fluke/oh-my-agent@oma-scm, or use the runtime install command above. Choose a setup explains both paths. -
For a runtime installation, check the install:
oma doctorThe report shows CLI and skill-file status. Its skill counts reflect the files present, including retained skills; they can differ from the current preset’s selection. If
omais not found, open a new terminal or runbun install --global oh-my-agent. -
Open an existing Git repository and run one read-only task.
oma-scmis included in every named preset; include it when using Custom selection.Use oma-scm to inspect this repository's current branch and working tree. Do not edit, stage, commit, or contact remotes. Report staged, unstaged, and untracked changes, with the Git commands and exit statuses actually observed. -
Check the result. The reported branch and changes should match the Git output. Loading instructions or completing installation does not establish that this task ran.
For larger work, choose a workflow whose referenced skills are installed. Start with /plan when its planning skill is present, then continue with /work or /orchestrate when their dependencies are available.
Meet the team
Your own agent leads the team. In /work, /orchestrate and /ultrawork it hands each job to the right specialist, which runs as its own subagent. /plan, /architecture and /docs run in your current session with that role’s skill, and /review and /debug call in their specialist for large scopes. When a role is on another vendor’s CLI, oma agent spawn runs it there.
| Your specialist | Carries | Call them with | Leaves behind |
|---|---|---|---|
Product manager (pm-planner) |
oma-pm | /plan, or “plan the payment feature” |
A plan JSON and a tracker in docs/plans/work/ for Medium and Complex work (Simple requests get a direct recommendation) |
Architect (architecture-reviewer) |
oma-architecture | /architecture |
An ADR or recommendation in .agents/results/architecture/ |
| Backend, frontend, mobile, database and infra engineers | oma-backend, oma-frontend + oma-design, oma-mobile, oma-db, oma-tf-infra | /work, /orchestrate |
Code, tests, and a result- file per task |
QA reviewer (qa-reviewer) |
oma-qa | /review, or “review this PR” |
Findings ranked CRITICAL to LOW, each with file:line and fix code |
Debugger (debug-investigator) |
oma-debug | /debug, or “fix this bug” |
A minimal fix, a regression test, and a bug note in .agents/results/bugs/ when one is warranted |
How the team works together
THINK /brainstorm ......................... docs/plans/designs/-.md
PLAN /plan · /architecture ............... plan JSON, API contracts, ADR
DESIGN /design ............................. DESIGN.md + tokens
BUILD /work · /orchestrate · /ultrawork ... code + result- files, engineers in parallel
CHECK /review · /security · /debug ........ findings, security evidence, regression test
SHIP /scm · /docs ........................ Conventional Commits, doc fixes
Each step hands a file to the next. /brainstorm saves a design that /plan reads, and /plan writes a plan in which every task has an agent, dependencies, acceptance criteria and a check command. /orchestrate runs that plan (it loads the most recent plan-*.json, or writes one). /work and /ultrawork start by having the PM write their own plan. Skip any stage you don’t need; every stage also works on its own.
Which workflow should run the team?
| You want | Run | How it ends |
|---|---|---|
| Just a plan | /plan |
A plan file for multi-area work, or a direct recommendation for small work |
| A PM-led build you follow step by step | /work |
PM, then engineers tier by tier, then QA. CRITICAL and HIGH findings go into a fix loop (up to 5 cycles) |
| A hands-off parallel build | /orchestrate |
Only tasks whose checks pass count as done; each task gets up to 3 attempts, then is marked partial or failed |
| Five-phase workflow | /ultrawork |
Five gated phases (PLAN, IMPL, VERIFY, REFINE, SHIP); every review runs in a fresh reviewer session |
| “Don’t stop until it’s really done” | /ralph |
Repeats /ultrawork with a separately spawned, fresh-context judge until every criterion passes; stops with a partial report when criteria are blocked or after 5 iterations |
| The team on a timer | oma schedule create qa-reviewer "review open PRs" --every 2h |
One Markdown log per run in ~/.oma/schedule/runs// |
You don’t need slash commands. On runtimes with a prompt hook, plain requests (keyword banks in up to 11 languages) can start most workflows: “review this PR” starts /review. Describing a whole app (“Build a TODO app with user authentication”) suggests /orchestrate, and your agent decides whether to run it. Keywords inside code blocks are ignored.
/orchestrate, /work, /ultrawork and /ralph are persistent when you invoke them by name, as a slash command or in plain text (“ultrawork: add rate limiting”). The agent is then sent back to work when it tries to stop early (up to 5 times or 2 hours) until you say “workflow done”. A loosely matching request only suggests them.
Measured, with caveats. In the benchmark (one prompt, Claude Code with five different add-on setups including plain, claude-opus-4-6, one build each), oma scored 80.6 against 70.7 for plain Claude Code, at 1.7x the cost ($4.04 vs $2.37) and 1.8x the time.
Everything in the box
Works with
14 installer targets: Claude Code, Codex CLI, Cursor, Antigravity, Qwen Code, Grok, Kiro, Kimi, OpenCode, Pi, GitHub Copilot, Hermes, CommandCode, and ZCode. Wire a runtime you skipped with oma link . Runtimes differ in which hooks they offer; the full matrix is in Supported Agents.
- Orca IDE: OMA for Orca adds a sidebar panel and command-palette actions (Orca 1.4.197+ with experimental plugins).
- DeepSeek Harness: OMA for DeepSeek Harness connects OMA checks through a Cordis plugin. It needs
omaon yourPATH.
FAQ
Learn more
- Docs site: guides, tutorials, and CLI reference. Start with Quick Start and Installation.
- Why oh-my-agent: when to choose it and the trade-offs
- Benchmark Report: how it compares with superpowers, ECC, and oh-my-claudecode on one prompt, with method, scores, screenshots, and caveats
- Supported Agents: support matrix across runtimes
- Detailed Documentation: technical spec and architecture
- Capability Providers: experimental Gortex and Honcho configuration, routing, and limits
- Skill Compatibility Matrix: native skill content, references, and response contracts in Claude and Codex
Star the project on GitHub:
gh api --method PUT /user/starred/first-fluke/oh-my-agentStarter template: fullstack-starter
Star History
References
License
MIT
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add first-fluke/oh-my-agent