Governance for coding agents

One law. Every agent.

The same bylaw reaches every harness your team runs — and Control Tower dates every place it stopped being true.

Claude Code Codex your IDE Gemini a new IDE Copilot Windsurf THE BYLAW
reached drifted not measured An illustration of the reach table: one bylaw, drawn as a star, with a ray to each coding agent's harness — Claude Code, Codex, Gemini, Copilot and Windsurf reached; one IDE whose copy of the law drifted; a newly released IDE not measured yet. An illustration, not a statement about any vendor.
A Nobu Kaizen product Scroll

Reach

19 harnesses mapped.

One constitution, written into each vendor's own instruction file. No vendor will ever put its rival's law in — we do.

Enterprisethe floor for everyone
Groupadds, never overrides
Deviceadds, never overrides
  • Claude Code
  • Codex
  • Cursor
  • Gemini CLI
  • Grok Build
  • GitHub Copilot
  • Windsurf
  • OpenCode
  • Kiro
  • Zed
  • Cline
  • Roo Code
  • Aider
  • Continue
  • Amp
  • Factory Droid
  • Qwen Code
  • Augment
  • Ollama
How reach is measured

The bylaw is written into each harness's own always-loaded file — ~/.claude/CLAUDE.md, ~/.codex/AGENTS.md, .cursor/rules/, ~/.gemini/GEMINI.md, ~/.grok/ and the rest — between markers we own, never over the vendor's text.

Per target, per Mac, the reach table answers three things: did it land, is it still the current body, and when did it last change. A harness we can see is not a harness the law reached — the two are separate facts, shown separately.

Reach is not obedience. The harness decides whether to follow the law; we record where it landed, and date where it stopped. A harness earns a stronger word only when one real directive has gone through it end to end — until then we say reaches.

Decision drift

You decided it in March. Is it running in July?

MARAPRMAYJUNJUL DECIDED · MAR 4 holding drifted · 41 days
A timeline: a decision made on March 4 holds through May, then its check breaks in early June and it has been drifted for 41 days.
holding drifted not checked

Every decision carries a mechanical check. No model is asked. No network call is made.

How a decision is checked

Each decision you write down carries an acceptance assertion — a symbol exists, a call site exists, a file is at a path, a grep matches. Control Tower re-runs it weeks later and returns holding, drifted, or an honest not checked when no assertion is attached yet.

A governance verdict you cannot reproduce is an opinion. Every verdict here is a file, a symbol or a grep you can run yourself.

Independent findings

The author cannot audit their own work.

Review runs out of process, after the work is done — on a different model than the one that wrote it.

  • Never openedNobody has looked. It says so.
  • Partially reviewedSome seats reported. Not a verdict.
  • Complete and cleanEvery seat reported. Nothing found.
  • Complete with findingsEvery seat reported. Here is what.

An unscanned repo never reports clean. Meet MEZ Pipeline

Autonomous mode

Every finding finds its author.

The agent that did the work is interrupted — and held at its finish line until the finding is answered, while its orchestrator is told.

MEZ LEAD the agent at work a finding lands held here its orchestrator
A lane: an agent moves toward its finish line; a MEZ finding drops onto its lane; the agent is held at the finish line while a line lights up to its orchestrator.
  1. 01A finding landsMEZ reviews what just changed.
  2. 02InterruptedThe agent hears it on its next tool call.
  3. 03Held at the finish lineUntil the finding is answered.
  4. 04Its orchestrator is toldNobody learns it from a log later.
How the hold works
  • Held at most twice, then released and escalated loudly. A hold is a stop sign, never a trap.
  • A directive is data, never a command. The only commands it names are mez ack … fixed and mez ack … deferred.
  • Hooks install only when you run the installer — dry-run by default. Nothing writes to a vendor's settings on its own.
  • Today a directive can name a Claude Code session. Elsewhere it is addressed to the repository, not yet to one agent — hooks for eight more harnesses are wired, not yet proven end to end.
  • Part of the Cross-Model, Team and Enterprise plans.

Redaction · AES-256-GCM

We cannot read what we store.

  • Redacted before it is ever written
  • Encrypted on your device, AES-256-GCM
  • Ciphertext is all the relay receives
How sync stays sealed

Accounts & spend

Which account ran the work.

How close it is to its limit, and what it cost — read on your Mac. Control Tower holds no provider credential.

Compare — including the part that flatters them

Their version is enforced. Ours is everywhere.

 Control TowerVendor-native
The same law in every vendor's harnessYesOne vendor
Mechanically enforced by the harness itselfNo — advisoryYes
Dated evidence of where it stopped being trueYesNo
Enterprise › Group › DeviceYesSome
Decision-versus-reality driftYesNo
Review by a model that did not write the workYesNo
Stores ciphertext it cannot decryptYesNo
The honest version

Inside their own walls, two vendors hold policy harder than we do: Claude Code's managed settings sit at the top of their precedence stack, and Cursor's Team Rules are set by an admin from a cloud dashboard. Both govern one vendor.

A repo AGENTS.md is a convention, not a policy — any developer can edit it, and there is no organization, no administrator, no precedence floor.

So we compete where a vendor structurally cannot: across its rivals' boundaries. And we never claim to enforce — a harness reads the law we install and decides whether to obey. What we stand behind is reach and evidence.

Plans

Govern one Mac. Then the whole fleet.

Plans open with billing. Until then there are no prices here — request access.

Requests go straight to the studio through our contact form. Say which plan, and how many Macs.

Cross-Model

Carry work between vendors yourself.

One Mac · offline key

  • The bylaw, its reach table, drift checks and findings
  • A hand-off file when work moves between vendors' agents
  • Autonomous mode
  • No login, no phone-home
Request Cross-Model access

Team

Publish one law to every machine.

Per seat

  • Everything in Cross-Model
  • Cloud relay live · Desktop encrypted shared-recall client available
  • Fleet console: devices, teams, published bylaws, roles
  • Append-only audit log — metadata only
Request Team access

Enterprise

For whoever answers for what the agents did.

Per seat · contract

  • Everything in Team
  • Self-host, VPC or air-gapped
  • OIDC and SAML sign-in, SCIM, roles
  • SIEM export, metadata only
  • SOC 2 Type II planned — not started, not certified
Contact sales

The desktop companion

Put one law everywhere.

A browser cannot read your harness config. Your Mac can.

Apple silicon · macOS 14 Sonoma or later

No free plan — Control Tower opens to its plans. Request access.

Nothing leaves a machine because a feature felt like it should.

The local app reads the logs your agents already write, into an archive that is redacted before it is written and encrypted at rest. Sending anything to a team is opt-in, per project, chosen by the operator.

One exception, said out loud. The apps send us a daily batch of improvement signals — counts only (speed, screens used, our error codes, how many improvements your agents proposed by category), never your code, file names, prompts or findings. It is on by default, off until you accept in the EU, EEA, UK and Switzerland, shows you the exact bytes before they go, and turns off in one click. Exactly what we send.