Agent Harness overview

Shipmoor Team
June 11, 2026
3 min read

In release — preview. This surface is fully built and in the release process; it is not yet generally available. Treat the commands and behavior here as preview until GA.

The Agent Harness is the local feedback loop for coding agents. It watches what your agent changes, runs shipmoor scan against those edits, and routes the findings back into the agent’s context — so the agent fixes its own mistakes during the session, not after a human finds them in review.

Where Agent Skills tell an agent how to behave, the harness is the runtime that enforces the loop mechanically: lifecycle hooks, wrappers, and watchers that fire on every edit whether or not the agent remembered its instructions.

The mental model

  • CLI = source of truth. shipmoor scan, shipmoor capabilities --json, shipmoor whoami --json own detection, auth, and entitlement state.
  • Harness = runtime. Hooks, wrappers, and watchers that invoke the CLI against agent edits and feed findings back. It contains no detection logic — it’s a client of the CLI’s JSON contracts.
  • Skill = behavior. Static instructions the agent follows (Agent Skills).
  • IDE = visualization. The same CLI-backed state, rendered in your editor (IDE Extension, preview).

The harness and skills can be installed side by side — each writes its own marker-wrapped managed block and never touches the other’s.

How it works

Two small pieces:

  • The scanner is the only CLI-aware module. It locates the binary (PATH, then ~/.shipmoor/bin/shipmoor; SHIPMOOR_BIN overrides), checks the version, runs scan --changed|--staged|--diff|--patch --json, and parses the stable JSON contract. Human output is never scraped.
  • The orchestrator folds a scan result into a decision: a mode (observe / feedback / block) plus deterministic, severity-ordered feedback text formatted from the parsed findings.

Per-agent adapters then deliver that decision the way each agent natively understands — a Claude Code hook response, an Aider lint failure, a Codex re-prompt, a watcher event for Cursor. See Agent support.

The harness reads the CLI’s exit codes the way you should: 1 means findings met the gate (a signal, parsed normally), and only 2/3 are treated as errors. A missing or failing CLI degrades to a no-op — your agent is never broken by tooling problems.

What it ships

The harness has its own console script, shipmoor-harness, separate from the shipmoor binary it shells to:

CommandPurpose
install <agent> / uninstall <agent>Wire the loop into Claude Code, Aider, Codex, or Cursor
mode observe|feedback|blockHow intrusive the loop is
status [--json]CLI/capabilities/mode/adapters/watch state
codex -- <args>Run Codex wrapped in the feedback loop
watch [--emit json|file]Debounced scan-on-change with a privacy-safe event stream

The harness is gated by the agent_harness entitlement (IC plan), enforced once at install — adapters never read account state.

Next

Last updated on June 11, 2026

Was this article helpful?

Your response is saved on this device.