FF

first-fluke/oh-my-agent

Developer tools
1.4K stars Quality 79 Trend 44MIT

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

  1. Choose your setup. For the task below, load oma-scm with bunx skills use first-fluke/oh-my-agent@oma-scm, or use the runtime install command above. Choose a setup explains both paths.

  2. For a runtime installation, check the install:

    oma doctor
    

    The 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 oma is not found, open a new terminal or run bun install --global oh-my-agent.

  3. Open an existing Git repository and run one read-only task. oma-scm is 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.
    
  4. 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 oma on your PATH.

FAQ

Learn more

Star the project on GitHub:

gh api --method PUT /user/starred/first-fluke/oh-my-agent

Starter template: fullstack-starter

Star History

References

License

MIT

View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add first-fluke/oh-my-agent
New to MCP? Start with the mcpskill.org guide →