Build. It holds.

Agents write the code. Harness holds them to a spec, to tests and to review, and keeps them from wasting tokens on the way.

/plugin install ionian-harness@ionianlabs GitHub ↗ Install

Copies both lines: marketplace, then plugin

CLAUDE CODE · COMMIT GATE
› git commit -m "Export orders as CSV"
commit gate · denied
src/export.ts changed, no test changed.
Write the failing test first.
› coder · test fails for the right reason · fix · 42 passed
› git commit -m "Export orders as CSV"
commit gate · 42 passed · committed

Why a harness

Fewer tokens. Fewer surprises.

Agents are fast. Without rules they skip tests, read whole repos and forget what they did yesterday.

Leaner

Small reads, small models.

The read gate keeps big files closed. Haiku reads, Sonnet builds, Opus reviews specs.

Safer

No shortcut to main.

No commit without a test change, on a red suite, or with --no-verify.

Better

Checked twice.

Fresh reviewers read every spec and every commit. They never saw your chat.

Continuous

Nothing forgotten.

STATE.md carries each session forward. Ionian Brain syncs it.

The loop

Rules in hooks, not in prompts.

Every feature walks the same four steps. Two gates stand in the way. The read gate watches all of them.

  1. Spec.
  2. Gate: your yes. Nothing is built until you approve the spec.
  3. Build.
  4. Gate: commit gate.
  5. Review.
  6. Hand off.
  7. The read gate is always on across all four steps.

Your yes.

Nothing is built until you approve the spec.

Commit gate.

A test changed, the suite is green, no --no-verify, no secrets staged.

Read gate.

Files over 350 lines stay closed. A small model answers instead.

Add the plugin. Describe a feature.

You need bash, git and jq. gitleaks is optional. I developed and tested it on macOS.

  1. 1Add the plugin to Claude Code. The marketplace lives in the Brain repo and lists every Ionian Labs plugin. Already use Brain? Run /plugin marketplace update ionianlabs, then the install line.
  2. 2Tell the gate how to test. Put a harness.toml with your test command in the repo root. The commit gate only acts in repos that have one.
  3. 3Describe a feature. The agent drafts a spec, and nothing is built until you approve it. Source ↗
CLAUDE CODE
# add the marketplace and the plugin
/plugin marketplace add ionianlabs/brain
/plugin install ionian-harness@ionianlabs
# in your repo, tell the gate how to test (harness.toml)
[test]
unit = "npm test"
# then describe a feature
› Draft a spec for CSV export.

What to expect.

Version 0.1.0. Everything above works today. These gaps remain.

Not yet.

  • A gate that stops the main thread from editing code itself
  • Lane commands: /fix, /change and /build
  • A QA agent
  • GitHub Copilot support
  • Testing on Linux

Every gate exists because something broke first, so expect more gates, not fewer. Known limits: the commit gate cannot see commands built from variables, and the read gate does not count every read form.

Questions

Good to know.

Does it work without Brain?

Yes. Harness never reads or writes a brain. With Ionian Brain, the sync skill carries STATE.md into your brain at the end of a session.

Which agents does it work with?

Claude Code. GitHub Copilot support is not built yet.

Will it slow me down?

A little, on purpose. Your unit suite runs at every commit, and tests come first. The read gate only steps in for whole-file reads over 350 lines.

Can I turn a gate off?

The commit gate only acts in repos with a harness.toml, so leave it out and it stays quiet. For commits that need no test, such as docs, put [no-tests] in the message. The read gate fails open.

Does it really save tokens?

It keeps agents from reading big files whole and sends file questions to a small model. I have not measured a number yet, so I don’t claim one.

Which models does it use?

Sonnet drafts specs, writes code and reviews commits. Three Opus reviewers read each spec. Haiku answers file questions.

Is it free?

Yes. It is MIT licensed, with no account.