opencode

Harness layer — the agent program, not a process framework and not an execution runtime. A harness loads a framework’s skills/commands and drives the model’s tool-call loop; it performs no SDLC stage and connects to the ontology only through the execution primitives it enables: as patterns. Frameworks runs_on: it; runtimes runs: it.

opencode (Anomaly — the team formerly SST/Serverless Stack; MIT, open source) is a terminal-first AI coding harness whose defining trait is model-agnosticism: unlike claude-code (Anthropic models only), it drives Claude, GPT, Gemini, Bedrock, Azure, Groq, OpenRouter, and its own curated “OpenCode Zen” model set behind one agent. It is otherwise batteries-included — first-class sub-agents, MCP, a native plugin+hook system, plan/build modes, and a permissions framework — making it, alongside Claude Code, one of the two full-primitive terminal harnesses here (and the opposite pole from pi’s minimal core). It ships a TUI (native), a desktop app, and an IDE extension.

What it provides (primitives, not process)

  • Sub-agents — built-in build (full tool access) and plan (read-only) agents, plus General / Explore / a Scout research agent, and background subagents.
  • MCP — MCP servers supported.
  • Hooks — a native plugin hook system (tool.execute.before / .after, session.idle, …) that can intercept, block, or modify tool calls.
  • Slash-commands & skills — custom commands; configurable “skills,” rules, and custom tools; AGENTS.md for project config.
  • Permissions & plan mode — a permissions/policies framework (e.g. the plan agent set to “ask” before edits/bash); Plan vs Build modes.
  • Session persistence — session management with undo/redo and shareable web links.
  • Model access — multi-provider (Anthropic/OpenAI/Google/Bedrock/Azure/Groq/OpenRouter/…) + OpenCode Zen.

Interaction surface

Terminal TUI (native), a desktop app (beta), and an IDE extension; sessions shareable via web links. Native surface is the terminal — hence subtype: terminal.

Harness profile

Capabilityopencode
Skill / command formatAGENTS.md · custom slash-commands · configurable skills · custom tools
Sub-agentsfirst-class — build / plan / explore / scout + background subagents
MCPyes
Hooks / extensibilitynative plugin + hook system; SDK; community registry
Permissions & guardrailspermissions/policies framework + Plan vs Build modes
Model accessmodel-agnostic — many providers + OpenCode Zen curated set
Memory & context filesAGENTS.md; session undo/redo + shareable state
Interaction surfaceterminal TUI (primary) · desktop app · IDE extension
Distribution / licenseAnomaly (ex-SST), MIT / open source

Distinctive contribution

opencode is the wiki’s model-agnostic, open-source terminal harness — the demonstration that the full primitive set (pattern-fresh-context-subagents, pattern-edit-guardrails, pattern-session-handoff, pattern-context-engineering) is not unique to Claude Code, and that a framework’s skills can run on the same primitives against any model provider. Its native plugin+hook system and multi-surface reach (TUI/desktop/IDE) make it the batteries-included counterpart to pi’s deliberately minimal core, and the open counterpart to claude-code’s Anthropic-hosted one.

Patterns provided

  • pattern-fresh-context-subagents — the build/plan/explore/scout agents (and background subagents) each run with their own context and scoped tools.
  • pattern-edit-guardrails — the permissions/policies framework + the read-only plan agent + hooks that can block a tool call are the mutation-gating substrate.
  • pattern-session-handoff — session management with undo/redo, resume, and shareable links carries working context across a boundary.
  • pattern-context-engineeringAGENTS.md + configurable skills + MCP assemble the right context per turn.

See Also