The Familiar Pattern
Every powerful bare tool follows the same arc: someone ships the engine, and the community builds a distribution on top of it. You stop assembling parts and start using the thing.
OpenCode is the engine in this story. It is an open source, terminal-based coding agent that works with a long list of LLM providers. It is flexible and it does not tell you how to set it up, which is great right up until you are wiring agents, models, and MCP servers together on a Tuesday evening instead of writing code.
Oh My OpenAgent (the project you may know as Oh My OpenCode) is the community layer that does that wiring for you. The maintainer describes the relationship the way you would describe Ubuntu or Omarchy relative to Debian or Arch: same base, opinionated defaults.
This post covers what the layer adds, how to install it, and three things worth checking before it goes anywhere near a work machine.
Quick Background, Including the Name Change
- Creator: code-yeongyu (YeonGyu Kim)
- First release: version 1.0.0 shipped on December 13, 2025, under the name oh-my-opencode
- Rename: the project became oh-my-openagent in version 3.11.0 on March 7, 2026. Its roadmap now targets multiple agent harnesses (OpenCode, Codex, Pi, Claude Code, and others), not just OpenCode
- Popularity: roughly 69,000 GitHub stars at the time of writing
- Influences: AmpCode and Claude Code. The maintainer says features were ported from both, and often improved
The rename left some loose ends worth knowing about. Both npm packages (oh-my-opencode and oh-my-openagent) are published together. The CLI binary is still called oh-my-opencode, but the recommended install command uses oh-my-openagent. In opencode.json, the plugin entry oh-my-openagent is preferred, and the legacy oh-my-opencode entry still loads with a warning.
The maintainer's own origin story is a familiar one: a lot of money spent on tokens across personal projects, every harness tried, and OpenCode chosen as the base to build on. The plugin is the accumulated fixes.
Three Editions, One Project
The project now ships in three forms. This post covers the first one.
| Edition | What it is | Install |
|---|---|---|
| Ultimate | The full plugin for OpenCode | bunx oh-my-openagent install |
| Light | A smaller set of components for OpenAI Codex CLI | npx lazycodex-ai install |
| Senpi (beta) | A standalone omo command with the engine built in |
bun add -g omo-ai@beta |
One warning for anyone who likes to guess package names: plain omo on npm is an unrelated package by a different author. Do not run bunx omo or npx omo. The Senpi edition is installed as omo-ai@beta, and the beta tag is required.
What It Actually Adds
Eleven agents, one orchestrator
Instead of one generic agent, you get a cast. You mostly talk to the orchestrator and it delegates.
| Agent | Role |
|---|---|
| Sisyphus | Main orchestrator. Plans, delegates, and drives the task to completion |
| Prometheus | Strategic planner. Interviews you and writes a plan before any code changes |
| Hephaestus | Deep autonomous worker, tuned for GPT models |
| Oracle | Architecture and debugging consultant |
| Librarian | External documentation and code search |
| Explore | Fast codebase grep |
| Atlas | Todo-list orchestrator |
The remaining four are Multimodal-Looker (screenshots and PDFs), Metis (pre-planning review), Momus (plan reviewer), and Sisyphus-Junior (the executor spawned for delegated tasks).
Each agent has its own model fallback chain. Per the project docs at the time of writing, Sisyphus starts with Claude Opus 5 and falls back to Kimi K3 and GPT-5.6 Sol. Oracle prefers GPT-5.6 Sol. Explore and Librarian start with a fast, inexpensive model because speed matters more than depth for search work. The docs are direct about it: Sisyphus works best on Opus or Kimi K3, and other models may degrade the experience.
Categories instead of model names
When Sisyphus delegates work, it does not pick a model. It picks a category such as quick, deep, ultrabrain, writing, or visual-engineering, and the config maps each category to a model. You can change that mapping without touching prompts.
Background tasks and Team Mode
Background tasks let several specialists run in parallel while the main agent keeps working. A concurrency cap keeps this from turning into a rate-limit incident: the default is five tasks at once, and you can set limits per provider or per model.
Team Mode goes further: a lead agent coordinates up to eight members working in parallel. It is off by default and you enable it in config. Two workflows sit on top of it. hyperplan sends five adversarial critics at your plan before any code is written, and security-research runs vulnerability hunters and proof-of-concept engineers over a codebase.
Built-in MCPs and skills
These two are easy to mix up, so here they are separately.
Built-in MCP servers (on by default): websearch (Exa), context7 (library docs), grep_app (GitHub code search), and lsp. They are injected by the plugin at runtime, which is why they do not show up in opencode mcp list.
Built-in skills: playwright (browser automation), git-master (atomic commits and rebase work), frontend, and review-work, among others. Add your own under .opencode/skills/<name>/SKILL.md in a project, or ~/.config/opencode/skills/<name>/SKILL.md for all projects.
If you already have a Claude Code setup, the plugin loads existing hooks, commands, skills, MCPs, and plugins unchanged.
Trigger words
Include one of these words in a normal prompt and the matching mode activates:
| Keyword | Effect |
|---|---|
ultrawork or ulw |
Full orchestration. Every agent is available and the run continues until the task is done |
search |
Web and documentation search focus |
analyze |
Deep analysis mode |
team |
Team Mode orchestration (requires Team Mode to be enabled) |
hyperplan |
Adversarial planning with five critics |
For precision work, press Tab to switch to Prometheus, then run /start-work to execute the reviewed plan.
Vanilla OpenCode vs. With Oh My OpenAgent
OpenCode has not stood still, so the comparison is narrower than it was a year ago. Vanilla OpenCode already ships Build and Plan as primary agents, General and Explore as subagents, per-agent model settings, and (since version 1.14.51 in May 2026) experimental background subagents.
| Area | Vanilla OpenCode | With Oh My OpenAgent |
|---|---|---|
| Agents | Build, Plan, General, Explore, plus any you define | Eleven agents with delegation rules between them |
| Model per agent | You configure it | Default fallback chains per agent, category-based routing, and runtime fallback on API errors |
| Parallel work | Experimental background subagents | Background task manager with per-provider and per-model caps, plus opt-in Team Mode |
| MCPs and tools | Bring your own | websearch, context7, grep_app, and lsp built in, plus bundled skills |
| Guardrails | Permissions system | Todo enforcer, comment checker, opt-in hash-anchored edits, and 50+ lifecycle hooks |
| Config | opencode.json |
opencode.json plus ~/.omo/omo.jsonc |
The trade is simple: you get more capability and more opinions, and you also get more moving parts to understand.
Before You Install: Three Things Worth Knowing
1. Claude credentials
Anthropic's Claude Code documentation states that OAuth credentials from Free, Pro, and Max plans are intended for Claude Code and Claude.ai. Third-party developers should not route requests through those credentials. For anything else, Anthropic points to an API key from the Claude Console or a supported cloud provider.
The project's own install guide still includes a step that asks about a Claude Pro/Max subscription and walks through an OAuth login. Treat that step with care. If you want Claude models, use an API key or a cloud provider such as Amazon Bedrock. The other providers the installer supports include OpenAI, Gemini, GitHub Copilot, OpenCode Zen, OpenCode Go, Z.ai, Kimi, and Vercel AI Gateway. Check each provider's terms for your use case.
2. Telemetry is on by default
The plugin sends one anonymous event per day per machine, using a hashed installation identifier. It is opt-out. You can disable it in config (shown below) or with an environment variable:
Run this in your shell profile:
export OMO_SEND_ANONYMOUS_TELEMETRY=0
3. The license is source-available, not OSI open source
The project uses the Sustainable Use License. In plain terms, you may use and modify the software for your own internal business purposes or for non-commercial and personal use, and you may redistribute it only free of charge for non-commercial purposes. That covers most individual and internal team use, but read it (or ask your legal team) before you bundle it into anything you ship.
Setup Guide
Prerequisites
You need OpenCode 1.4.0 or newer and Bun. The installer relies on Bun, so use bunx. The project states that global installs (npm install -g, bun add -g) are not supported.
Install OpenCode if you do not have it yet. Run this in your terminal:
curl -fsSL https://opencode.ai/install | bash
Confirm the version. Run this in your terminal:
opencode --version
Run the installer
Run this in your terminal:
bunx oh-my-openagent install
The installer opens a TUI and asks which providers you have access to (Claude, OpenAI, Gemini, Copilot, OpenCode Zen, Z.ai, OpenCode Go, Kimi, and Vercel AI Gateway). Those answers decide which model each agent gets. There is also a --no-tui mode with flags for each provider if you prefer to script it. Answer based on the credentials you can legitimately use, and see the first section above for Claude.
The maintainers recommend letting an LLM agent run the install by pasting the install-guide URL into it. That works, but read what it plans to do first, especially the authentication steps.
Verify the install
The doctor command checks plugin registration, config, tools, and model resolution. Run this in your terminal:
bunx oh-my-openagent doctor
For the model-by-model view, add --verbose.
You can also confirm that the plugin entry was registered. Run this in your terminal:
cat ~/.config/opencode/opencode.json
Where the config lives
Two files matter.
File: ~/.config/opencode/opencode.json (the installer adds the plugin entry for you)
{
"plugin": ["oh-my-openagent"]
}
File: ~/.omo/omo.jsonc (agent models, concurrency, telemetry; JSONC allows comments)
{
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/omo.schema.json",
"[opencode]": {
"agents": {
// Main orchestrator
"sisyphus": { "model": "anthropic/claude-opus-5", "reasoning": "max" },
// Architecture and debugging consultant
"oracle": { "model": "openai/gpt-5.6-sol", "reasoning": "high" },
// Fast codebase search: a small, cheap model is fine here
"explore": { "model": "anthropic/claude-haiku-4-5" }
},
// Cap parallel work so you do not burn through rate limits
"background_task": {
"defaultConcurrency": 5,
"providerConcurrency": { "anthropic": 3, "openai": 3 }
},
// Opt out of anonymous telemetry
"telemetry": false
// Team Mode is off by default. To enable it (then restart OpenCode):
// "team_mode": { "enabled": true, "max_parallel_members": 4 }
}
}
A project-level .omo/omo.jsonc is also read. The search walks up from your working directory toward $HOME, and the nearest file wins.
First run
Start OpenCode in a project and include the trigger word in a normal prompt. Run this in your terminal:
opencode
Then type a prompt such as: ulw add input validation to the signup endpoint and update the tests.
When To Use It
- You work across several providers. Different agents on different models, with fallback when one provider errors out.
- You have config fatigue. You have spent more time tuning OpenCode than using it.
- You are coming from Claude Code. Existing hooks, commands, and skills carry over, and you keep an open, model-agnostic base.
- Your tasks are long and parallel. Research in the background while the main agent works, with a todo enforcer that keeps runs on track.
- You want a planning step. Prometheus interviews you and writes a plan before code changes.
When To Skip It
- Small edits. One file, one change. Vanilla OpenCode handles this fine.
- You want a small, auditable setup. The plugin registers dozens of lifecycle hooks and collects telemetry unless you turn it off.
- Your only Claude access is a Pro or Max subscription. Per Anthropic's documentation, that credential is not meant for third-party tools, and the Sisyphus agent is tuned for Claude Opus or Kimi K3.
- Token budget matters. Parallel agents multiply usage. If you use it, set the concurrency caps.
- Licensing is a concern. The Sustainable Use License limits commercial redistribution.
Wrap-Up
Oh My OpenAgent is a genuine distribution layer: it takes an excellent engine and adds agents, routing, and guardrails that would otherwise take an evening or three to assemble. It also brings more surface area, so the checks above (credentials, telemetry, license) are worth five minutes before you install.
If OpenCode is your daily driver and you keep rebuilding the same agent setup, it is worth a trial on a test project.
Links
- GitHub: code-yeongyu/oh-my-openagent
- npm: oh-my-opencode
- Website and docs: omo.dev and omo.dev/docs
- Discord: Community server
- OpenCode docs: opencode.ai/docs
- Anthropic's policy on subscription credentials: Claude Code legal and compliance