AI agents can now delete files, overwrite data, run shell commands, and click "Pay Now" in a browser. Praxis intercepts the action before it executes, not after, and runs it through a decision cascade:
praxis:local (you) or agent:* (a specific AI tool). This can't be spoofed by the agent itself.Destructive operations are also trash-first: a delete never immediately destroys data. It's moved to a recoverable trash location before the real removal would occur, so a wrong verdict is still reversible.
SSH keys, cloud credentials (AWS/GCP/Azure), browser keychains, .env
files, and API tokens are treated as T3 — secret-touching, the
highest risk tier. This isn't a per-agent setting you can loosen: Praxis
refuses to hand these to an AI agent regardless of how the request is
phrased, because the matcher checks the actual action and path, not just
the surface wording of the prompt.
Every decision Praxis makes — allowed, blocked, or escalated for your approval — is written to an append-only evidence log. Each record is SHA-256 hash-chained to the one before it, the same structure used in tamper-evident logging systems: if any past entry is edited or deleted, every hash after it breaks, so tampering is mathematically detectable, not just "logged and trusted."
This means you can always answer, with proof: what did this AI agent actually do on my machine, and when?
Praxis doesn't require a network connection or a cloud account to function. Risk classification runs on a local embedding model, policy decisions are evaluated on-device, and when you want natural-language file search or questions answered without internet access, Praxis can serve a local model through Ollama. Nothing about the guardrail itself depends on a server we operate — because there isn't one in the free edition.
"Find my passport scan" works even when the file is named
IMG_4821_final_v2.pdf. Praxis does fuzzy, fast local search
across your disk — filename and content — with no upload to any cloud
service. Search results respect the same guardrail: an agent searching on
your behalf still can't read something it isn't allowed to read.
Trust is per-tool and reversible. Enable or disable Praxis for each AI client (ChatGPT/Codex, Claude Desktop, Cursor, and others) independently. A single panic button revokes every active permission instantly if something looks wrong. Policy presets — Paranoid, Balanced, Permissive — give you a starting posture, and every cell of the principal × risk-tier matrix can be tuned beyond that, except the hard-deny floors.
Today, Praxis intercepts at the MCP layer — the protocol most AI tools use to call local tools — plus a browser-action wrapper for things like checkout buttons. That's a real interception point as long as the agent goes through the offered tool. The roadmap item is OS-level enforcement (macOS EndpointSecurity / Linux eBPF-LSM), which gates the actual syscall rather than the tool call, so interception holds even if an agent tries to route around the MCP tool with its own shell access. See the interactive walkthrough for a live comparison of which interception model catches which bypass attempt.