Your AI agent, protected, before it acts.
This film shows Enforce, which is available from 1.8.2. Observe, the default, records these actions, stops secrets from leaving and freezes an agent that goes out of bounds.
1.8.2: Enforce is available. Isolate is coming in a later release: its sealed workspace isn't ready yet.
Crawdad governs what each agent is allowed to do by its purpose, and judges the action the agent takes rather than the intent it claims. It runs on your machine, in the path where an agent acts, so the identical request can be in bounds for one agent and out of bounds for another; at Observe, Crawdad records the difference and freezes an agent that goes out of bounds. Prompt injection, credential theft, and data exfiltration are caught locally, in real time, with content staying on the device by default. The benchmark is public, reproducible, and yours to run.
We show it on your own agents, with nothing to install for the demo. · Already a customer? Sign in →
Light in pattern-only mode (about 60–70 MB); the default ML classifier uses about 1.8–2.9 GB, no GPU required. System requirements →
We walk through Crawdad with your team, on your own agents. There is nothing to install for the demo.
An agent reads hidden instructions in a file or a web page and tries to follow them. Crawdad removes the injected part and shows you what it removed.
A key or token on its way out in a request is masked before it leaves the machine.
Observe, the default, records and stops secrets. Enforce also holds actions that go past what the agent is for.
The fleet console sets the protection level and policy for every device and shows which ones report in.
Customers get the downloads and deployment guides in the customer portal. · System requirements
Your AI agents run with your authority: your credentials, your files, your network access. When an agent reads a poisoned document, it doesn't "get hacked." It follows the hidden instruction the same way it follows the ones you gave it.
The result is credential exfiltration, unauthorized file access, and data leakage, all inside your trust boundary. EDR doesn't see it. DLP doesn't see it. Your identity provider doesn't see it. Nothing in the perimeter stack was built for what an agent does after it reads its input.
Forty-five seconds on what an agent actually does once it reads a poisoned instruction. See all ten walkthroughs →
An agent's power is local. It holds your credentials, reads your files, and calls your tools on your machine. So the place to govern it is the same place. Crawdad runs on the device, in the path between every agent and the model, and decides what each request is allowed to do before it happens. No content leaves the machine for Crawdad to work. Four properties follow from that, and each is one a central cloud gateway cannot offer.
Every agent gets an autonomy ceiling, a set of zones it may touch, per-tool rules, and a session-risk budget that escalates intervention as a session gets more dangerous. Enforced at the wire, by identity. Real agency limitation, not a sentence in a system prompt politely asking the model to behave.
The real API key lives in a hardened store the agent never touches. The agent carries a placeholder that authenticates only through Crawdad. Copy the agent's environment, read its headers, exfiltrate its config: none of it yields a key that works anywhere else. Credential-based bypass stops being a detection problem and becomes architecturally impossible.
Inspection happens on-device. Raw prompts, responses, tool arguments, and files never leave. A gateway has to receive your content to read it; Crawdad never receives it at all. That is the line between a vendor you trust with your data and one that structurally never holds it, and it is what makes Crawdad usable in regulated and data-sovereign environments.
Every event is written to a signed, hash-chained log. A standalone verifier checks it with no network, no Crawdad service, and no secrets from the machine. An auditor who distrusts us can confirm integrity independently. Trust you can check beats trust you're asked to extend.
See the architecture do the two things this section claims, read every action, and prove what it did.
Filtering the input is a losing game against a determined attacker. The durable question is whether an agent's behavior fits its job. Crawdad governs each agent by purpose, on-device, at the point where it acts, and it judges the action it took, not the intent it claimed.
An operator writes a charter, held outside the agent's control, that says what the agent's job actually is: which tools, which data, which effects. A reporting agent may read the reports tree and email the reporting domain, nothing else.
The charter is an allowlist, not a system-prompt request. A compromised agent hits the same wall an honest one would.
Enumerate a directory, read progressively more sensitive in-scope files, stage them, then send. Each step is individually allowed. The shape of the whole is the attack. Crawdad watches that shape across the session.
It does not claim to catch every composed harm. It catches staged compromise that carries a sensitivity climb, which is the shape real exfiltration takes.
A runnable demo drives this on the real enforcement path. The verdicts are computed by the production engine; the scenario is scripted so it reproduces and side effects are simulated; free-drive returns a real verdict on any action you type. Read how it works →
Charters sit on the same on-device chokepoint as the rest of the governance plane and the credential layer.
Four more primitives compose most-restrictive-wins at the agent-to-tool boundary, authored in the same policy file. At Observe they record and freeze; denying, asking and blocking come with Enforce:
A compromised agent stays powerful and stays bounded. Each primitive is proven by an over-the-wire block test against the real proxy at Enforce.
In broker mode, the agent holds an opaque placeholder. The real API key lives in a hardened AES-256-GCM store the agent never touches, and is injected only on a request that passes a constant-time check, only through Crawdad.
Read the agent's environment and you get nothing that authenticates anywhere else. Credential-based bypass becomes architecturally impossible, not merely detectable. Opt-in.
Every decision the engine makes is legible. An operator drives it from the local dashboard; an MSP drives a whole fleet from the self-hosted console. Same decisions, same hash-chained, metadata-only path.
A live feed of every charter and trajectory decision, each with its verdict and the axis or signal that fired, plus a per-session view of risk accumulating step by step. What blocked, why, and where the session stood.
Write a charter from the dashboard and it governs at the wire on the next action, no restart. At Enforce, held actions land in a review queue; approve to release the session or deny to keep it gated, and the approval has a real effect on the running engine. At Observe you review recorded and frozen events. Every held or blocked action shows in plain language what it caught and why, with a one-click allow when it's fine, a hold is a pause you can release, not a dead end.
The fleet console rolls governance up per client and across clients, distributes charter templates that devices load, and surfaces held actions for triage, wired device to console over the same signed channel every other fleet command uses.
Crawdad puts it all on one on-device platform: local-first inspection, credential mediation, charters and trajectory governance, the control surface, and MSP-native provisioning and billing, and publishes a benchmark you can rerun to check it.
Protect every agent across a whole fleet from one screen, with cryptographic proof for every client. See all ten walkthroughs →
Real product, real data, real screenshots, not mockups. Crawdad's dashboard gives you complete visibility into what your AI agents are actually doing.
Audit Trail, every detection with session context and forensics
Continuous Red Team, automated attack simulation against your pipeline
AI Inventory, models, MCP servers, agent discovery, policy config
Fleet Console, self-hosted management across your fleet
Set ANTHROPIC_BASE_URL=http://localhost:7748, your agent's traffic flows through Crawdad with no code changes.
Five real runtime attacks, each verdict captured at Enforce. Flip Crawdad off yourself and watch the attack land.
Pointing an agent at the proxy is cooperative, and a compromised agent may try another route. In Observe, the default, Crawdad records everything, stops secrets (credentials and clear attempts to send data out), and freezes an agent that goes out of bounds, and it changes nothing about your machine. In Enforce, on macOS when agents run as a separate user, the operating system itself leaves no path off the machine except through Crawdad (on macOS, where the lock is validated); On Linux, and when agents run as you, Enforce works through Crawdad's own checks (the proxy, hooks and the secrets floor), and no network lock applies. Enforce is opt-in, and Isolate, below, comes in a later release.
On macOS, when agents run as a separate user, Enforce installs a persistent OS default-deny egress lock (pf on macOS). A governed agent reaches only the Crawdad proxy path; everything else, including UDP/QUIC, is denied by construction.
The Isolate tier, coming in a later release, runs the agent inside a sealed workspace (a VM on macOS/Apple silicon, using Apple's Virtualization framework) whose only network interface routes through Crawdad. Escape is refused at the packet level, not by a deny rule.
Where the lock is in place, it survives a kill, so there is a deliberate recovery path, and it is deliberately hard to reach. When agents run as you, a program you run can still change or stop Crawdad.
Platform, stated honestly. Every device runs Observe by default, and a stock device is byte-for-byte unchanged. The Enforce lock is opt-in and applies only on macOS, when agents run as a separate user. Crawdad 1.8.2 has no OS network lock on Linux. Read the Enforce mode guide →
Every request passes through a multi-layer detection pipeline. Pattern matching, semantic behavioral analysis, indirect injection detection, session context tracking, PII and credential scanning, and an ML classifier all run. Then an arbiter weighs the signals and renders one verdict.
Built in Rust, with over 5,100 automated tests across the workspace. Pattern-only layers add sub-millisecond checks. The ML classifier runs on every input; its cost is managed by caching and quantization, not by a prefilter that decides when to look. The arbiter is what turns a detection into a block: it blocks the credential and data-exfiltration floors inline at every protection level on chat traffic that goes through Crawdad, and at Enforce, which is opt-in, it promotes a single high-confidence detection to an inline block. Detection and blocking are separate, and what Crawdad blocks depends on the protection level. See the latest threat intelligence for what the pipeline catches in the wild.
The benchmark is a clone-and-run corpus of real agent attacks across 15 categories, paired with 1,187 benign samples. Run it against Crawdad, or against anyone, and compare the results yourself. Detection and blocking are separate →
Every miss is published: when the engine misses an attack, that attack stays in the published results, so you can see exactly what got through. Every false positive is published too. The current results ship with each release.
AndrewSispoidis/contemporary-agent-attacks →
CC BY 4.0 · 533 attacks · 1,187 benign negatives · 15 categories
Every threat below maps to a real detection layer, structural invariant, or behavioral check in the pipeline.
Direct and indirect injection attempts. Pattern matching, semantic analysis, and tool-result scanning catch known and novel payloads.
Detection layers →PII and credential scanning plus attack-sequence detection flag recon–read–exfil chains. Credentials and clear attempts to send data out are stopped before they leave; at Observe, the default, the rest is recorded.
Sequence detection →API keys, private keys, tokens, connection strings, and AWS credentials in agent output are detected and flagged before they reach your tools.
Response scanning →Automatic MCP server risk assessment and typosquat detection for 53 popular packages. Per-tool risk classification.
Tool intelligence →Seven built-in sequence patterns: recon, credential access, persistence, lateral movement, privilege escalation, data staging, and defense evasion.
Attack sequences →Structural invariant checking detects when your system prompt appears in agent output, a sign of context compromise.
Invariant checks →Semantic heuristics and role-consistency invariants detect identity manipulation and authority impersonation mid-session.
Semantic detection →Per-session invisible canary markers. If a canary appears in output, the context has been compromised. A canary only fires when the marker itself appears in output, so ordinary text does not trigger it.
Canary tokens →Your prompts, responses, tool-call arguments, and PII stay on your machine. Only metadata leaves by default: counts, categories, verdicts. Raw content never does. And there is no single-party switch to change that: content-carrying telemetry is gated by a dual-consent requirement that needs both an org-level policy and an on-device consent record before anything can leave.
Architected for regulated environments.
The first question about a tool that sees everything: what stops it from leaking you? Everything is inspected on your machine; only a verdict ever leaves. See all ten walkthroughs →
Scan your machine free. Crawdad Sonar finds every process talking to an LLM and what it can reach, nothing leaves your machine.
See what your agents do, and what Crawdad stops, on your own machines.
See Crawdad on your own agents. Nothing to install for the demo.
Try itInteractive sandbox and attack demo.
VideosTen short walkthroughs, about 40 seconds each.
Verify533 real attacks. Public and reproducible. Run it yourself.
MSP-native by design. Provision a client, roll out to their whole fleet with one minted key, bill per governed device, and roll every client up in one view. A recurring service line on the relationship you already own.
Explore the partner program →Central policy, scope hierarchy, signed commands, sealed telemetry, RBAC, and fleet-wide governance rollup. Self-hosted Fleet Console, deployed with one command.
See the Fleet Console →Nothing leaves the machine, so there is no content to breach. Signed enforcement floors a central admin can't lower, a hash-chained audit an outside party can verify, runs fully offline, architected for SOC 2 controls.
Read the architecture →Transparent proxy, no SDK, no code changes. Review detections in the dashboard, tune with one click.
Crawdad for developers →Book a demo and we show you Crawdad on your own agents. Or sign up for the customer portal, which has the downloads and the guides to deploy Crawdad on one machine or across a fleet: create an account, and we review every request and email you when your access is ready.
Already a customer? Sign in to the customer portal →
Thirty years of finding the gap between what systems do and what their operators believe, across seven companies, four exits, and a public-market merger. AI agents are the newest version of that pattern: they run with your authority, inside your trust boundary, and you can't see the difference between normal and compromised. Crawdad exists because the moment agents became autonomous, someone needed to watch what they actually do. I built it independently, in the open, because I believe agents should be safe by default.Andrew, founder of Crawdad
The threat is already inside. Crawdad sits between every agent and its LLM and inspects every request before it reaches the model. Raw content stays on your machine by default. Measured on a public, reproducible benchmark of real attacks on the open corpus.
Book a demo →Already a customer? Sign in →
Get notified when we ship. No spam, just changelog updates.