Security firewall for AI agents

ScanBeforeTrust

Never trust, always verify. Even your own agents.

Every agent, skill and MCP server you install is a stranger's code running as you. This inspects it before it lands, contains it while it runs, and gives you one clear answer.

pip install AIAgentFirewall · MIT · zero dependencies
The problem

You're installing code from people you've never met.

Agents and skills spread like npm packages or browser extensions. Most are fine. The dangerous ones look identical — until they're already running with your keys.

One file is enough

A single markdown file or setup.sh can read your SSH keys, dump your environment to a webhook, or pipe a remote script straight into your shell.

→ 61 detections watch for exactly this

The danger is invisible

Hidden instructions in tool descriptions. Zero-width characters your eyes can't see. Text that tells your agent to leak secrets and stay quiet about it.

→ prompt injection · tool poisoning · hidden unicode

Clean today, hostile tomorrow

The rug pull: an artifact you approved that mutates in a later update.

Nobody reads it all

No one reviews every line of every add-on. So the risky ones just walk in.

Your agent has real power

Shell access, your credentials, your files. Trust it and you trust its author.

See it work

Pick an artifact. Watch the verdict.

This is a real scan report, replayed. Nothing is uploaded and nothing is executed — the scanner only ever reads.

Zero Trust · defense in depth

Never trust. Always verify.

The same model enterprise security runs on — applied to the AI agents you install and the ones you ship. Three principles, enforced by four layers.

Explicit verification

Prove it, don't trust it

Every artifact is read before it runs, its provenance weighed, and unsigned or unknown sources are held to a stricter bar automatically. Nothing is trusted just because it's popular or already installed.

→ layers 01 Static · 02 Stateful · 03 Provenance Honest scope: by default we detect that a signature exists (tier Declared). Cryptographic verification (tier Verified) is opt-in via --verify-signatures with cosign.
Least privilege access

Only what it needs

Default-deny egress, wildcard-permission (tools: *) detection, and per-tool scope keep an agent to exactly the reach its job requires — and nothing more.

→ egress allowlist · permission overreach · scope policy
Assume breach

Contain what runs

The runtime layer trusts the code with nothing: a kernel-level network jail and live MCP inspection contain a payload that slips past the static tiers, so one bad artifact can't reach your keys or the network.

→ layer 04 Runtime · afw run --isolate Honest scope: the bypass-proof jail needs Linux with unshare privileges. Without them it falls back to a proxy-level allowlist — weaker, and stated as such.
01 · STATIC

Inspect

Read the code, manifests and model-facing text before anything runs.

afw scan
02 · STATEFUL

Remember

Pin what you approved, then catch the update that silently changes it.

afw pin
03 · PROVENANCE

Weigh

Unsigned and unknown sources are held to a stricter bar automatically.

--verify-signatures
04 · RUNTIME

Contain

Default-deny egress, live MCP inspection, kernel-level network jail.

afw run --isolate
61
detections
24
threat categories
4
defense tiers
0
dependencies
0
data sent anywhere
Go deeper

Two more layers, when you want them.

This page is the 30-second version. Stop here, or keep going.

Start now

The thing that checks your trust asks for none.

No account. No API key. No telemetry. It runs entirely on your machine.

$ pip install AIAgentFirewall