Loading the engine…
- Agent
- Action
- Sent as
- Decided in
- Decision
- Previous
- This record
- Signature
For teams whose developers run coding agents with MCP tools. Route an agent's calls through PyxGrant and each one, from file reads and shell commands to prompts, pushes, and payments, is checked against identity, workspace, data, and budget. PyxGrant allows, redacts, holds, or blocks it before it lands, and signs the decision.
These are PyxGrant's real baseline rules, running in this page against a fictional demo organization. Pick what the agent tries. The decision is signed with a key your browser just made, and nothing is sent to us.
Loading the engine…
Some checks need the real machine, such as resolving symlinks on disk or reading an independent observer's signature. They can't run in a browser, so here they fail closed, the same as the product does when it can't confirm something.
Your developers already run Cursor, Claude Code, and CI agents with auto-run on and MCP servers they installed themselves. That is where agents touch source, secrets, and production first, so it is the first deployment we recommend.
See the pilot plan →An agent's action has six points where it can go wrong. A prompt and response filter watches the first two. PyxGrant makes a signed decision at all six, including the ones after the model has answered.
Secrets, card numbers, and PHI are refused or redacted before the model sees them.
R-SECRET-LLM · R-REDACTThe model is pinned, regulated data goes only to models approved for it, and the cost is forecast in the same verdict.
R-PHI-BAA · R-WALLETThe tool must match its pinned digest. Undeclared or instruction-shaped arguments are refused.
R-DRIFT · R-UNDECLAREDThe result is scanned before it re-enters the model. An injection hidden in a page or a file stops here.
R-RESPONSEWrites resolve symlinks, clicks recheck the landed URL, and money needs a grant that an independent observer reads back.
R-SYMLINK · R-LANDED · R-READBACKEach decision is signed and chained to the one before it. You verify it with a key you hold.
Ed25519 · hash chainPyxGrant decides what reaches it. This is exactly what reaches it in the current build.
| Surface | How it reaches PyxGrant | Status |
|---|---|---|
| MCP tool calls | The MCP guard wraps each server | Enforced Denied calls are never forwarded. If PyxGrant is down, the guard stops forwarding. |
| Shell and file actions from coding agents | Runtime checkpoint: a CLI and local proxy on laptops and CI | Enforced if routed Built-in agent tools that bypass both the checkpoint and MCP are not seen. |
| Your own agents and their model calls | Decision API | Your code asks Enforced when your code asks first and honors the answer. There is no drop-in model proxy yet. |
| Finding agents | Collector on laptops and CI runners | Observed Known config files and process names only. An agent that leaves neither is missed. |
| Meeting bots, SaaS agents, phones, plant controllers | Reference connector endpoints | Your code asks The endpoints exist. No vendor-built connector ships yet. |
| Every file and syscall on the host | None | Not covered No kernel probe. Your EDR keeps this job. |
| Running through an outage | One host | Not built It fails closed. High availability is not built yet. |
Click through it. Activity, agents, files, downloads, data protection, and approvals, all from signed decisions.
Each routed action, decided before it runs
Found on laptops, CI, clusters, and the network. No developer opt-in.
cursor-sam · the grant is the workspace, resolved on disk, not the path the agent typed
R-TREER-SYMLINKR-SECRET-PATHFiles an agent fetches through a checkpoint, checked before they reach disk or context
Checked on the way into the model, into tools, and out to the network
Follow up with [email protected][email] about claim 18.
SELECT name, ssn FROM members
Session read MRN 884211 earlier. PHI cannot flow to Slack.
claims-bot · R-SLACKPatient data to a model without a BAA.
claims-bot · R-PHI-BAAaws_key = AKIA••••••••••••
cursor-sam · R-SECRET-LLMCard 4111 •••• •••• 1111 passes the Luhn check.
rt-canary · R-PANA grant covers one argument hash, and an owner can't approve their own agent
Product preview. Northstar Health is a fictional organization the appliance seeds on first boot for demos; it is not a customer.
The four questions every security review asks first, answered before the demo.
One Node service and one SQLite file on hardware you control. Agents reach it three ways, and you can mix them.
Policy is evaluated in-process from readable rules. No model is called to make a decision, and the model is never the enforcement point.
The call is refused, not waved through. The CLI exits with code 3 and the MCP guard stops forwarding.
It sits in front of agent actions and leaves the rest of your stack in place.
We don't have public customer results yet. This is what you can check today, and the command that reproduces it.
public incident classes refused. Twelve are caught from the request or by a PyxGrant component. Three need the caller to supply the signal.
median engine time. With signing and the database write, the median is 3.3 ms. Measured in-process on a laptop; no network hop.
scenarios in the live demo get the same verdict in your browser as on the server. A test fails the build if any differ.
Reproduce it: npm run evidence · Full results and method →
A pilot covers one team, its laptops and CI runners, and the MCP servers they use. The plan lists the setup, what we measure, and the limits up front.