opencode-pair
v1.3.0
Published
OpenCode harness with a five-agent topology: mrrobot, eliot, tyrell, claude, turing.
Maintainers
Readme
opencode-pair
OpenCode harness with a five-agent setup: one primary, one general subagent, one ideation subagent, one frontend design subagent, and one validation-focused subagent.
What it does
- MrRobot is the primary agent. He routes work and answers plainly.
- Eliot is the general subagent. He handles implementation, refactors, repo exploration, and other scoped task work.
- Tyrell is the ideation subagent. It handles brainstorming, naming, UX direction, product ideas, and open-ended exploratory packets.
- Claude is the frontend design subagent. He is the default implementation lane for pages, components, styling, layout, and visual polish unless the user explicitly asks for review-only output or no file edits, on
openai/gpt-5.5-fastlowwith bundled Impeccable plus stack-aware taste/redesign skills. - Implementation packets should be edited directly in the repo by the assigned subagent; research, review, and ideation packets should return findings without edits unless edits are explicitly requested.
- Ongoing subagent work should continue with the same
task_idby default when the lane and workstream still match. - Turing is the validation-focused subagent.
- No plan/execute mode or harness slash-command flow.
- No cross-session memory, pattern learning, or observation logs. Workflow-local task tracking only keeps recent
task_idhints for continuation inside related sessions. - Comment guard blocks suspicious AI-style comments before file writes and surfaces anything that still slips through.
Agents
| Agent | Character | Role | Model | Variant | | ----- | --------- | ---- | ----- | ------- | | mrrobot | MrRobot | Primary agent — routes, synthesizes, answers | openai/gpt-5.5-fast | medium | | eliot | Eliot | General-purpose subagent | openai/gpt-5.5-fast | low | | tyrell | Tyrell | Ideation-focused subagent | openai/gpt-5.5-fast | low | | claude | Claude | Frontend design subagent | openai/gpt-5.5-fast | low | | turing | Turing | Validation-focused review and verification | openai/gpt-5.5-fast | xhigh |
All harness agents use fast model IDs. MrRobot uses openai/gpt-5.5-fast medium, implementation/ideation/frontend subagents use openai/gpt-5.5-fast low, and Turing uses openai/gpt-5.5-fast xhigh.
MCP Servers
| MCP | What | API Key |
| --- | ---- | ------- |
| context7 | Library and framework documentation | No |
| grep_app | GitHub code search across public repos | No |
| searxng | Web search via self-hosted SearXNG | No |
| web-agent-mcp | Browser testing and automation | No |
| pg-mcp | PostgreSQL read-only client | No |
| ssh-mcp | Remote command execution on configured SSH hosts | No |
| openai-image-gen-mcp | Image generation via Codex auth store | No |
| mariadb | MariaDB client | No |
Shared managed MCP roots stay under ~/.config/{mcp_name}.
All five agents receive the same enabled MCP set and the same default full tool access. The harness does not add per-agent MCP or tool restrictions.
Prerequisites
- Docker — required for SearXNG (auto-provisioned by installer)
Quick start
bunx opencode-pair installThe installer will:
- Wire agents and MCPs into OpenCode config
- Install shell strategy instructions
- Vendor
pg-mcp,ssh-mcp,web-agent-mcp,openai-image-gen-mcp, and bundled skills (including Impeccable plus taste/redesign skills for Claude) - Install dependencies inside each shared managed MCP root
- Auto-provision SearXNG Docker container (
--restart unless-stopped,127.0.0.1:8099:8080) - Enable JSON format in SearXNG settings
From source:
git clone https://github.com/cemalturkcan/opencode-pair.git
cd opencode-pair
bun install && bun run build && bun link
opencode-pair installCommands
opencode-pair install # wire into OpenCode config
opencode-pair fresh-install # rebuild harness files, keep user config
opencode-pair uninstall # remove harness wiring
opencode-pair init # create project-local config
opencode-pair print-config # inspect generated configConfig
Merges from two layers (project wins):
~/.config/opencode/opencode-pair.jsonc— user-level<project>/.opencode/opencode-pair.jsonc— project-level
Create project config:
opencode-pair initworkflow.compact_subagent_context defaults to true. It shortens the project-fact line injected into subagent sessions; set it to false to keep the longer human-readable format.
Hooks
| Hook | What it does |
| ---- | ------------ |
| chat.message | Inject project docs, WSL notes, and active subagent task IDs for MrRobot; inject compact project facts for Eliot, Tyrell, Claude, and Turing |
| tool.execute.before | Block suspicious AI-style comments before writes, enforce git-push build gate, auto-transform Node commands on WSL |
| tool.execute.after | Surface suspicious comments that still remain after a write; capture subagent task IDs for continuation hints |
| session.deleted | Clear ephemeral runtime state |
hooks.task_tracking defaults to true and controls task-id capture plus primary-session continuation hints.
Architecture
src/
├── prompts/
│ ├── mcp-access.ts # Enabled MCP list and prompt guidance
│ ├── shared.ts # Shared prompt rules and response style
│ ├── workers.ts # Eliot, Tyrell, Claude, and Turing prompt builders
│ └── coordinator.ts # MrRobot prompt builder plus routing rules
├── agents.ts # Agent definitions (models and prompts)
├── mcp.ts # MCP server registration
├── hooks/ # Runtime hooks (comment guard, WSL, cleanup)
├── config.ts # Config schema + loading
├── installer.ts # CLI installer
└── index.ts # Plugin entry point