Technical brief · seven minute read
Interpose installs as a native hook in the agent harness, Claude Code today, and checks every tool call in the agent's own process, before it runs, with no model in the decision. This page is written for the person who has to answer for it in production: what you can prove, what you can control, and what you can audit.
Interpose registers as a native Claude Code hook and intercepts the agent at three points. MCP tool calls pass the same pre-execution checkpoint as any other tool call.
The stated task is captured. Everything the agent does next is judged against it.
Every tool call is checked before it runs. This is where blocks happen, so the side effect never lands.
Outcomes are recorded and compared against the baseline for the role.
Every tool call is checked against your policy and allowed or denied before it runs, not flagged afterward. Out of the box the policy protects credential stores, private keys, cloud configs, and system directories. A network allowlist gates tool level requests.
Interpose learns each agent's normal pattern of work and surfaces deviations in reports, for the novel behavior a fixed list will not catch.
Every decision, allowed or denied, is appended to a per project, hash chained, Ed25519 signed trail anchored by a signed manifest. Alter or delete an entry and verification fails.
interpose scan lists the files an agent could reach, scored by how sensitive each looks by path pattern. Read only. Tighten policy before it matters.
init writes a starter policy, and Interpose recommends tightening from the actions your developers approve and deny. Every control has an alert setting and a block setting, so the security team decides which risks it watches and which it stops. Policy is set centrally and cannot be edited from a developer machine.
# .interpose.yaml
policy:
allow:
actions: [file_read, file_write, tool_invocation, network_request, command_exec]
targets: # logged if outside, denied in block mode
- "src/**"
- "test/**"
networkHosts: # network_request denied unless listed
- "api.anthropic.com"
- "github.com"
forbid:
targets: # hard deny, never released
- "secrets/**"
- "/etc/**"
enforcement:
restrictAfter: 3 # restrict after this many violations
quarantineAfter: 5 # quarantine after this many
scopeBoundarydefault advisoryegressScreendefault offaskOnDestructivedefault onunknownToolsdefault warninterpose --verify-audit re-walks the whole hash chain and checks every Ed25519 signature, then returns a single VALID or INVALID verdict you can hand to a reviewer.interpose --show-audit prints the signed entries behind that verdict, newest first. Paths and commands are redacted to shape by default. A deny names the file that was reached, not the secret it would expose.interpose release from a separate terminal. Interpose reconstructs why the stop fired and proposes a narrow, expiring exception for a person to approve. Nothing is applied on its own.This page reflects the present shipped state and moves as the product ships. Figures elsewhere on this site are illustrative unless marked otherwise.
Thirty minutes to map where your agents run and what a three week pilot would prove. Week one runs in transparent mode, so nothing is blocked while you watch.
Questions on anything above? james@tuent.ai or charlie@tuent.ai. A founder answers.