Show HN: Claw Patrol, a security firewall for agents
Posted by rough-sea 7 days ago
At Deno we've been using OpenClaw and other agents increasingly for addressing production problems in Deno Deploy - when a PagerDuty alert fires, the agent starts researching the cause and making fixes.
In order to do this, the agent needs access to real production systems - postgres, kubernetes, gcp, clickhouse, github, etc. But this is dangerous to say the least - we want destructive actions to be reviewed by other LLMs, approved by humans, and logged appropriately.
Claw Patrol terminates TCP connections over WireGuard or Tailscale, then parses application protocols (eg http, postgres, ssh) to apply rules that allow you to deny/allow requests.
There are a few projects that sit as a proxy in front of agents to do secret injection or apply various guardrails, but none met our needs (LLM gateways, MCP proxies, sandboxes), particularly the need to handle low-level protocols, or handle complex real world situations like tunneling postgres through k8s.
Written in Go, configured in HCL, MIT licensed. Happy to answer any questions.
Comments
Comment by satvikpendem 5 days ago
Comment by jameslk 5 days ago
The nice thing about Agent Vault is the encryption of credentials and other ways they handle making sure those don't leak from storage. I suppose you could potentially wrap the two in layers as well (agent -> Claw Patrol -> Agent Vault -> external network)
EDIT: looking at some of the comments, it sounds like Claw Patrol can work with protocols beyond HTTP/S, so potentially covers more surface area than AV
Comment by rough-sea 5 days ago
Claw Patrol holds credentials - so probably doesn't make sense to layer with AV - but it's true that AV has more sophisticated storage of creds (eg using 1p)
Comment by lillyjust 5 days ago
Comment by Apylon777 7 days ago
Lots of good concepts to seek inspiration from.
1. process-scoped egress policy
2. policy-as-code
3. explicit approval classes
4. normalized network/ guardrail receipts.
5. structured guardrail outcomes
6. centralized decision rules
Comment by rough-sea 7 days ago
Comment by oulipo2 5 days ago
It seems this is a bit like "reinventing permissions" no?
Comment by rough-sea 5 days ago
Regarding reinventing permissions - scoped credentials solve this to some extent, but it's really nice to have a single place where we can define rules for all services (eg "DROP TABLE" never can occur), or you can SELECT unless it includes the env_vars.secrets column.
Comment by oulipo2 5 days ago
I understand the "centralized registry" thing, but it's also easy to "forget about one case", and agents are good at circumventing stuff ("oh, I cannot DROP table, let me just remove all rows", etc). So I'd rather trust the permissions of the original db (eg getting a read-only account) which I presume have been battle-tested for this
Comment by radku 5 days ago
Disclosure: author of a related tool here. I have create agent-vault-proxy for a very similar reason. It also can help keep credentials out of the agent process. The agent gets a placeholder, the proxy swaps in the real secret in transit.
I read them as complementary: action firewall in front, credential broker behind. https://github.com/inflightsec/agent-vault-proxy
Comment by undefined_void 5 days ago
Comment by denn-gubsky 3 days ago
Comment by hyde0395 2 days ago
Comment by varmabudharaju 5 days ago
Comment by undefined_void 5 days ago
Comment by varmabudharaju 5 days ago
Comment by mmcclure 5 days ago
For those here without young kids in their life: https://en.wikipedia.org/wiki/Paw_Patrol
Comment by oulipo2 5 days ago
It looks like those projects are trying to reinvent service-accounts and permissions... Just define the permissions for each of your APIs, and provide only endpoints to these (through MCP or whatever) to your agents...
Comment by rough-sea 5 days ago
Plus a lot of these services are reached by tunneling through something else. We tunnel into k8s where it has dangerous credentials.
We also don't want to define MCPs for everything. The principle is that the agent doesn't need code changes, including skills/MCPs - it just accesses systems.
Claw Patrol lets us give agents more access because it's watching everything at the wire. `kubectl delete pod foo` waits for slack approval, SELECT on env_vars runs through an LLM judge to check if it actually returns secret data. For our setup this is security policy that is a single file, checked into git, that gates access across 14 k8s clusters, clickhouse, postgres, a dozen other HTTP APIs.
Comment by oulipo2 5 days ago
That's why you're having safety issues.
The real (and boring, and tedious) way to do it IS to create a unique way (API, MCP, whatever) for the agent to access your data / infra in a secure way.
Think about it as "typing" in language. Sure it's boring to have to put all the type info (even though in many case it makes dev easier too, because it forces to construct stuff cleanly), but then once it typechecks, you're relatively sure that it's doing what it's supposed to.
Here it would be the same. You build basic building blocks that you know are safe for the agent to access, and you let it compose them
Comment by thatsit 5 days ago
Comment by Hans_Cui 5 days ago
Comment by rough-sea 5 days ago
Comment by Jayakumark 5 days ago
Comment by rough-sea 5 days ago
Comment by MadsRC 5 days ago
Comment by rough-sea 5 days ago
Comment by pavelpilyak 7 days ago
Comment by rough-sea 7 days ago
We have a big and detailed config file for our own internal use - but reluctant to release that exactly because it has information about our systems.
There's an example config file here that might be helpful https://github.com/denoland/clawpatrol/blob/main/examples/ga... - we use agents to write the config by pointing it at https://clawpatrol.dev/llms-full.txt
Comment by czbond 5 days ago
Comment by bhargab_kalita 3 days ago
Comment by dhavd 5 days ago
Comment by nhattruongadm 3 days ago
Comment by KaiShips 5 days ago
Comment by milovance 5 days ago
Comment by BhaskarKMS 5 days ago
Comment by xuanlin314 3 days ago
Comment by oneclickclaw 5 days ago