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
Governance for coding agents
The same bylaw reaches every harness your team runs — and Control Tower dates every place it stopped being true.
Reach
One constitution, written into each vendor's own instruction file. No vendor will ever put its rival's law in — we do.
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
Every decision carries a mechanical check. No model is asked. No network call is made.
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
Review runs out of process, after the work is done — on a different model than the one that wrote it.
An unscanned repo never reports clean. Meet MEZ Pipeline
Autonomous mode
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 ack … fixed and mez ack … deferred.Redaction · AES-256-GCM
Accounts & spend
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
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
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.
Carry work between vendors yourself.
One Mac · offline key
Publish one law to every machine.
Per seat
For whoever answers for what the agents did.
Per seat · contract
The desktop companion
A browser cannot read your harness config. Your Mac can.
SHA-256
No free plan — Control Tower opens to its plans. Request access.
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.