warden is the product. Everything else exists to reach it, prove it, or ship it.
It is a single statically-configured server process. You give it a configuration file naming your database connections, the agents allowed to use them, and the policy each connection is governed by. It opens the database connections itself, so the credentials live in one place that no agent can reach.
What it does with an operation
Every request from every agent travels one path, in this order:- Deduplication happens before the gate, so a retry of something a human already approved replays instead of asking them again.
- Rewriting happens before the gate, so the human approves the statement that will actually run — scope conjunct, column list, masks and all — rather than the one the agent wrote.
Running it
The gateway is stateful on disk but not on a database: the audit chain, leases, and idempotency keys are append-only journals under
data_dir. No second database is needed to run Warden, and nothing on the decision path talks to one.The CLI
warden is also the operator’s command-line tool:
See the CLI reference.
The HTTP surface
One port serves three things, separated by credential:- Data plane (agent keys): execute an operation, describe the schema the agent may see, confirm identity, and poll an async proposal. Reference.
- Control plane (operator tokens): pending approvals, debug sessions, leases, agents, audit, and a live event stream. Reference.
- Operator view (operator token): the browser interface at
/. More.
Requirements
Install it
Homebrew
macOS and Linux, one command, with
warden-mcp alongside.Container image
Distroless, non-root, for a server deployment.
go install
If you already have a Go toolchain and a C compiler.
From source
The full clone, with fixtures and the certification suite. Needs access to the private repository.