omos-fitzpa
v1.1.2
Published
Lightweight agent orchestration plugin for OpenCode - a fork of oh-my-opencode-slim
Maintainers
Readme
What's This Plugin
omos-fitzpa is the published npm package and CLI for this maintained fork of
oh-my-opencode-slim, an agent orchestration plugin for OpenCode. It includes a
built-in team of specialized agents that can scout a codebase, look up fresh
documentation, review architecture, handle UI work, and execute well-scoped
implementation tasks under one orchestrator.
The main idea is simple: instead of forcing one model to do everything, the plugin routes each part of the job to the agent best suited for it, balancing quality, speed and cost.
Current capabilities include:
@reviewerfor read-only changed-code review and/review-changes@simplifierfor behavior-preserving cleanup and/simplify-changes- optional post-edit automation that can run review or simplification after tracked edits
- CodeGraph-aware guidance when a project has
.codegraph/codegraph.dband an OpenCode MCP namedcodegraph - generated presets for
openai,opencode-go,zen-max,zen-balanced, andzen-low
To explore the agents themselves, see Meet the Pantheon. For the full feature set, see Features & Workflows below.
Quick Start
Copy and paste this prompt to your LLM agent (Claude Code, AmpCode, Cursor, etc.):
Install and configure omos-fitzpa from npm using: bunx omos-fitzpa@latest installManual Installation
bunx omos-fitzpa@latest installThe installer also registers the companion TUI plugin in OpenCode's
tui.json, which adds a small sidebar showing specialist-agent status plus
active/reusable task sessions. It also warms OpenCode's plugin cache so bunx
installs keep loading even after temporary directories are cleaned up. For
manual setups, add omos-fitzpa to the plugin array in both
opencode.json and tui.json.
If you previously installed the upstream oh-my-opencode-slim package or a
local development checkout, rerun the installer above. It replaces old plugin
entries with omos-fitzpa while preserving the existing
~/.config/opencode/oh-my-opencode-slim.json plugin configuration file unless
you pass --reset.
Getting Started
The installer generates OpenAI, OpenCode Go, and OpenCode Zen presets, with OpenAI active by default. OpenAI uses openai/gpt-5.5 for the higher-judgment agents and openai/gpt-5.4-mini for the faster-scoped agents. To make another generated preset active during install, run bunx omos-fitzpa@latest install --preset=opencode-go, --preset=zen-max, --preset=zen-balanced, or --preset=zen-low, or change the default preset name in ~/.config/opencode/oh-my-opencode-slim.json after installation.
Then:
Log in to the providers you want to use if you haven't already:
opencode auth loginRefresh and list the models OpenCode can see:
opencode models --refreshOpen your plugin config at
~/.config/opencode/oh-my-opencode-slim.jsonUpdate the models you want for each agent
[!TIP] It's recommended to understand how automatic delegation works. The Orchestrator prompt contains the delegation rules, specialist routing logic, and the thresholds for when the main agent should hand work off to subagents. You can always delegate manually by calling a subagent via:
@agentName <task>
The default generated configuration includes openai, opencode-go, zen-max, zen-balanced, and zen-low presets.
{
"$schema": "https://unpkg.com/omos-fitzpa@latest/oh-my-opencode-slim.schema.json",
"preset": "openai",
"presets": {
"openai": {
"orchestrator": { "model": "openai/gpt-5.5", "skills": ["*"], "mcps": ["*", "!context7"] },
"oracle": { "model": "openai/gpt-5.5", "variant": "high", "skills": ["simplify"], "mcps": [] },
"librarian": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": ["websearch", "context7", "grep_app"] },
"explorer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] },
"designer": { "model": "openai/gpt-5.4-mini", "variant": "medium", "skills": ["agent-browser"], "mcps": [] },
"fixer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] },
"reviewer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] },
"simplifier": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] }
},
"opencode-go": {
"orchestrator": { "model": "opencode-go/glm-5.1", "skills": [ "*" ], "mcps": [ "*", "!context7" ] },
"oracle": { "model": "opencode-go/deepseek-v4-pro", "variant": "max", "skills": ["simplify"], "mcps": [] },
"council": { "model": "opencode-go/deepseek-v4-pro", "variant": "high", "skills": [], "mcps": [] },
"librarian": { "model": "opencode-go/minimax-m2.7", "skills": [], "mcps": [ "websearch", "context7", "grep_app" ] },
"explorer": { "model": "opencode-go/minimax-m2.7", "skills": [], "mcps": [] },
"designer": { "model": "opencode-go/kimi-k2.6", "variant": "medium", "skills": [ "agent-browser" ], "mcps": [] },
"fixer": { "model": "opencode-go/deepseek-v4-flash", "variant": "high", "skills": [], "mcps": [] },
"reviewer": { "model": "opencode-go/deepseek-v4-flash", "variant": "high", "skills": [], "mcps": [] },
"simplifier": { "model": "opencode-go/deepseek-v4-flash", "variant": "high", "skills": [], "mcps": [] },
"observer": { "model": "opencode-go/kimi-k2.6", "skills": [], "mcps": [] }
},
"zen-balanced": {
"orchestrator": {
"model": [
{ "id": "opencode/glm-5.1", "variant": "medium" },
{ "id": "opencode/gpt-5.3-codex", "variant": "medium" },
{ "id": "opencode/kimi-k2.6", "variant": "medium" },
{ "id": "opencode/gpt-5.4-mini", "variant": "medium" }
],
"skills": ["*"],
"mcps": ["*", "!context7"]
},
"oracle": {
"model": [
{ "id": "opencode/gpt-5.3-codex", "variant": "high" },
{ "id": "opencode/glm-5.1", "variant": "high" },
{ "id": "opencode/kimi-k2.6", "variant": "high" },
{ "id": "opencode/claude-haiku-4-5", "variant": "high" }
],
"skills": ["simplify"],
"mcps": []
},
"reviewer": {
"model": [
{ "id": "opencode/gpt-5.3-codex", "variant": "medium" },
{ "id": "opencode/glm-5.1", "variant": "medium" },
{ "id": "opencode/claude-haiku-4-5", "variant": "medium" }
],
"skills": [],
"mcps": []
},
"simplifier": {
"model": [
{ "id": "opencode/gpt-5.4-mini", "variant": "medium" },
{ "id": "opencode/minimax-m2.7", "variant": "medium" },
{ "id": "opencode/kimi-k2.6", "variant": "medium" }
],
"skills": [],
"mcps": []
}
}
}
}The Zen presets use the opencode/... provider IDs from OpenCode Zen. zen-max
prefers the strongest non-Pro models while avoiding gpt-5.4-pro,
gpt-5.5-pro, and claude-opus-4-7; zen-balanced uses efficient paid models;
zen-low keeps paid cheap models first and free models late in fallback chains
to reduce rate-limit risk.
For CodeGraph-aware discovery, configure an OpenCode MCP named codegraph and
generate .codegraph/codegraph.db in the project. Agents only receive the
guidance when their mcps list allows codegraph. See
MCPs for details.
For Alternative Providers
To use custom providers or a mixed-provider setup, use Configuration for the full reference. If you want a ready-made starting point, check the Author's Preset and $30 Preset - the $30 preset is the best cheap setup.
The configuration guide also covers custom subagents via agents.<name>, where
you can define both a normal prompt and an orchestratorPrompt block for
delegation.
For model suggestions, see the Recommended Models listed under each agent below.
✅ Verify Your Setup
After installation and authentication, verify all agents are configured and responding:
opencodeThen run:
ping all agentsIf any agent fails to respond, check your provider authentication and config file.
🏛️ Meet the Pantheon
01. Orchestrator: The Embodiment Of Order
02. Explorer: The Eternal Wanderer
03. Oracle: The Guardian of Paths
04. Council: The Chorus of Minds
[!NOTE] Why doesn't Orchestrator auto-call Council more often? This is intentional. Council runs multiple models at once, so automatic delegation is kept strict because it is usually the highest-cost path in the system. In practice, Council is meant to be used manually when you want it, for example: @council compare these two architectures.
05. Librarian: The Weaver of Knowledge
06. Designer: The Guardian of Aesthetics
07. Fixer: The Last Builder
08. Reviewer: The Watchful Auditor
Read-only changed-code review — reviews staged, unstaged, and untracked
working tree changes for bugs, correctness, security, regressions, and missing
tests. Use @reviewer directly or run /review-changes.
- Default model:
openai/gpt-5.4-mini - Best for routine review of bounded changes
- Use
@oracleinstead when review requires architecture-level judgment or high-risk trade-off analysis
Prompt: src/agents/reviewer.ts
09. Simplifier: The Careful Refiner
Behavior-preserving cleanup — simplifies recently changed code without
changing public APIs, error messages, execution order, async behavior, or side
effects. Use @simplifier directly or run /simplify-changes.
- Default model:
openai/gpt-5.4-mini - Best for local cleanup, reduced nesting, redundant checks, and clearer changed code
- Skips changes when behavior preservation is uncertain
Prompt: src/agents/simplifier.ts
Optional Agents
Observer: The Silent Witness
[!NOTE] Why a separate agent? If your Orchestrator model is not multimodal, enable Observer to handle images, screenshots, PDFs, and other visual files. Observer is disabled by default and gives the Orchestrator a dedicated multimodal reader without forcing you to change your main reasoning model. Set
disabled_agents: []and anobservermodel in your configuration. The bundledopencode-goinstall preset does this automatically because its GLM Orchestrator is not multimodal.
Read-only visual analysis — interprets images, screenshots, PDFs, and diagrams. Returns structured observations to the orchestrator without loading raw file bytes into the main context window.
Images, screenshots, diagrams →
readtool (native image support)PDFs and binary documents →
readtool (text + structure extraction)Disabled by default — enable with
"disabled_agents": []and configure a vision-capable model; installing with--preset=opencode-goenables it withopencode-go/kimi-k2.6
📚 Documentation
Use this section as a map: start with installation, then jump to features, configuration, or example presets depending on what you need.
🚀 Start Here
| Doc | What it covers | |-----|----------------| | Installation Guide | Install the plugin, use CLI flags, reset config, and troubleshoot setup |
✨ Features & Workflows
| Doc | What it covers |
|-----|----------------|
| Council | Run multiple models in parallel and synthesize a single answer with @council |
| Multiplexer Integration | Watch agents work live in Tmux or Zellij panes |
| Session Management | Reuse recent child-agent sessions with short aliases instead of starting over |
| Todo Continuation | Auto-continue orchestrator sessions with cooldowns and safety checks |
| Preset Switching | Switch agent model presets at runtime with /preset |
| Subtask | Run a bounded child worker with /subtask and return a structured summary to the main session |
| Configuration | Optional post-edit /review-changes and /simplify-changes automation |
| Codemap | Generate hierarchical codemaps to understand large codebases faster |
| Clonedeps | Clone selected dependency source into an ignored local workspace for inspection |
| Interview | Turn rough ideas into a structured markdown spec through a browser-based Q&A flow |
| Divoom Display | Mirror orchestrator and specialist-agent activity to a Divoom MiniToo Bluetooth display |
⚙️ Config & Reference
| Doc | What it covers |
|-----|----------------|
| Configuration | Config file locations, JSONC support, prompt overrides, and full option reference |
| Maintainer Guide | Issue triage rules, label meanings, support routing, and repo maintenance workflow |
| Skills | Built-in and recommended skills such as simplify, agent-browser, codemap, and clonedeps |
| MCPs | websearch, context7, grep_app, and how MCP permissions work per agent |
| Tools | Built-in tool capabilities like webfetch, LSP tools, code search, and formatters |
💡 Presets
| Doc | What it covers |
|-----|----------------|
| Author's Preset | The author's daily mixed-provider setup |
| $30 Preset | A budget mixed-provider setup for around $30/month |
| OpenCode Go Preset | The bundled opencode-go preset generated by the installer |
| OpenCode Zen Presets | Bundled zen-max, zen-balanced, and zen-low generated presets |
🏛️ Contributors
📄 License
MIT
