OpenCode is a terminal-native agent that reads AGENTS.md, supports MCP servers, and has its
own config (opencode.json). No stop-hook β self-paced loop.
bash scripts/install.sh opencodeThe installer ensures AGENTS.md loads .claude/skills/simplicio-tasks/SKILL.md + satellites
and registers the MCP server in opencode.json.
Drive ticks headlessly on a schedule:
*/2 * * * * cd /repo && opencode run "/simplicio-tasks continue the open queue"simplicio-loop advances the scratchpad and exits on the evidence-gated promise, the cap,
spindle handoff, or explicit STOP.
orient_clamp.py works as-is. Reference it in AGENTS.md so heavy commands are clamped.
simplicio-runtime native binding is REQUIRED on OpenCode β a missing/unreachable bind
BLOCKS the loop preflight (CLAUDE.md Β§ Hooks). Add this to opencode.json:
{ "mcp": { "simplicio": { "type": "local", "command": ["simplicio", "serve", "--mcp", "--stdio"] } } }Use simplicio doctor --json to confirm the bind.
- Config file:
opencode.json(oropencode.jsonc) at the repo root, under themcpkey β OpenCode's schema usestype: "local"+ acommandarray, notcommand/argssplit like most other hosts. - Snippet:
{
"mcp": {
"simplicio": {
"type": "local",
"command": ["simplicio", "serve", "--mcp", "--stdio"],
"environment": {}
}
}
}(OpenCode inherits the working directory it was launched from; run opencode from the target
repo, or set environment/cwd per your OpenCode version's config reference.)
- Verify:
simplicio doctor --json | grep -A2 mcp-host-registration, oropencode mcp listif your version ships that subcommand. Tier: best-effort β OpenCode is Tier 2 (provider- agnostic MCP support is documented upstream but not mechanically gated here).
opencode run "/simplicio-tasks finish all the open issues"
Self-paced (N2): the tick echoes the turn-header. Universal fallback (N3, works with any config):
watch -n5 cat .orchestrator/loop/PROGRESS.md.