---
title: "Agent harnesses · the loop that turns a model into an agent · Agent Fieldbook"
url: https://agentfieldbook.org/software/harnesses/
description: "A source-graded catalogue of agent harnesses: the execution loop, tool access and skills that turn a foundation model into a working agent. Terminal, editor and autonomous-runtime harnesses, with licences and model support, verified against each project's own repository."
section: "Stack · Harnesses"
source: Agent Fieldbook — generated from the published page
---

# Agent harnesses

**Terminal · Editor · Autonomous runtime**

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.

## Anatomy · what an exoskeleton is made of

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.

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

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

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

|  | Harness | Agent |
| --- | --- | --- |
| Who sets the goal | You do, every time you run it | Set once, then it runs to it |
| Supervision | You are in the chair, approving steps | Little to none, by design |
| The model | A setting you choose, often swappable | Part of the product, chosen for you |
| Where it runs | Your machine — shell, editor, local runtime | A platform or the cloud, without your laptop on |
| Scope | General purpose. You supply the task | Pointed at one standing job |
| What you buy | The exoskeleton. You bring the model | The 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.

## 28 harnesses · filter by what they wrap

Attaches to your shell. The loop runs where you already work.

Wraps the editor, so the loop sees the file you are looking at.

Headless and goal-driven. No editor, no shell, a sandbox.

| Harness | Category | Models | Access | Skills | Licence | Stars | Src |
| --- | --- | --- | --- | --- | --- | --- | --- |
| **OpenCode** Anomaly | Terminal | Multi-model | terminal· filesystem | Model-agnostic tool loop | MIT | 190,595 | [↗ T1](https://github.com/anomalyco/opencode) |
| **Claude Code** Anthropic | Terminal | Anthropic (first-party) | terminal· filesystem· git | Skills, subagents, hooks, MCP | OSS | 139,425 | [↗ T1](https://github.com/anthropics/claude-code) |
| **Gemini CLI** Google | Terminal | Google (first-party) | terminal· filesystem | Extensions, MCP | Apache-2.0 | 106,229 | [↗ T1](https://github.com/google-gemini/gemini-cli) |
| **Codex CLI** OpenAI | Terminal | OpenAI (first-party) | terminal· filesystem· sandbox | Approval modes, sandboxed exec | Apache-2.0 | 102,182 | [↗ T1](https://github.com/openai/codex) |
| **Goose** Block / AAIF | Terminal | Multi-model | terminal· filesystem· desktop | Extensions over MCP | Apache-2.0 | 51,872 | [↗ T1](https://github.com/aaif-goose/goose) |
| **Aider** Aider AI | Terminal | Multi-model | terminal· filesystem· git | Repo map, git commit loop | Apache-2.0 | 47,766 | [↗ T1](https://github.com/Aider-AI/aider) |
| **Crush** Charm | Terminal | Multi-model | terminal· filesystem | LSP-aware, MCP | OSS | 26,912 | [↗ T1](https://github.com/charmbracelet/crush) |
| **Qwen Code** Alibaba Qwen | Terminal | Multi-model | terminal· filesystem | Terminal coding loop | Apache-2.0 | 26,403 | [↗ T1](https://github.com/QwenLM/qwen-code) |
| **Plandex** Plandex AI | Terminal | Multi-model | terminal· filesystem· sandbox | Diff review sandbox, long-run planning | MIT | 15,542 | [↗ T1](https://github.com/plandex-ai/plandex) |
| **Zed** Zed Industries | Editor | Multi-model | editor· terminal | Agent panel, MCP context servers | OSS | 87,664 | [↗ T1](https://github.com/zed-industries/zed) |
| **Cline** Cline | Editor | Multi-model | editor· terminal· browser | Plan/Act modes, MCP marketplace | Apache-2.0 | 65,147 | [↗ T1](https://github.com/cline/cline) |
| **Continue** Continue | Editor | Multi-model | editor· terminal | Custom rules, slash commands | Apache-2.0 | 35,167 | [↗ T1](https://github.com/continuedev/continue) |
| **Void** Void | Editor | Multi-model· local | editor | Open-source Cursor alternative | Apache-2.0 | 28,873 | [↗ T1](https://github.com/voideditor/void) |
| **Kilo Code** Kilo | Editor | Multi-model | editor· terminal | Orchestrator modes, MCP | MIT | 26,584 | [↗ T1](https://github.com/Kilo-Org/kilocode) |
| **Roo Code** Roo Code | Editor | Multi-model | editor· terminal· browser | Custom modes, MCP | Apache-2.0 | 24,367 | [↗ T1](https://github.com/RooCodeInc/Roo-Code) |
| **Cursor** Anysphere | Editor | Multi-model | editor· terminal | Codebase indexing, Composer, rules | closed | – | [↗ T1](https://cursor.com/) |
| **Windsurf** Windsurf | Editor | Multi-model | editor· terminal | Cascade context, MCP | closed | – | [↗ T1](https://windsurf.com/) |
| **OpenClaw** OpenClaw | Autonomous runtime | Multi-model | os· terminal· filesystem· messaging | Skills, self-hosted, any platform | OSS | 384,439 | [↗ T1](https://github.com/openclaw/openclaw) |
| **Hermes Agent** Nous Research | Autonomous runtime | Multi-model | terminal· filesystem· long-term memory | Self-authored skills, persistent memory | MIT | 221,937 | [↗ T1](https://github.com/NousResearch/hermes-agent) |
| **AutoGPT** Significant Gravitas | Autonomous runtime | Multi-model | sandbox· browser | Block-based workflow builder | OSS | 185,739 | [↗ T1](https://github.com/Significant-Gravitas/AutoGPT) |
| **Browser Use** Browser Use | Autonomous runtime | Multi-model | browser· DOM | Web task automation, vision + DOM | MIT | 107,141 | [↗ T1](https://github.com/browser-use/browser-use) |
| **OpenHands** OpenHands (All Hands AI) | Autonomous runtime | Multi-model | docker sandbox· browser· editor | Microagents, sandboxed runtime | MIT | 82,436 | [↗ T1](https://github.com/OpenHands/OpenHands) |
| **DeerFlow** ByteDance | Autonomous runtime | Multi-model | browser· sandbox· search | Long-horizon research loop | MIT | 78,092 | [↗ T1](https://github.com/bytedance/deer-flow) |
| **Open Interpreter** Open Interpreter | Autonomous runtime | Multi-model· local | terminal· filesystem· code exec | Natural-language code execution | Apache-2.0 | 67,392 | [↗ T1](https://github.com/openinterpreter/openinterpreter) |
| **OpenManus** Foundation Agents | Autonomous runtime | Multi-model | browser· sandbox· filesystem | General-purpose task loop | MIT | 57,768 | [↗ T1](https://github.com/FoundationAgents/OpenManus) |
| **SWE-agent** Princeton / Stanford | Autonomous runtime | Multi-model | sandbox· filesystem | Agent-Computer Interface, issue-to-patch loop | MIT | 19,943 | [↗ T1](https://github.com/SWE-agent/SWE-agent) |
| **Agent Zero** Agent Zero | Autonomous runtime | Multi-model | terminal· filesystem· browser | Self-extending, subordinate agents | OSS | 18,619 | [↗ T1](https://github.com/agent0ai/agent-zero) |
| **OpenHarness** HKU Data Science | Autonomous runtime | Multi-model | terminal· filesystem | Built-in personal agent | MIT | 15,083 | [↗ T1](https://github.com/HKUDS/OpenHarness) |

## 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.

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.

- [Brandon Chaplin](https://www.linkedin.com/in/brandon-chaplin-digital-marketing-strategist)

## 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

- [Models The reasoning core a harness wraps](https://agentfieldbook.org/software/models/)

- [Agent vs Operator The other boundary in this taxonomy](https://agentfieldbook.org/catalog/agency/)

- [Frameworks & SDKs What you build a harness with](https://agentfieldbook.org/software/frameworks/)

- [Deployment modalities Where the loop actually runs](https://agentfieldbook.org/catalog/modalities/)

- [Runtime Statefulness and the durable loop](https://agentfieldbook.org/design/runtime/)

## Data

- [agent_harnesses.json](https://agentfieldbook.org/data/agent_harnesses.json)

Licensed [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
