Corpus Agentis
The field book to agent ecosystems
The field book to agent ecosystems
Stack · Harnesses

Agent harnesses

An exoskeleton for a language model. A model on its own takes text in and gives text out with no memory of the last call; bolt on a loop, access to your machine, integrations and skills, and it can do work. The model reasons. The harness is everything else.

inout MODELnothing kept CONTEXTSKILLSTOOLSACCESS HARNESSthe loop, the reach, the repair GOALSTATEACTRESULT AGENTgiven a goal, it runs
Anatomy · what an exoskeleton is made of
The loop

A while-loop that keeps going: propose, act, read the result, revise. When a tool fails it feeds the error back and retries rather than stopping.

Access

A way to reach the world — your shell, your filesystem, a browser, or a sandboxed container. Without reach it can only talk.

Integrations

The tools it may call, increasingly over MCP, so the same harness can drive systems it was never written for.

Skills

Reusable instructions it loads on demand — modes, rules, subagents — so behaviour can be extended without changing the harness.

Harness or agent · where the line sits
HarnessAgent
Who sets the goalYou do, every time you run itSet once, then it runs to it
SupervisionYou are in the chair, approving stepsLittle to none, by design
The modelA setting you choose, often swappablePart of the product, chosen for you
Where it runsYour machine — shell, editor, local runtimeA platform or the cloud, without your laptop on
ScopeGeneral purpose. You supply the taskPointed at one standing job
What you buyThe exoskeleton. You bring the modelThe finished worker, model included

Our classification, not a vendor's. The difference is supervision and who supplies the intent, not what the software is capable of.

By category · stacked by model support

Bar length is the count. Segments are the models column: sand is model-agnostic, each colour a vendor a first-party harness is tied to.

Terminal9
6
1
1
1
Editor8
7
1
Autonomous runtime11
10
1
MULTI-MODEL 23MULTI-MODEL · LOCAL 2ANTHROPIC (FIRST-PARTY) 1GOOGLE (FIRST-PARTY) 1OPENAI (FIRST-PARTY) 1
28 harnesses · filter by what they wrap
All 28Terminal 9Editor 8Autonomous runtime 11
HarnessCategoryModelsAccessSkillsLicenceStarsSrc
OpenCode
Anomaly
Terminal Multi-model terminal · filesystem Model-agnostic tool loop MIT 190,595 ↗ T1
Claude Code
Anthropic
Terminal Anthropic (first-party) terminal · filesystem · git Skills, subagents, hooks, MCP OSS 139,425 ↗ T1
Gemini CLI
Google
Terminal Google (first-party) terminal · filesystem Extensions, MCP Apache-2.0 106,229 ↗ T1
Codex CLI
OpenAI
Terminal OpenAI (first-party) terminal · filesystem · sandbox Approval modes, sandboxed exec Apache-2.0 102,182 ↗ T1
Goose
Block / AAIF
Terminal Multi-model terminal · filesystem · desktop Extensions over MCP Apache-2.0 51,872 ↗ T1
Aider
Aider AI
Terminal Multi-model terminal · filesystem · git Repo map, git commit loop Apache-2.0 47,766 ↗ T1
Crush
Charm
Terminal Multi-model terminal · filesystem LSP-aware, MCP OSS 26,912 ↗ T1
Qwen Code
Alibaba Qwen
Terminal Multi-model terminal · filesystem Terminal coding loop Apache-2.0 26,403 ↗ T1
Plandex
Plandex AI
Terminal Multi-model terminal · filesystem · sandbox Diff review sandbox, long-run planning MIT 15,542 ↗ T1
Zed
Zed Industries
Editor Multi-model editor · terminal Agent panel, MCP context servers OSS 87,664 ↗ T1
Cline
Cline
Editor Multi-model editor · terminal · browser Plan/Act modes, MCP marketplace Apache-2.0 65,147 ↗ T1
Continue
Continue
Editor Multi-model editor · terminal Custom rules, slash commands Apache-2.0 35,167 ↗ T1
Void
Void
Editor Multi-model · local editor Open-source Cursor alternative Apache-2.0 28,873 ↗ T1
Kilo Code
Kilo
Editor Multi-model editor · terminal Orchestrator modes, MCP MIT 26,584 ↗ T1
Roo Code
Roo Code
Editor Multi-model editor · terminal · browser Custom modes, MCP Apache-2.0 24,367 ↗ T1
Cursor
Anysphere
Editor Multi-model editor · terminal Codebase indexing, Composer, rules closed ↗ T1
Windsurf
Windsurf
Editor Multi-model editor · terminal Cascade context, MCP closed ↗ T1
OpenClaw
OpenClaw
Autonomous runtime Multi-model os · terminal · filesystem · messaging Skills, self-hosted, any platform OSS 384,439 ↗ T1
Hermes Agent
Nous Research
Autonomous runtime Multi-model terminal · filesystem · long-term memory Self-authored skills, persistent memory MIT 221,937 ↗ T1
AutoGPT
Significant Gravitas
Autonomous runtime Multi-model sandbox · browser Block-based workflow builder OSS 185,739 ↗ T1
Browser Use
Browser Use
Autonomous runtime Multi-model browser · DOM Web task automation, vision + DOM MIT 107,141 ↗ T1
OpenHands
OpenHands (All Hands AI)
Autonomous runtime Multi-model docker sandbox · browser · editor Microagents, sandboxed runtime MIT 82,436 ↗ T1
DeerFlow
ByteDance
Autonomous runtime Multi-model browser · sandbox · search Long-horizon research loop MIT 78,092 ↗ T1
Open Interpreter
Open Interpreter
Autonomous runtime Multi-model · local terminal · filesystem · code exec Natural-language code execution Apache-2.0 67,392 ↗ T1
OpenManus
Foundation Agents
Autonomous runtime Multi-model browser · sandbox · filesystem General-purpose task loop MIT 57,768 ↗ T1
SWE-agent
Princeton / Stanford
Autonomous runtime Multi-model sandbox · filesystem Agent-Computer Interface, issue-to-patch loop MIT 19,943 ↗ T1
Agent Zero
Agent Zero
Autonomous runtime Multi-model terminal · filesystem · browser Self-extending, subordinate agents OSS 18,619 ↗ T1
OpenHarness
HKU Data Science
Autonomous runtime Multi-model terminal · filesystem Built-in personal agent MIT 15,083 ↗ T1
Field notes

An exoskeleton for a model: a loop, access, integrations and skills

The catalogue reads as one fact repeated: 25 of 28 harnesses are model-agnostic. That is the property that separates a harness from an agent. In the agents catalogue the model is part of the product; here it is a setting you change. The few first-party terminal tools are exceptions, and they are exceptions because the vendor is also selling the model underneath.

Show more

The split by what they wrap is cleaner than expected. Terminal harnesses attach to the shell you already work in. Editor harnesses wrap the file you are looking at. Autonomous runtimes have neither and substitute a sandbox, which is why isolation is a headline feature for that group and a footnote for the others.

Read against the models and agents catalogues, a harness is a pre-built agent with the goal left blank. It arrives with the loop, the reach and the skills; you supply the intent, each time, and stay in the chair. It is the evolution of sitting at a chat window with a model open in another tab — the same work, but the loop now runs itself and can touch your files.

Which suggests where the line actually falls. An agent earns its name when it can be left alone: running in a platform or the cloud, on a standing job, without supervision and without your laptop staying on. A harness is the same machinery with a human still holding it. 26 of these being open source means that distance is a configuration choice rather than a purchase, and it is the distance, not the capability, that the two catalogues are separated by.

From the corpus, curated by Brandon Chaplin
Common questions
What is an agent harness?

An exoskeleton for a language model. It supplies four things the model cannot: a loop that keeps working and retries when a tool fails, access to your shell, files or a browser, integrations to the tools it may call, and skills it can load on demand. The model reasons; the harness is everything else.

What is the difference between a harness and an agent?

A harness is a pre-built agent with the goal left blank. You point it at a task each time and stay in the loop. An agent, as this corpus uses the term, is that same machinery pointed at a standing job and left to run with far less supervision. The difference is who sets the intent and how often, not what the software can do.

What is the difference between a harness and a framework or SDK?

A framework or SDK is what you build a harness with. A harness is finished: install it and it already has a loop, tool calling and a repair cycle. Reach for an SDK when you are building your own; reach for a harness when you want one that already works.

Can a harness use any model?

Most can. Model-agnostic design is the norm here, which is what makes a harness a wrapper rather than a product in its own right. The exceptions are the first-party terminal tools from the labs, where the harness exists partly to sell the model underneath.

Do I need a harness to build an agent?

No, but you will build one either way. Anything that calls a model in a loop, handles a failed tool call and decides when to stop is a harness, whether or not you call it that. The choice is between adopting one and writing your own.

Next in the learning path