What an agent harness is, and where it sits under the app
Theo explains the term "harness" in an X Article. An LLM only produces text, so the harness supplies the tools (read_file, edit_file, bash, search), a syntax for calling them, a parser that runs the code, a way to return results to the model and a list of tools with descriptions. Claude Code and the Codex app are interfaces built on the Anthropic Agent SDK and the Codex App Server. Tools run inside the harness, while MCP servers run somewhere else. In his definition an agent is an LLM plus a harness. Why it matters: It gives a shared vocabulary for comparing agent products. The model, the harness, the interface and the MCP data sources can be evaluated and swapped separately, so you can ask which layer a feature belongs in. Domain data and actions fit as MCP servers that any harness can call. One caveat is that Theo builds T3 Code and promotes his paid Mega.dev course in the article. The piece explains concepts and has no benchmarks.
Try this: Take two agent tools your team uses and map each one onto the four layers: model, harness tools, interface and MCP servers or context files such as AGENTS.md. Mark which pieces you could swap without changing the others.