Skills oh-my-opencode
Multi-agent orchestration plugin for OpenCode. Use when the user wants to install, configure, or operate oh-my-opencode — including agent delegation, ultrawork mode, Prometheus planning, background tasks, category-based task routing, model resolution, tmux integration, or any oh-my-opencode feature. Covers installation, configuration, all agents (Sisyphus, Oracle, Librarian, Explore, Atlas, Prometheus, Metis, Momus), all categories, slash commands, hooks, skills, MCPs, and troubleshooting.
git clone https://github.com/MetaMask/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/MetaMask/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/oh-my-opencode/oh-my-opencode" ~/.claude/skills/metamask-skills-oh-my-opencode && rm -rf "$T"
oh-my-opencode/oh-my-opencode/SKILL.mdOh My OpenCode
Multi-agent orchestration plugin that transforms OpenCode into a full agent harness with specialized agents, background task execution, category-based model routing, and autonomous work modes.
Package:
oh-my-opencode (install via bunx oh-my-opencode install)
Repository: https://github.com/code-yeongyu/oh-my-opencode
Schema: https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json
Prerequisites
- OpenCode installed and configured (
should be 1.0.150+)opencode --versioncurl -fsSL https://opencode.ai/install | bash # or: npm install -g opencode-ai # or: bun install -g opencode-ai - At least one LLM provider authenticated (
)opencode auth login - Strongly recommended: Anthropic Claude Pro/Max subscription (Sisyphus uses Claude Opus 4.5)
Installation
Run the interactive installer:
bunx oh-my-opencode install
Non-interactive mode with provider flags:
bunx oh-my-opencode install --no-tui \ --claude=<yes|no|max20> \ --openai=<yes|no> \ --gemini=<yes|no> \ --copilot=<yes|no> \ --opencode-zen=<yes|no> \ --zai-coding-plan=<yes|no>
Verify:
opencode --version cat ~/.config/opencode/opencode.json # should contain "oh-my-opencode" in plugin array
Two Workflow Modes
Mode 1: Ultrawork (Quick Autonomous Work)
Include
ultrawork or ulw in your prompt. That's it.
ulw add authentication to my Next.js app
The agent will automatically:
- Explore your codebase to understand existing patterns
- Research best practices via specialized background agents
- Implement the feature following your conventions
- Verify with diagnostics and tests
- Keep working until 100% complete
Mode 2: Prometheus (Precise Planned Work)
For complex or critical tasks:
- Press Tab → switches to Prometheus (Planner) mode
- Describe your work → Prometheus interviews you, asking clarifying questions while researching your codebase
- Confirm the plan → review generated plan in
.sisyphus/plans/*.md - Run
→ Atlas orchestrator takes over:/start-work- Distributes tasks to specialized sub-agents
- Verifies each task completion independently
- Accumulates learnings across tasks
- Tracks progress across sessions (resume anytime)
Critical rule: Do NOT use Atlas without
/start-work. Prometheus and Atlas are a pair — always use them together.
Agents
All agents are enabled by default. Each has a default model and provider priority fallback chain.
| Agent | Role | Default Model | Provider Priority Chain |
|---|---|---|---|
| Sisyphus | Primary orchestrator | | anthropic → kimi-for-coding → zai-coding-plan → openai → google |
| Sisyphus-Junior | Focused task executor (used by with categories) | Determined by category | Per-category chain |
| Hephaestus | Autonomous deep worker — goal-oriented, explores before acting | (medium) | openai → github-copilot → opencode (requires gpt-5.2-codex) |
| Oracle | Architecture, debugging, high-IQ reasoning (read-only) | | openai → google → anthropic |
| Librarian | Official docs, OSS search, remote codebase analysis | | zai-coding-plan → opencode → anthropic |
| Explore | Fast codebase grep (contextual search) | | anthropic → github-copilot → opencode |
| Multimodal Looker | Image/PDF/diagram analysis | | google → openai → zai-coding-plan → kimi-for-coding → anthropic → opencode |
| Prometheus | Work planner (interview-based plan generation) | | anthropic → kimi-for-coding → openai → google |
| Metis | Pre-planning consultant (ambiguity/failure-point analysis) | | anthropic → kimi-for-coding → openai → google |
| Momus | Plan reviewer (clarity, verifiability, completeness) | | openai → anthropic → google |
| Atlas | Plan orchestrator (executes Prometheus plans via ) | / | kimi-for-coding → opencode → anthropic → openai → google |
| OpenCode-Builder | Default build agent (disabled by default when Sisyphus is active) | System default | System default |
Agent Invocation
Agents are invoked via
delegate_task() or the --agent CLI flag — NOT with @ prefix.
// Invoke a specific agent delegate_task(subagent_type="oracle", prompt="Review this architecture...") // Invoke via category (routes to Sisyphus-Junior with category model) delegate_task(category="visual-engineering", load_skills=["frontend-ui-ux"], prompt="...") // Background execution (non-blocking) delegate_task(subagent_type="explore", run_in_background=true, prompt="Find auth patterns...")
CLI:
opencode --agent oracle opencode run --agent librarian "Explain how auth works in this codebase"
When to Use Which Agent
| Situation | Agent |
|---|---|
| General coding tasks | Sisyphus (default) |
| Autonomous goal-oriented deep work | Hephaestus (requires gpt-5.2-codex) |
| Architecture decisions, debugging after 2+ failures | Oracle |
| Looking up library docs, finding OSS examples | Librarian |
| Finding code patterns in your codebase | Explore |
| Analyzing images, PDFs, diagrams | Multimodal Looker |
| Complex multi-day projects needing a plan | Prometheus + Atlas (via Tab → ) |
| Pre-planning scope analysis | Metis |
| Reviewing a generated plan for gaps | Momus |
| Quick single-file changes | delegate_task with category |
Categories
Categories route tasks to Sisyphus-Junior with domain-optimized models via
delegate_task().
| Category | Default Model | Variant | Provider Priority Chain | Best For |
|---|---|---|---|---|
| | — | google → anthropic → zai-coding-plan | Frontend, UI/UX, design, styling, animation |
| | | openai → google → anthropic | Deep logical reasoning, complex architecture |
| | | openai → anthropic → google | Goal-oriented autonomous problem-solving (Hephaestus-style) |
| | | google → anthropic → openai | Creative/novel approaches, unconventional solutions |
| | — | anthropic → google → opencode | Trivial tasks, single file changes, typo fixes |
| | — | anthropic → openai → google | General tasks, low effort |
| | | anthropic → openai → google | General tasks, high effort |
| | — | google → anthropic → zai-coding-plan → openai | Documentation, prose, technical writing |
Category Usage
delegate_task(category="visual-engineering", load_skills=["frontend-ui-ux"], prompt="Create a dashboard component") delegate_task(category="ultrabrain", load_skills=[], prompt="Design the payment processing flow") delegate_task(category="quick", load_skills=["git-master"], prompt="Fix the typo in README.md") delegate_task(category="deep", load_skills=[], prompt="Investigate and fix the memory leak in the worker pool")
Critical: Model Resolution Priority
Categories do NOT use their built-in defaults unless configured. Resolution order:
- User-configured model (in
) — highest priorityoh-my-opencode.json - Category's built-in default (if category is in config)
- System default model (from
) — fallbackopencode.json
To use optimal models, add categories to your config. See references/configuration.md.
Built-in Skills
| Skill | Purpose | Usage |
|---|---|---|
| Browser automation via Playwright MCP (default browser engine) | |
| Vercel's agent-browser CLI with session management | Switch via config |
| Git expert: atomic commits, rebase/squash, history search | |
| Designer-turned-developer for stunning UI/UX | |
Skills are injected into subagents via
delegate_task(load_skills=[...]).
Slash Commands
| Command | Description |
|---|---|
| Initialize hierarchical AGENTS.md knowledge base |
| Execute a Prometheus plan with Atlas orchestrator |
| Start self-referential development loop until completion |
| Start ultrawork loop — continues until completion |
| Cancel active Ralph Loop |
| Intelligent refactoring with LSP, AST-grep, architecture analysis, TDD |
| Stop all continuation mechanisms (ralph loop, todo continuation, boulder) |
Process Management
Background Agents
Fire multiple agents in parallel for exploration and research:
// Launch background agents (non-blocking) delegate_task(subagent_type="explore", run_in_background=true, prompt="Find auth patterns in codebase") delegate_task(subagent_type="librarian", run_in_background=true, prompt="Find JWT best practices") // Collect results when needed background_output(task_id="bg_abc123") // Cancel all background tasks before final answer background_cancel(all=true)
Concurrency Configuration
{ "background_task": { "defaultConcurrency": 5, "staleTimeoutMs": 180000, "providerConcurrency": { "anthropic": 3, "google": 10 }, "modelConcurrency": { "anthropic/claude-opus-4-5": 2 } } }
Priority:
modelConcurrency > providerConcurrency > defaultConcurrency
Tmux Integration
Run background agents in separate tmux panes for visual multi-agent execution:
{ "tmux": { "enabled": true, "layout": "main-vertical", "main_pane_size": 60 } }
Requires running OpenCode in server mode inside a tmux session:
tmux new -s dev opencode --port 4096
Layout options:
main-vertical (default), main-horizontal, tiled, even-horizontal, even-vertical
Parallel Execution Patterns
Pattern 1: Explore + Librarian (Research Phase)
// Internal codebase search delegate_task(subagent_type="explore", run_in_background=true, prompt="Find how auth middleware is implemented") delegate_task(subagent_type="explore", run_in_background=true, prompt="Find error handling patterns in the API layer") // External documentation search delegate_task(subagent_type="librarian", run_in_background=true, prompt="Find official JWT documentation and security recommendations") // Continue working immediately — collect results when needed
Pattern 2: Category-Based Delegation (Implementation Phase)
// Frontend work → visual-engineering category delegate_task(category="visual-engineering", load_skills=["frontend-ui-ux"], prompt="Build the settings page") // Quick fix → quick category delegate_task(category="quick", load_skills=["git-master"], prompt="Create atomic commit for auth changes") // Hard problem → ultrabrain category delegate_task(category="ultrabrain", load_skills=[], prompt="Design the caching invalidation strategy")
Pattern 3: Session Continuity
// First delegation returns a session_id result = delegate_task(category="quick", load_skills=["git-master"], prompt="Fix the type error") // session_id: "ses_abc123" // Follow-up uses session_id to preserve full context delegate_task(session_id="ses_abc123", prompt="Also fix the related test file")
CLI Reference
Core Commands
opencode # Start TUI opencode --port 4096 # Start TUI with server mode (for tmux integration) opencode -c # Continue last session opencode -s <session-id> # Continue specific session opencode --agent <agent-name> # Start with specific agent opencode -m provider/model # Start with specific model
Non-Interactive Mode
opencode run "Explain closures in JavaScript" opencode run --agent oracle "Review this architecture" opencode run -m openai/gpt-5.2 "Complex reasoning task" opencode run --format json "Query" # Raw JSON output
Auth & Provider Management
opencode auth login # Add/configure a provider opencode auth list # List authenticated providers opencode auth logout # Remove a provider opencode models # List all available models opencode models anthropic # List models for specific provider opencode models --refresh # Refresh models cache
Session Management
opencode session list # List all sessions opencode session list -n 10 # Last 10 sessions opencode export <session-id> # Export session as JSON opencode import session.json # Import session opencode stats # Token usage and cost statistics opencode stats --days 7 # Stats for last 7 days
Plugin & MCP Management
bunx oh-my-opencode install # Install/configure oh-my-opencode bunx oh-my-opencode doctor # Diagnose configuration issues opencode mcp list # List configured MCP servers opencode mcp add # Add an MCP server
Server Mode
opencode serve --port 4096 # Headless server opencode web --port 4096 # Server with web UI opencode attach http://localhost:4096 # Attach TUI to running server
Built-in MCPs
Oh My OpenCode includes these MCP servers out of the box:
| MCP | Tool | Purpose |
|---|---|---|
| Exa | | Web search with clean LLM-ready content |
| Context7 | , | Official library/framework documentation lookup |
| Grep.app | | Search real-world code examples from public GitHub repos |
Hooks
All hooks are enabled by default. Disable specific hooks via
disabled_hooks config:
| Hook | Purpose |
|---|---|
| Forces agent to continue if it quits halfway |
| Monitors and manages context window usage |
| Recovers sessions after crashes |
| Notifies on session events |
| Prevents AI from adding excessive code comments |
| Truncates large grep outputs |
| Truncates large tool outputs |
| Injects AGENTS.md from subdirectories (auto-disabled on OpenCode 1.1.37+) |
| Injects README.md context |
| Detects and handles empty task responses |
| Extended thinking mode control |
| Recovers from Anthropic context limits |
| Injects project rules |
| Notifies when background tasks complete |
| Checks for oh-my-opencode updates |
| Shows startup notification (sub-feature of auto-update-checker) |
| Detects keywords like / to trigger modes |
| Reminds to use specialized agents |
| Handles non-interactive environments |
| Manages interactive bash/tmux sessions |
| Injects context during compaction |
| Validates thinking blocks |
| Claude Code compatibility hooks |
| Ralph Loop continuation mechanism |
| Triggers compaction before context overflow |
| Auto-triggers slash commands |
| Notepad for Sisyphus-Junior subagents |
| Recovers from edit errors |
| Retries failed task delegations |
| Enforces Prometheus markdown-only output |
| Handles /start-work command |
| Atlas orchestrator hook |
Best Practices
Do
- Use
for quick autonomous tasks — just include the keyword in your promptulw - Use Prometheus +
for complex projects — interview-based planning leads to better outcomes/start-work - Configure categories for your providers — ensures optimal model selection instead of falling back to system default
- Fire explore/librarian agents in parallel — always use
run_in_background=true - Use session continuity — pass
for follow-up interactions with the same subagentsession_id - Let the agent delegate — Sisyphus is an orchestrator, not a solo implementer
- Run
to diagnose issuesbunx oh-my-opencode doctor
Don't
- Don't use Atlas without
— Atlas requires a Prometheus plan/start-work - Don't manually specify models for every agent — the fallback chain handles this
- Don't disable
— it's what keeps the agent completing worktodo-continuation-enforcer - Don't use Claude Haiku for Sisyphus — Opus 4.5 is strongly recommended
- Don't run explore/librarian synchronously — always background them
When to Use This Skill
- Installing or configuring oh-my-opencode
- Understanding agent roles and delegation patterns
- Troubleshooting model resolution or provider issues
- Setting up tmux integration for visual multi-agent execution
- Configuring categories for cost optimization
- Understanding the ultrawork vs Prometheus workflow choice
When NOT to Use This Skill
- General OpenCode usage unrelated to oh-my-opencode plugin features
- Provider authentication issues (use
directly)opencode auth - OpenCode core configuration (use OpenCode docs at https://opencode.ai/docs/)
Rules for the Agent
- Package name is
— NOToh-my-opencode
or any other name@anthropics/opencode - Use
(officially recommended) — notbunx
for oh-my-opencode CLI commandsnpx - Agent invocation uses
flag or--agent
— NOTdelegate_task()
prefix@agent - Never change model settings or disable features unless the user explicitly requests it
- Sisyphus strongly recommends Opus 4.5 — using other models degrades the experience significantly
- Categories do NOT use built-in defaults unless configured — always verify with
bunx oh-my-opencode doctor --verbose - Prometheus and Atlas are always paired — never use Atlas without a Prometheus plan
- Background agents should always use
— never block on explorationrun_in_background=true - Session IDs should be preserved and reused — saves 70%+ tokens on follow-ups
- When using Ollama, set
— required to avoid JSON parse errorsstream: false
Auto-Notify on Completion
Background tasks automatically notify when complete via the
background-notification hook. No polling needed — the system pushes completion events. Use background_output(task_id="...") only when you need to read the result.
Reference Documents
- Configuration Reference — Complete config with all agents, categories, provider chains, hooks, and options
- Troubleshooting Guide — Common issues and solutions