Best Agent Harness: Open Source, Three Questions, Not the Model
Which harness fits your work turns on three facts about it, and on a fourth that gets more weight than it deserves: the model. Kortix, the open-source AI Operating System, lays out the three, maps your answers to a harness shape, and shows where each project keeps the configuration.
Which shape
Three questions, four harness shapes
Answer what happens when the agent acts, where the work has to survive, and whose machine it runs on.
- 1
Who approves a tool call the agent wants to make?
- 2
Where must the work still exist next month?
- 3
Who runs the machine the agent works on?
A harness whose configuration and session work live in your repo
Kortix keeps the agents, the skills they share, your company memory and every connector in one git repo, and every session is cut from it on its own branch, so the review happens where the code already is.
Try KortixA harness you run on your own infrastructure
TrueForge runs as one local process with SQLite, or hosted with Postgres and Redis. Kortix runs on Kortix Cloud, in your VPC, or on your own on-prem network.
Read the manifestA coding agent inside a vendor’s account
Codex and Claude Code both run through the vendor’s own surfaces: an app, a CLI, IDE extensions and the web. Codex manages conversation state and carries work across turns for you.
Read the manifestA single-machine coding agent
OpenCode, Goose, Aider and Pi install into one machine and run the loop there, which is the least setup and the least ceremony when the work never leaves that machine.
Compare the projectsSide by side
Three harnesses side by side
What each one owns, from its own repository, checked 27 October 2026.
| Criteria | Kortix | Codex | TrueForge |
|---|---|---|---|
| Open source | Yes | Yes | Yes |
| Where it runs | Kortix Cloud, your VPC, on-prem | App, CLI, IDE extensions, third-party clients | One local process, or a hosted server |
| Approves tool calls | Gates you set, off until you set them | Configured sandbox and approval policy | Approvals inside the loop it runs |
| Session state | A branch of your git repo | Conversation state carried across turns | SQLite locally, Postgres when hosted |
| Interface | Web app, Slack, Teams | App, CLI and IDE extensions | Chat UI, HTTP API, UI SDK |
| Suits | Teams whose config and review live in git | Teams that want one harness behind app, CLI and IDE | Teams embedding an agent in their own product |
Sources: each project’s own repository and docs, checked 27 October 2026. The four-project comparison page covers the rest of the field.
What a harness owns
"An agent harness, sometimes called an AI harness, is the runtime scaffolding that turns a language model into an agent that can perform work." That is Microsoft's definition, and it splits the thing in two: a model that reasons, and a harness that acts.
LangChain puts the same split in an equation, "Agent = Model + Harness", and calls the harness "every piece of code, configuration, and execution logic that isn't the model itself". Anthropic describes it as "the software scaffolding around a model: the loop, tools, context management, and guardrails that turn raw intelligence into a working agent."
Concretely, the harness holds the system prompt, the tool and MCP descriptions, the filesystem, sandbox and browser the agent can reach, the orchestration that spawns subagents, and the hooks that compact context and decide when a turn ends. It decides what the model sees, what the agent can touch, and when the work stops.
One field guide untangles a word that buyers keep collapsing. Winder's 2026 comparison stacks four layers: the model reasoning, the harness running a single agent, the framework composing several agents, the platform running many harnesses across a team over time. A shopping list built across two of those layers is why people end up buying a framework to fix a runtime problem.
Who approves a tool call
The first question about any harness is what happens at the moment the agent tries to act. On Kortix the answer is the project's own policy: "Approval gates you set. Off until you set them." That policy sits in the repo beside the agent it governs. A scoped specialist can open with Ask on the steps that touch money, and Allow on the ones that only read.
Codex enforces configured sandbox and approval policies, so it asks the same question with the policy held inside the harness. TrueForge lists approvals as part of the loop it runs. All three let a person stop a call; they differ in where that rule is written and who can change it without a review.
Where the session's work survives
The second question is what still exists tomorrow. Kortix answers it in the repo: "One isolated sandbox per session. Each session has its own isolated machine and branch." The agent works in its own checkout. Work lands through a change request a human approves, so the branch history is the record and the diff is what a reviewer reads.
Codex manages conversation state and carries work across turns, which is what makes a long session feel continuous. TrueForge keeps session state in SQLite on a local install and in Postgres when hosted. Neither answer is wrong; they decide different things about next month. If the state is a branch of a repo you own, git log is the audit trail and the artifact you can hand to someone else. If it is a row in someone's database, your access to it later depends on their product.
Who runs the machine
The third question is whose hardware the agent touches. "Run it on Kortix Cloud, in your VPC, or on your own on-prem network. Self-host is free." Those are the three answers a security review asks for: managed cloud, your VPC, your own network. With them on the table, the review can end with a topology.
The Codex harness is open source and powers the Codex app, CLI, IDE extensions and third-party clients. Claude Code is an agentic coding tool that runs in a terminal, in IDE extensions, on the desktop and in the web, and Anthropic does not publish Claude Code's harness source. TrueForge splits the difference: one process on a laptop, or a server with Postgres and Redis behind it.
The model comes fourth
The model matters, and it is the one term in the equation a harness will usually let you change. Kortix takes "Any model provider with your own keys", so the harness outlives a model switch instead of being tied to one vendor's roadmap.
Evidence that the harness is doing real work comes from OpenAI's own account of Codex: on ARC-AGI-3, retained reasoning and context compaction raised a model's score from 13.3% to 38.3% while cutting output tokens sixfold. Same model, different scaffolding around it. Anthropic's harness write-up bets the other way, that the harness should shed scaffolding as models improve ("Lean on the model, not the harness"), and that bet is another argument for keeping the harness replaceable.
Where the configuration lives
What outlasts all three answers is the configuration. The Kortix starter keeps everything a harness loads at the root of the repo:
# Project layout — harness-neutral content at the root: # agents/<name>.md one file per agent (`agents.<name>.file`) # skills/<name>/SKILL.md skills, loaded by every harness # memory/ the project brain (the `kortix-memory` skill) # tools/<name>.ts project tools, loaded by every harness (`tools:` below) # harnesses/opencode/ files only OpenCode reads (`opencode.config_dir`) # harnesses/pi/ files only pi reads (`pi.config_dir`); create it when needed
Source: https://github.com/kortix-ai/suna/blob/dev/packages/starter/templates/base/kortix.yaml. One file per agent, one folder of skills that every harness loads, one folder for memory, one for tools. The harnesses/ directories hold the exceptions, the handful of files that only one runtime reads.
That layout makes the harness a component rather than the product. The agents, the skills and the memory stay where they were.
Matching the answers to a project
Four shapes come out of those three questions.
A repo your team owns, with approvals on, is Kortix: the configuration and the review are already in git. Your own infrastructure means TrueForge, which runs as one local process or a hosted server, or a self-hosted Kortix. A vendor's product surface means Codex or Claude Code. One machine and one person means OpenCode, Goose, Aider or Pi.
Release rhythm deserves a look too, because a harness carries a lot of model-specific behaviour. Seven of the eight projects named here published a release in the week to 27 October 2026: Kortix, Codex, OpenCode, Goose, Pi, TrueForge and Claude Code. Aider is the exception: its latest release is from August 2025 and its repository last took a push on 22 May 2026. If the work has to keep pace with model releases, that gap will cost you more than a missing feature.
The four-project comparison carries the same cells in more detail, and the open-source guide covers the projects whose whole runtime sits in their repo.
Questions
Questions buyers ask before they pick
What is the best agent harness right now?
There is no single one. Three facts decide it: who approves tool calls, where the session’s work survives, and who runs the machine. Kortix is the fit for teams that need approvals, self-hosting and the agent configuration in a repo they own.
Should I pick a harness or a framework?
Pick the harness first. The harness runs one agent and decides what the model sees and touches; a framework composes several agents on top of a harness. A team that has not settled its runtime cannot tell which framework is doing the work.
Does the harness matter more than the model?
It can. OpenAI reported that retained reasoning and context compaction raised a model’s ARC-AGI-3 score from 13.3% to 38.3% and cut output tokens sixfold, with the same model. Read the number as harness behaviour, not a model upgrade.
Start with one repo and one harness
Keep the agents, skills and memory at the root, and the harness becomes the part you can change.