Oh My OpenAgent (OmO)
TL;DR
Oh My OpenAgent, also called OmO and formerly oh-my-opencode, adds a delegating main agent, category workers, hooks and an experimental team mode to a coding agent. It ships as an OpenCode plugin, a Codex plugin and a standalone omo command built on a pi fork. It is source-available, not open source.
Key facts
| Type | Orchestrator |
|---|---|
| Languages / SDKs | TypeScript, Rust |
| License | unknown |
| Pricing model | Unknown |
| Orchestration pattern | Supervisor |
| GitHub stars | 69,669 (as of 2026-09-30) |
| GitHub forks | 5,732 |
| Last push | 2026-09-30 |
| Latest release | v5.1.5 |
| Repository | code-yeongyu/oh-my-openagent |
| Website | omo.dev |
| Documentation | omo.dev |
| Last verified | 2026-09-30 |
Key features
- Three editions of the same product: an OpenCode plugin (Ultimate), a Codex plugin (Light, installed with
npx lazycodex-ai install) and the standaloneomocommand (OmO Native). (source) - A main agent that delegates through a
tasktool to category workers (architect, deep, quick, writing and others) and four read-only curated agents (explore, librarian, plan-consultant, plan-reviewer), each with its own model fallback chain. (source) /ulw-planinterviews the user and produces a work plan reviewed by plan agents;/ulw-executethen runs the plan in the same session, verifying each task. (source)- Background agents launched with
run_in_background, plus an optional tmux (or cmux) layout that shows each background agent in its own pane. (source) - Team Mode, experimental and off by default: 12
team_*tools to spawn a lead plus up to 8 members with a shared mailbox, a task list with file-locked claims and optional per-member git worktrees. (source) - A tiered MCP client: built-in servers (websearch, context7, grep_app, lsp), a
.mcp.jsonloader and skill-embedded servers. (source) - Kibitzer, a read-only memory sidecar per main agent session that recalls stored memories and nudges the main agent, with memory kept as markdown in a git repository. (source)
- A documented viewer protocol for
mass ulwDAG runs, with sequenced, write-ahead-logged events that external tools can subscribe to. (source)
Architecture and orchestration pattern
Pattern: Supervisor
OmO is delivered in three editions. The OpenCode and Codex editions load as plugins into a host you already run; the Codex edition carries a subset of the components and has no team_* tool family, only a script-and-skill-driven teammode component. OmO Native is a standalone omo binary that bundles a pinned engine, senpi, described in the README as a fork of pi. The README now leads with the Native edition and describes the OpenCode edition as the one to migrate from; the OpenCode plugin remains documented as a separate edition.
Orchestration is a supervisor arrangement. The main agent runs on the session model, plans, and calls task to hand work to a category worker in a fresh session or to one of four read-only curated agents. Keyword prompts such as ultrawork or ulw inject mode instructions, and mass ulw turns a job into a graph of agents run in waves. The README's counts of agents per job (hundreds) are its own claim. Team Mode adds a lead-and-members structure with a shared mailbox and task list, and is off by default.
State is file-based: settings in ~/.omo/omo.jsonc with project overrides, plan files under .omo/plans/, team specs under .omo/teams/, and boulder and goal state for continuing work across sessions. Memory is markdown in a git repository read by the Kibitzer sidecar, which cannot write memory or files.
Human in the loop
Planning is the main approval point: /ulw-plan interviews the user and produces a plan that the user then executes with /ulw-execute. /stop-continuation stops todo continuation, the active goal and boulder state, /goal can pause or resume a goal, and /handoff writes a summary for a new session. Permissions and tool allowlists are configurable, and the docs say AGENTS.md is instruction context, not an enforcement boundary. The Codex Light installer offers an autonomous mode that sets approval_policy = "never" and sandbox_mode = "danger-full-access", which removes approval prompts if chosen.
Harnesses it can drive
- OpenCode (evidence)
- Codex (evidence)
Protocols
| Protocol | Support | Note |
|---|---|---|
| MCP | Yes evidence | Client side: the OpenCode edition injects built-in MCP servers, loads Claude Code style .mcp.json files and starts skill-embedded servers; the migration guide lists ~/.omo/agent/mcp.json as where OmO Native keeps MCP servers. No MCP server of its own is documented. |
| A2A | Unknown | No A2A / Agent2Agent mention in the README or docs read; repo code search returned only lockfiles, fixtures and a design reference file, none read as protocol support. |
| AG-UI | Unknown | No AG-UI mention in the README or docs read; repo code search for ag-ui returned nothing; not checked against a listing in the AG-UI README. |
Best for
- OpenCode or Codex users who want a delegating main agent with category-based model routing and fallback chains across providers. (shortlist)
- Long tasks driven from a written plan, where an interview, plan review and per-task verification are wanted before and during execution. (shortlist)
- Experimenting with lead-and-members agent teams, with mailbox messaging and optional git worktrees per member, behind a flag. (shortlist)
- Personal or internal business use where source-available terms are acceptable.
Not for
- Projects that need an OSI-approved open-source license, or that redistribute or resell the software commercially; the license limits use to internal business and non-commercial or personal purposes.
- Teams that cannot allow default-on anonymous usage telemetry without changing settings.
- Users who want the Ultimate OpenCode plugin to keep receiving the newest features first; the README now leads with the standalone Native edition.
Quickstart
curl -fsSL https://get.omo.dev/install.sh | bash # macOS, Linux, WSL
curl -fsSL https://get.omo.dev/install.sh | bash
omo --version
# From an OpenCode install: carry over keys, MCP servers, skills and model picks
omo setup
omo doctor
# Package-manager alternative (the package is omo-ai, not omo)
bun add -g omo-ai
# OpenCode plugin edition or Codex plugin edition
bunx oh-my-openagent install
npx lazycodex-ai install
# In a project, run omo and type a prompt with a keyword or a plan command
omo
# ultrawork <your task>
# /ulw-plan then /ulw-execute
Common pitfalls
- The npm package for OmO Native is
omo-ai; the plainomopackage on npm is unrelated. - oh-my-openagent and oh-my-opencode releases up to 4.19.4 install their own global
omocommand, which shadows OmO Native until the installer removes it. - The bun and npm installs need Node 24 or newer; the curl installer needs no Node and refuses to run as root or Administrator.
ulwmode is triggered per message; a follow-up without the keyword can fall back to default behaviour (tracked as a known issue).- Team Mode is off by default and needs
team_mode.enabled: trueplus a restart. - The Codex Light installer offers an autonomous mode with no approvals and full-access sandbox.
- Telemetry is on by default and can be turned off.
Pros
- Curated read-only agents have enforced tool restrictions, and plan agents are gated to planning runs. (source)
- Each delegated category and agent has a documented fallback chain across providers, so work can continue when one provider is unavailable. (source)
- Migration from the OpenCode edition is documented, with a setup command that reads OpenCode config, previews changes, backs up files and never writes back to OpenCode. (source)
- Known issues are published in the repository with symptom, workaround and status for each entry. (source)
- Very frequent tagged releases with checksummed binary installs. (source)
Cons
- The license is the Sustainable Use License 1.0, not an open-source license: use or modification is limited to internal business or non-commercial or personal purposes, and redistribution only free of charge for non-commercial purposes. (source)
- Anonymous usage telemetry is on by default and must be switched off by the user. (source)
- Team Mode, the multi-agent coordination feature, is experimental and off by default. (source)
- Known open issues include ulw mode not persisting across follow-up messages and worktree merge status ignoring dirty files. (source)
- Three editions with different feature sets: the Codex edition has no OpenCode agent registry or team_* tool family, and the OpenCode edition is documented as legacy in places. (source)
Alternatives
FAQ
Is oh-my-openagent open source?
No. GitHub reports no license, and the LICENSE.md file contains the Sustainable Use License 1.0. It allows use and modification for internal business purposes or non-commercial or personal use, and distribution only free of charge for non-commercial purposes. It is source-available, not OSI open source.
Does it support MCP?
Yes, as a client. The OpenCode edition injects built-in servers (websearch, context7, grep_app, lsp), loads .mcp.json files and starts skill-embedded servers, and OmO Native keeps servers in ~/.omo/agent/mcp.json. No MCP server of its own is documented.
Which harnesses does it plug into?
OpenCode through the Ultimate edition and Codex through the Light edition, per the installation guide. OmO Native is a standalone command on a bundled pi-fork engine and needs no host.
Does it coordinate several agents?
Yes. A main agent delegates to category workers and read-only agents, background agents run in parallel, and an experimental Team Mode adds a lead, up to 8 members, a mailbox and shared task list. Team Mode is off by default.
What was it called before?
oh-my-opencode. The features reference has a rename-compatibility section saying the published package and binary remain oh-my-opencode, with legacy plugin entries still loading with a warning.
Sources
- Installation guide (three editions)
- Overview guide
- Features reference
- Team Mode guide
- mass-ulw viewer protocol
- Migrating from OpenCode
- Known issues
- oh-my-openagent releases
- oh-my-openagent LICENSE.md (Sustainable Use License 1.0)
- Telemetry guide
- Install OmO (native binary)
- OmO website
- OmO documentation
- code-yeongyu/oh-my-openagent GitHub repository
- oh-my-openagent README