curl -fsSL https://platform.intertrace.ai/install.sh | sh
itr connect # every coding agent on this machine
itr doctor # runs each installed hook the way its editor does+Also
npm install -g intertrace on any OS with Node 18+, or irm https://platform.intertrace.ai/install.ps1 | iex on Windows. Admins can deploy the hook through managed settings, so developers can't switch it off.
+Try it
What would Intertrace do?
Type any command a coding agent might run. This is the same reading of the command that the enforcer makes, applied with the default Coding role.
What Intertrace reads
It force-pushes and changes a protected branch (main).
Consequence: Changes that can't be undoneproduction
What happens
Asks a person first
The call waits for an approval in Slack, Teams or the dashboard. Approved, it runs with exactly these arguments; denied, it never does.
A preview with the default Coding role in development, using the same reading the enforcer uses. Your organization's rules, guardrails and approvals can add to it, and a new agent asks more often during its learning period. The live decision is always the enforcer's.
+How it works
The same decision as every other agent.
01
Connect in one command
itr finds the coding agents on the machine and installs a pre-tool hook in each, touching only its own entry. Sign-in mints a device key bound to your organization's agent for that tool.
02
Every call is decided by the enforcer
Each tool call goes to the same enforcer as your production agents: roles, consequence tiers, guardrails, approvals and floors. It reads the arguments, so a force push to main isn't treated like a push to a branch.
03
Ask only when it matters
Routine development work runs. Things that only touch the developer's own machine ask the developer in the editor. Anything that leaves the company, moves money or reaches production waits for a person you choose.
04
Proof of what ran
Post-tool reports join each decision to what actually executed. Every call lands in the activity ledger and the conversation's trace, next to every other agent you run.
+Every editor, honestly
What each coding agent lets us guarantee.
Editors don't all expose the same hooks. This is what each one supports today. Where an editor can't show the developer a question, the ask waits for a person instead of running.
| Coding agent | Decided before it runs | Developer answers in the editor | Records what actually ran | Blocks if the hook itself fails |
|---|---|---|---|---|
| Claude Code | ✓Every tool, before it runs | ✓Interactive sessions | ✓Succeeded and failed calls | ✓A broken hook blocks |
| Cursor | ✓Shell, MCP and file reads | PartlyShell and MCP | ✓Shell, MCP and edits | ✓A broken hook blocks |
| Codex CLI | ✓Once you trust the hook in /hooks | —Asks wait for a person | ✓Every executed call | —Codex runs the call if its hook can't start |
| GitHub Copilot CLI | ✓Every tool, before it runs | —Asks wait for a person | —Not wired yet | PartlyCrashes block; a host timeout doesn't |
| OpenCode | ✓Every tool, before it runs | —Asks wait for a person | ✓Every executed call | ✓The plugin blocks unless allowed |
On every editor, anything itr can see going wrong (no key, Intertrace unreachable, an undecided or expired approval) is a deny. Only workspace reads may continue offline, and that allowance is explicit and logged. Windsurf, Gemini CLI and Devin get MCP routing through Intertrace.
+Connected is not protected
We only say protected when we've proved it.
Verified, not assumed
The agent can't switch it off
Removed? You'll know.
+Built for developers
Low friction is a feature, not a setting.
+Runs without asking
- Reading, searching and editing code
- Tests, builds and installs in development
- Commits and pushes to the agent's own branches
- Deletes in a development workspace
+Asks first
- Pushing or merging to main and protected branches
- Anything that reaches production
- Sending data or messages outside the company
- Running downloaded installers or reading a project's .env (the developer can answer)
An approval covers exactly the call that asked for it: the same arguments, the same agent, the same session. Changing the command opens a new one. Your organization's rules, roles and guardrails decide what “asks” means for each team.
+ Coding agents
Govern every coding agent in one command.
Book a walkthrough, or connect your own editor and watch the first decision land.