Know what your agents
actually did.

Enlil is an open-source control and audit plane for AI agent actions. It sits inline between your agents and any model or tool, and answers the two questions that keep agents out of production: what is this agent allowed to do, and can you prove what it did?

Claude secures Claude. Enlil governs everything your agents touch.

$ cargo install enlil
$ enlil
→ listening on http://0.0.0.0:8080 — traces at /api/traces

Zero config. Point your agent's base URL at it, then open localhost:8080 for the built-in dashboard.

One inline hop. Every action governed and recorded.

Send a request through Enlil and it enforces policy, strips sensitive data, and writes an audit trail — before the provider ever sees it.

What is this agent allowed to do?
Declarative policy rules, evaluated inline on every request.
What did it actually do?
Every action traced with its full decision path.
Can it be manipulated into doing something else?
Prompt-injection and tool-poisoning defense, including MCP tool descriptions.
Will it leak data on the way out?
Reversible PII redaction and encoded-exfiltration detection.
Will it burn my budget in a loop?
Loop-breaker plus per-request token and cost accounting.

Vendor-neutral by construction

Enlil scans payloads structurally, not by schema. It walks every string in the request rather than matching one vendor's field names — so new providers and frameworks are covered on day one, with no per-vendor adapter to wait for.

The same injection string, sent six different ways. All blocked.
Payload shapeResult
messages[].content — OpenAI403 blocked
messages[].content[].text — OpenAI multimodal403 blocked
system — Anthropic403 blocked
contents[].parts[].text — Gemini403 blocked
params.arguments — MCP tools/call403 blocked
prompt — bare completion403 blocked

Each case is pinned by a test in the repo. Your agents will not all be on one model, and your audit trail should not be owned by whoever sold you the model.

What's in the box

All of it open source. This is the engine, not a limited demo of a paid product.

Injection & tool poisoning

Scans message content for instruction-override attempts, and MCP/OpenAI tool descriptions for hidden imperatives, encoded blobs, and invisible Unicode-tag smuggling.

Policy rules

Declarative block / redact / alert rules per request. Credential exfiltration, SQL injection, and prompt injection ship enabled.

Reversible PII redaction

Masks SSNs, emails, cards and phone numbers on the way out, with a local vault to reverse it. Also deobfuscates hex-encoded shell payloads.

Time-travel traces

Every request gets a trace id and is recorded with its governance decisions, cache disposition, latency and cost. Stored locally in SQLite — your data stays yours.

Agent loop-breaker

Detects a session re-issuing the same request intent within a window and hard-stops it before it burns your budget.

Built-in dashboard

Served from the binary itself at /. No separate frontend to deploy, no npm install, no cloud account.

Governance you won't feel

Enforcement is on the critical path, so its cost is measured rather than asserted — and regressions fail the build.

18µs
median
28µs
p99
4.6MB
download
none
external services

Per-request CPU overhead, 5000 iterations, release build, measured on CI so you can check the numbers in the Actions log instead of trusting us. Rust and Tokio, no GC pauses on the hot path; the request body is parsed once and shared across every analyzer. One binary with no database, cache, or cloud account to stand up first — traces go to local SQLite.

Enlil, and Plumb

Enlil is complete and free forever for a team running its own agents. Plumb is the commercial cloud built on the same engine, for when an organisation needs it.

Enlil — open source

Single-tenant, self-hosted, zero config. BSL 1.1 → Apache 2.0.

  • The full inline enforcement engine
  • Local traces and the built-in dashboard
  • Exact-intent caching and cost accounting
  • Run it in production, modify it, keep your data

Plumb — commercial cloud

The org wrapper, when one team's proxy isn't the problem any more.

  • Multi-tenancy, SSO and RBAC
  • Signed compliance evidence packs
  • Long-term retention and fleet-wide policy
  • Managed, with support

The only BSL restriction is offering Enlil itself as a competing managed service. If you're running agents, you're unrestricted.

Put it in front of your agents

One binary, no signup, no cloud account.

$ cargo install enlil
$ enlil