Every tool that watches AI agent spend tells you afterwards. Governor answers one question before the action runs: is this in budget, on task, and allowed at all.
npx --yes enforcer-governor startRead the sourceGovernor watches the rate. A session fanning out into fifty subagents is stopped inside the first minute, not after four figures.
A guard that only blocks gets switched off. The third answer is what makes it survivable: ordinary work passes silently, and the irreversible things stop and ask you.
In budget and on task. Nothing interrupts.
Over the limit or reckless. Never executes.
Irreversible. Stops and asks you.
Deleting a tree costs nothing. Reading your credentials costs nothing. A budget check waves every one of them through on a full budget, so capability is judged separately.
Running the test suite on your most expensive model is the commonest way to overspend without noticing. Governor reads the instruction a person actually typed and which model answered it, matches the wording against two fixed sets of patterns, and moves one tier, never two. No model is judging another model, so the same words always give the same answer.
| the task you typed | running on | governor says |
|---|---|---|
| run the test suite | opus | down one tier, mechanical work |
| why does the webhook drop events | haiku | up one tier, reasoning work |
| tidy this up a bit | sonnet | nothing, the wording is ambiguous |
Five projects for five clients, and nobody has to label a session. It reads the folder the work is happening in. Cap one client for the month and that one stops while the other four carry on.
Scoped how you need it: one agent, one tool, one team, or the whole fleet. It fires on spend velocity and repeat loops too, so the stop does not wait on a human noticing. The stop is itself receipted, naming who pulled it and when.
Each card is an agent running now: what it was asked to do, which model answered, and what it has cost. One of them just hit a rate limit.
normalise yesterday's events into the warehouse
compare our pricing against the top five competitors
pull every product listing from the supplier catalogue
work out why the payment webhook drops events
Hash-chained, naming the human the agent acted for, the tool it tried, the model that answered and the rule that decided. Edit one record and the chain breaks, and says which line.
npx --yes enforcer-governor startRead the quickstart