Harness — the agent-program layer

The framework / capability / sdlc-stage triad models the process layerwhat an agent does across the lifecycle. This namespace models the harness — the agent program itself: the loop that loads a framework’s skills/commands, assembles context, calls the model, executes the model’s tool calls under a permission/hook policy, spawns sub-agents, and returns a result. Claude Code, pi, OpenCode, Codex, Cursor, and Copilot are harnesses.

A harness is neither a framework (it ships no SDLC methodology — it loads one) nor a runtime (it doesn’t sandbox/parallelize/AFK agents — a runtime does that to it). It is the pivot both other layers were already defined against: frameworks are “cross-harness” and runtimes are “harness-agnostic”, and both phrases mean “…across these harnesses.” Making it a node turns those into stored edges — framework --runs_on--> harness and runtime --runs--> harness — and it connects to the rest of the wiki at one seam: the pattern namespace, via enables: (the execution primitives capabilities build on). See CONVENTIONS §The harness layer.

Members

HarnessSubtypeOne-liner
claude-codeterminalAnthropic’s official agentic coding harness — tool-call loop + first-class sub-agents, skills, MCP, hooks, permission/plan modes; Anthropic models only. The reference / batteries-included proprietary pole; nearly every framework here runs on it.
opencodeterminalAnomaly’s (ex-SST) open-source, model-agnostic harness — same full primitive set (sub-agents, MCP, native hooks, plan/build, permissions) across many model providers + OpenCode Zen; TUI/desktop/IDE. The open, model-agnostic pole.
piterminalZechner/Earendil’s minimal-core harness — 4 built-in tools; sub-agents, MCP, permissions, plan mode all deliberately excluded from core → TypeScript extensions. Model-agnostic, terminal-only. The minimalist pole.
factory-droidterminalFactory.ai’s terminal harness — full primitive set (Custom Droids, skills, 40+ MCP servers, hooks, plugins, autonomy levels) over the AGENTS.md standard, plus multi-model routing (Anthropic/OpenAI/Google/open-weight, mid-session swap, BYOK, free Droid Core) and Missions multi-agent orchestration. The model-routing pole.

Ingest queue (not yet paged, named as officially-supported by ≥1 framework/runtime): Codex · Cursor · GitHub Copilot · Gemini CLI · Kimi · Windsurf · Antigravity · sapling.

Harness profile (the synthesis axis)

The harness layer’s analogue of the SDLC-stage synthesis: the dimensions harnesses are compared on are execution capabilities, not lifecycle stages. Held as this matrix (not their own node namespace) until the layer grows enough to warrant graduating them — see CONVENTIONS.

Capabilityclaude-codeopencodepifactory-droid
Skill / command formatSKILL.md · .claude/commands/* · pluginsAGENTS.md · custom commands · skills · custom toolsSkills (/skill:name) · prompt templates · AGENTS.md+SYSTEM.mdAGENTS.md (standard) · SKILL.md skills · slash-commands · plugins
Sub-agentsfirst-class (Agent/Task, fresh context, concurrent)first-class (build/plan/explore/scout + background)not in core — extension onlyfirst-class (Custom Droids, fresh ctx + own session, per-droid model, Task/run_in_background)
MCPyes (local + remote, deferred)yesnot in core — extension onlyyes — 40+ pre-configured + OAuth
Hooks / extensibilitylifecycle hooks · plugins · Agent SDKnative plugin+hook system · SDK · registryTypeScript extensions · SDK · Rust impllifecycle hooks · plugins (cmd/droid/skill/hook bundles) · Sessions API
Permissions & guardrailsmodes (default/plan/acceptEdits/bypass) + plan modepermissions/policies + Plan vs Buildnot in core — sandbox/extensionautonomy levels off/low/medium/high (--auto) + read-only review + approval workflows
Model accessAnthropic only; Fast modemodel-agnostic — many providers + Zenmodel-agnostic — many providers; mid-session switchmulti-model routing — Anthropic/OpenAI/Google/open-weight, mid-session, complexity-tiered, BYOK, free Droid Core
Memory & context filesCLAUDE.md + memory · auto-compactionAGENTS.md · session undo/redoAGENTS.md+SYSTEM.md · compactionAGENTS.md (git-root discovery + ~/.factory/)
Interaction surfaceterminal · desktop · web · VS Code/JetBrainsterminal TUI · desktop · IDE extterminal TUI · print/JSON · RPC · SDKterminal TUI · headless droid exec (CI) · IDE · web · Sessions API
Distribution / licenseAnthropic, proprietaryAnomaly, MITEarendil, MITFactory.ai, proprietary (free Droid Core tier)

The comparison is the point of the layer. Two axes stand out: model access and primitive completeness. On model access the four now span a full spectrum — Claude Code is Anthropic-only, opencode and pi are provider-neutral, and Factory Droid pushes furthest by making routing between models (frontier + open-weight, mid-session, complexity-tiered, BYOK) a first-class feature rather than a config choice. On primitive completeness, Claude Code, opencode, and Factory Droid all ship sub-agents/MCP/permissions as core (Droid’s set maps almost 1:1 onto Claude Code’s), while pi deliberately omits all three — the property that decides whether a framework assuming those primitives is portable to pi without extensions. These axes, not SDLC stages, are the harness-layer synthesis.

Patterns this layer supplies

The harness layer touches the wiki only through the patterns it enables: — each gains a harness-side roster alongside the process-side (capabilities that apply it) and infra-side (runtimes that enable it) rosters:

  • pattern-fresh-context-subagents — claude-code (Agent/Task tool) · opencode (build/plan/explore/scout) · factory-droid (Custom Droids + Task/run_in_background) — not pi (extension only)
  • pattern-edit-guardrails — claude-code (hooks + permission modes) · opencode (permissions/policies + plan-ask + hooks) · factory-droid (autonomy levels + hooks + approval workflows) — not pi (extension only)
  • pattern-session-handoff — claude-code (compaction + resume) · opencode (session mgmt/undo/resume) · pi (tree-structured resumable sessions + compaction) · factory-droid (own-session subagents + Sessions API + headless droid exec)
  • pattern-context-engineering — claude-code (CLAUDE.md + memory + MCP) · opencode (AGENTS.md + skills + MCP) · pi (AGENTS.md+SYSTEM.md + skills + compaction) · factory-droid (AGENTS.md standard + skills + 40+ MCP + plugins)

The two patterns pi omits are the layer’s sharpest finding: a pattern can be a first-class harness primitive in one harness and entirely absent from another’s core — which is precisely the cross-harness portability signal capabilities alone can’t express.

Framework support (the runs_on: inverse)

Which harnesses each framework officially documents support for (its own docs’ claim — not “could run there”). Bold = has a page (a stored runs_on: edge points here); plain = officially supported but not yet paged (prose-only per the support-scope rule). This matrix is the central home for the full support data; the stored edges cover only the paged subset.

FrameworkOfficially-supported harnesses
gsdclaude-code · opencode · Gemini CLI · Kimi CLI · Kilo · Codex · Copilot · Cursor · Windsurf
matt-pocock-skillsclaude-code (only one named; soft “any agent” claim)
addy-agent-skillsclaude-code · opencode · Cursor · Gemini CLI · Antigravity · Windsurf · Copilot · Kiro · Codex
openspecclaude-code · Copilot · Cursor · Windsurf · Kimi CLI · Trae (claims “30+“)
speckitclaude-code · Copilot · Gemini CLI · Qwen Code · Codex CLI (claims “30+“)
bmadclaude-code · Cursor · Copilot (+ Gemini Gems / ChatGPT GPTs = planning surfaces, not harnesses)
compound-engineeringclaude-code · opencode · pi · factory-droid · Cursor · Codex · Kimi · Copilot · Qwen · Antigravity
gstackclaude-code · opencode · factory-droid · Codex CLI · Cursor · Slate · Kiro · Hermes · GBrain (Claude-Code-native)
bm-skillsclaude-code (Claude Code plugin marketplace; emits AGENTS.md/CLAUDE.md for others)
superpowersclaude-code · opencode · pi · factory-droid · Antigravity · Codex (App/CLI) · Cursor · Copilot CLI · Kimi Code
nano-specclaude-code · opencode · Codex · Gemini CLI · Antigravity · Cline · Cursor · Windsurf · Trae · Copilot
agent-osclaude-code (primary — slash commands) · Cursor · Windsurf · Codex · Antigravity (“any AI assistant that reads markdown”)

Claude Code is the universal target; opencode is the most broadly officially-supported second harness (6 frameworks); factory-droid is named by the three individual-author cross-harness frameworks (compound-engineering, gstack, superpowers); pi by two of them (Compound Engineering, Superpowers). Two frameworks are effectively Claude-Code-only in what they name: bm-skills (a CC plugin marketplace) and matt-pocock-skills (soft “any agent” claim, no others named).

The broader category

Four documented instances are the start, not the extent. The same layer includes the other terminal harnesses named across the frameworks/runtimes above — OpenAI’s Codex CLI, Cursor (also IDE), GitHub Copilot CLI, Google’s Gemini CLI, Kimi, Qwen Code, Antigravity, Windsurf, sapling (Warren’s), plus Aider and Sourcegraph’s Amp; and ide-pole harnesses like Cursor, Copilot, and Windsurf. Ingest more as they warrant pages — Codex and Cursor are the strongest next candidates (named by the most frameworks); graduate the matrix into derived nodes if it stops scaling.

4 items under this folder.