Agent Harness
Catch the defect inside the agent loop
The harness watches what your coding agent changes, runs the Shipmoor scan on every edit, and routes findings back as the agent's next turn. In block mode it holds the agent until blockers clear.
edit → scan → findings → fix → clear · the CLI stays the source of truth.
Your coding agent edits fast and asserts confidently. The Agent Harness makes each edit answer to the scan: it invokes the local Shipmoor CLI against the change and routes findings back into the agent’s context as its next turn. In block mode the agent is held at the gate until blockers clear. The loop is bounded so it never spins, and a missing or erroring CLI degrades to a no-op, so tooling problems never break your agent.
- Claude Code, Codex, Cursor, Aider
- Local-first, no source upload
- Part of Shipmoor IC
- harness: runtime
- CLI: source of truth
- observe · feedback · block
- byte-idempotent install
- bounded loop
$ shipmoor harness install claudeclaude: wrote .claude/settings.json PostToolUse + Stop hooks · reversible # the agent adds `import receipt_engine` to pay.py[shipmoor-harness] Shipmoor found 1 issue (1 high). [high] pay.py:6 python.phantom_import Local module 'receipt_engine' is referenced but no file matches. → Add the file, fix PYTHONPATH, or remove the import. # Claude blocks the edit, removes the import, the hook re-runsexit 0 · silent · loop closed From a real end-to-end run: a hallucinated import blocked at the hook, repaired by the agent, cleared on re-scan.
Wire it in three steps
The harness ships inside the shipmoor binary. One command per agent; the install writes one marker-wrapped block into that agent's own config and nothing else.
shipmoor harness install claude aider · claude · codex · cursor · all
- Install the Shipmoor CLI and sign in with a Shipmoor IC license.
- Run shipmoor harness install <agent>. Re-running is byte-identical; uninstall restores your pre-install files.
- Pick how findings route back: shipmoor harness mode observe, feedback, or block.
Drive the loop from the CLI
Everything is a subcommand of the same shipmoor binary that runs the scan.
-
See CLI, mode, adapters, and entitlement state
shipmoor harness status -
Choose how findings route back
shipmoor harness mode feedback -
Run Codex wrapped in the feedback loop
shipmoor harness codex -- <task> -
One-shot scan of the current change-set
shipmoor harness scan -
Scan-on-change for agents without hooks
shipmoor harness watch -
Remove only the managed block
shipmoor harness uninstall all
Installs are byte-idempotent. Everything outside the managed block, including your own hooks and rules, is preserved on install and restored on uninstall.
One loop, four adapters
Each adapter wires the same loop into that agent's native surface. Anything else can use watch, the scan-on-change fallback.
- claude
Claude Code
Native PostToolUse and Stop hooks in .claude/settings.json. A blocking finding stops the edit and feeds the evidence back to the model; a clean re-scan is silent.
- cursor
Cursor
Native afterFileEdit and stop hooks in .cursor/hooks.json. The stop hook returns a follow-up message until findings clear; a rules-file fallback covers setups that decline hooks.
- codex
Codex
shipmoor harness codex runs Codex wrapped in the loop: scan after each pass, re-prompt with findings, stop at the cycle cap. Install also writes a managed AGENTS.md guidance block.
- aider
Aider
A managed lint-cmd runs the scan after each Aider edit; a high finding exits non-zero and drives Aider's own repair loop.
How the harness is tiered
The harness is gated by the agent_harness entitlement in Shipmoor IC.
- Community
Free
Wire the Community CLI into your own loop, the DIY path.
- Local structural scan
- Stable exit codes for any wrapper
- No managed install
- Shipmoor IC
$19 / dev / mo
The full runtime: managed installs, the feedback loop, and the gate.
- Claude, Codex, Cursor, and Aider adapters
- observe, feedback, and block modes
- Watch mode and one-shot scans
- Intent-aware scans with Claim Check
Three modes, one dial
Start in observe, move to feedback when you trust the signal, and turn on block where you want a hard stop.
shipmoor harness mode observe # scan and record, never interruptshipmoor harness mode feedback # route findings into the agent's contextshipmoor harness mode block # hold the agent until blockers clear
The feedback loop is capped by max_feedback_cycles, so it never ping-pongs forever. Advisory code review findings never trip the gate, even in block mode. AI advises. Evidence decides.
Local by construction
The harness is a thin client of the local CLI: it shells out, parses JSON, and contains no detection logic of its own. Findings route back inside your machine. The watch event stream carries paths, rule ids, and counts only, never source or finding prose.
The self-correction loop
One bounded loop from edit to clean gate, without a human in the middle.
- Agent edits a file
- Hook runs the scan
- Findings route back
- Agent repairs
- Gate clears
Validated end to end on the real binaries: the agent hallucinated an import, the hook blocked with the finding, the agent removed it, and the re-scan cleared silently.
Hold the agent to the evidence
Install the free CLI, sign in to Shipmoor IC, and wire the loop into your agent with one command.
Get Shipmoor CLI
One installer. One shipmoor command. Free Community scans.
Agent Harness FAQ FAQ
How the loop installs, routes, and gates.