Harness engineering

How to choose a coding harness.

The honest answer is that it depends on constraints, and here are the constraints that actually decide it.

Download for macOS
v0.1.33 · .dmg · Apple Silicon & Intel
Signed & notarized by Apple · opens without a Gatekeeper warning
sha256 698955a0187bc039f4c74f5d05a9f10fbb27376a45788a0a241d1326b73873c7
Download for Windows instead
$curl -fsSL https://lucidtrain.com/install.sh | sh

There is no single best coding harness, because the choice is decided by constraints rather than by quality: whether your source code may leave the machine, whether you need a specific model, and how much verification your codebase can support. The criteria that actually separate them are model freedom, isolation of failed attempts, context handling, approval granularity and verification. Public harness leaderboards exist and are worth reading, but they benchmark one model on one task set and will not tell you which constraints you have.

Start with the constraint that eliminates options

If source code cannot leave the machine, every hosted harness is out and the question is settled before any feature comparison begins. If you must use a specific model for procurement or contractual reasons, that eliminates a different set. Work out which hard constraint applies first, because it usually reduces a long list to two or three candidates and makes the rest of the comparison cheap.

Verification is the criterion people under-weight

The differentiator that shows up after a month is not generation quality, it is how much of the agent's output can be checked before a human looks at it. Böckeler's framing is useful here: computational sensors like tests and type checks are fast, deterministic and cheap; inferential ones like AI review are slower and non-deterministic. A harness that makes it easy to wire your existing computational checks into the loop saves more human attention than one with better prompts.

Isolation, so a bad attempt costs nothing

Ask where a failed attempt lands. If it lands in your working tree, every speculative run has a cleanup cost and you will run fewer of them. Lucid Train executes dispatched sub-agents in isolated git worktrees and applies the diff back, which means an attempt that goes wrong is discarded rather than reverted.

Context handling under pressure

Every harness works on a small task. What separates them is behaviour near the context limit: whether the conversation compacts automatically, whether there is a recovery path when a provider reports overflow mid-turn, and whether anything persists between sessions. Anthropic's write-up names the failure mode to watch for, context anxiety, where a model starts wrapping up prematurely because it believes it is running out of room.

Where Lucid Train fits

It is model-agnostic, runs fully offline against local Ollama models, executes sub-agents in isolated worktrees, routes roles to different models, reads Claude Code-compatible skill packs, and can drive Claude Code, Codex, Cursor or OpenCode as its engine. It adds a visual architecture surface that generates diagrams from the repository and turns them into implementation specifications. It is not an editor and does not do inline completion.

Criteria that actually separate harnesses

CriterionWhy it decides things
Model freedomWhether a procurement or privacy constraint rules it out entirely
Fully offlineWhether source code may leave the machine at all
IsolationWhether a failed attempt costs cleanup work
Verification wiringHow much output is checked before a human reads it
Context recoveryBehaviour at the limit, not on a small task
Approval granularityWhether you can grant trust incrementally
Skills and portabilityWhether your conventions survive switching agents
Runs other agentsWhether adopting it forecloses anything
FAQ

Questions

What is the best coding harness?

There is no single answer, and the constraints decide it: whether code may leave the machine, whether a specific model is required, and how much of your codebase can be verified automatically. Work those out first and the shortlist is usually two or three.

Which harness is best for local LLMs?

One that accepts any OpenAI-compatible endpoint and ships its assets rather than fetching them, so it still works with no network. Lucid Train runs fully offline against local Ollama models with no API key and no telemetry.

Do harness benchmarks tell you which to pick?

They tell you how harnesses compare on a fixed benchmark with a fixed model, which is real information and not the same as which suits your constraints. Read them, then check them against your own hard requirements.

Related