Transport is not authority
Interlock runs in three places. The way a decision is asked changes with the place. What makes the decision trustworthy does not change.
It asks the question
The transport sends the request to the controller. The controller answers allow or deny. The way it asks is different in each environment.
It gives the guarantee
The broker makes the evidence. The gate blocks the merge. This is the same in every environment.
| Environment | Controller runs | Hooks fire | Extra setup | Result |
|---|---|---|---|---|
Local laptop |
On the laptop stdio · stays local |
Yes | None | Works |
Local agent Claude Code · Cursor |
On the laptop stdio · stays local |
Yes | None | Works |
Cloud sandbox Claude Code remote · Devin · Codespaces |
In the sandbox stdio · stays local |
Yes, after setup | Hydrate the controller. Wire the hooks. |
Works after setup |
In every environment the messages stay local. The sandbox does not need network access to decide.
Makes the evidence
The broker makes hash-bound evidence. The broker does the protected action. The controller cannot fake this.
Blocks the merge
The gate runs Interlock in CI. The gate blocks the merge if the check fails. The gate runs for every environment.
Do not put the controller on another network. A locked sandbox cannot reach it. Then Interlock denies every action.
Put the controller in the sandbox. Keep the messages local. Use a network controller only when a local one is not possible.
Remember
- Local hooks give fast feedback. They are not the guarantee.
- The gate gives the guarantee. It runs in one place you control.
- Cloud agents need no special code. Every change must pass the same gate.