github.com/Abhishek-Mallick/Warden, and go install works for the commands it contains. But there is no client library to import, and the packages that implement governance are under internal/, which Go itself prevents you from importing.
Why not a library
A library that an agent imports is a library the agent can decline to call. If governance is a function inside the agent’s process, then the agent — or a prompt injected into it, or a bug, or a well-meaning refactor — can call the database driver directly and skip it entirely. The credential is right there in the same process. Nothing about the arrangement can make a guarantee stick. Warden puts the credential on the other side of a process boundary. The agent has an agent key, which buys it governed access and nothing else:import warden?” is no.
What is exported
Two small packages are public, for tools that read Warden’s output:
Everything else — the gate, connectors, policy, masking, the IR — is
internal/. These two are not a client SDK; they help you parse what the HTTP API already gives you.
Integrating without a library
Call the HTTP data plane — onePOST and three GETs — or use the MCP server if your agent speaks MCP. Both are small enough that a client is thirty lines in any language. Official SDKs are planned but not shipped.
Building on the source
If you want to add a connector or embed the gateway in your own binary, that is a source-level activity rather than a dependency — and the source repository is private, so it needs access:make importguard): nothing above the connector layer may import a database driver. A new connector implements the interfaces in internal/connector and earns its guarantees by passing the certification suite — a connector is not done when it runs a query.