Golem sits in the path of everything your coding agents do, stops the dangerous call before it runs, and signs a record of every action that nobody can quietly edit.
Free while in preview · one-line install · raw data can stay in your own bucket.
Why this exists
It reads untrusted content, calls tools and hits the network, headlessly and faster than you can watch. Three questions have no good answers today.
A poisoned web page or PR comment can turn your agent against you. Nothing checks the URL or the tool call at the moment it fires.
“An agent called an endpoint” is not evidence. Logs can be edited. After the fact, you cannot prove which agent, with what scope, touched what.
Shadow MCP servers, unvetted tool calls, silent token burn. The agent surface grows faster than anyone's map of it.
Where Golem sits
A pre-tool hook is cooperative: the agent's runtime calls it and honours its answer. That stops a misbehaving model. It does not stop a runtime that skips its hooks, or what a shell command starts once it is running. Golem answers those hooks too, and adds three layers below them.
An agent's MCP traffic goes through Golem on its way to the real server, so a refused call never reaches it. That does not depend on the agent choosing to ask first.
On macOS, every shell command a Claude Code session runs starts inside the Mac's own sandbox. Private keys, shell history, git credentials and Golem's own files stay unreadable, whatever the command or anything it starts tries. ssh, git signing, Docker and cloud CLIs keep working.
A page from an issue, a repo from a PR, a download nobody vetted: the agent hands it to a locked-down child in a VM with no credentials, and gets back an answer or a patch plus everything the child tried that it wasn't allowed to.
| Layer | Works in | Platforms |
|---|---|---|
| Answers the hook: block, hold, a reason on refusal | Claude Code, Cursor, Codex, GitHub Copilot, Antigravity, Devin, Gemini CLI; Hermes and OpenClaw by plugin | macOS, Linux, Windows |
| The MCP path | Any MCP client | macOS, Linux, Windows |
| Kernel jail on every shell command | Claude Code | macOS |
| VM sandbox for untrusted work | Any agent that can call Golem's MCP tools | Apple silicon, macOS 26 or later |
| Signed record | Everything above | All of them |
A hold appears as the client's own approval prompt where it has one. Cursor prompts only in its Allowlist run mode; in its other modes a hold is refused, never quietly allowed.
One hijack, start to finish
Prompt injection doesn't need to breach your machine. It just needs your agent to read the wrong thing while it holds your keys. The messages below are the ones Golem actually returns; rule names and ids are examples.
You ask your agent to check the review feedback on a PR. It runs gh pr view 482 --comments. A comment left after you opened the PR carries hidden instructions, now in the context of an agent on a laptop already signed in to gh and your cloud.
With the injection check on, Golem scores what the command returned. A rule on that score taints the session: from then on, its shell commands run with no network, no credentials, and writes only inside the repo.
Following the comment, the agent tries to post your .env to a webhook. The command runs inside the jail and cannot connect.
It tries to push a backdoor straight to main. The workspace's rule refuses the call before Claude Code runs it, and tells the agent why:
The score, the taint, the failed request and the refusal are each signed as they happen, outside the agent, and chained to the entry before them. Your security team reads the whole sequence in the console, and can hand it to an auditor.
An entry, abbreviated. Values are examples.
Don't take our word for it
“We blocked it” is a sentence. A signed entry the actor cannot edit is evidence. Each entry is signed with ES256 as it passes and chained by SHA-256 to the one before it, so changing, deleting or reordering anything shows. On a Linux machine with a TPM, the signing key is rooted in hardware. An evidence export carries its own verifier: about 300 lines of Python you can read before you run it.
What you get
Golem records what your agents do from outside them: the coding agents, their AI-model calls, even the browser. A record the agent writes about itself is not evidence.
from outside the agentEvery call is checked against known threats and your rules, then let through, refused with a reason the agent can act on, or held for your approval in the client's own prompt.
before the action landsWhen a host looks compromised, every new session on it comes up restricted until someone with the authority clears it. It keeps reporting the whole time, so the evidence keeps arriving while its reach is cut.
reversible by designEvery agent's MCP servers, skills, hooks and instruction files are scanned, and an MCP server nobody approved can be alerted on or blocked until an admin says yes.
servers · skills · hooksRaw payloads go to your own bucket and Golem keeps only hashes and signatures, or Golem holds them encrypted under a key per workspace. Sensitive fields can be redacted before anything is written.
your bucket · per-workspace keys · redactionGolem's investigators read what an agent said beside what it did, and raise flags for a person rather than act on their own. A person can escalate a flag into a security case.
flags · cases · evidence exportWho builds it
Golem is built by a practising CISO, for the security leaders who just found out their engineers gave agents production credentials. It is in free public preview while we work with design partners. Before you install anything, you can meet the founder: we'll introduce ourselves on a call.
Questions a security team asks
Raw payloads go to your own bucket (S3, GCS, Azure or local disk), or to Golem's, encrypted under a key for your workspace alone. Golem's record holds hashes and signatures. Secrets and sensitive fields can be redacted before anything is written, and the record still verifies. Where your data goes.
No. The block decision is a local rule check, with no model and no network hop. Models only read sessions afterwards, to raise flags for a person. That review runs on the provider, key and model you choose, or Golem's, under a monthly ceiling in dollars, and reading payload bodies is off until you turn it on. Rules · Session review.
The shell jail keeps a baseline, so credential stores and persistence writes stay denied. The agents' hooks let calls through rather than stall your engineers. If an MCP server behind Golem is down, calls fail open by default, and a profile can make them fail closed. When Golem is down.
One line on a laptop, or the same installer pushed through Jamf, Intune or Kandji. One command removes all of it. Fleet rollout · Uninstall.
It installs the golem binary and a per-user background service. In each agent client it finds, it adds Golem's own entries and leaves every other one alone: for Claude Code, a golem-* MCP entry in ~/.claude.json and hooks in ~/.claude/settings.json; for Cursor, ~/.cursor/hooks.json and ~/.cursor/mcp.json; and the equivalent files for Codex, Copilot, Antigravity, Devin and Gemini CLI. If you manage those files from a repo, re-running the setup repairs only Golem's keys. What it changes.
The shell jail is for Claude Code on macOS, and the VM sandbox needs Apple silicon with macOS 26 or later. Where a client offers only a hook, Golem's control there is as strong as that hook. We'd rather you hear that here than in a pilot. Limits, and what Golem does not do.
Nothing during the free public preview. Talk to us if you need to know what comes after it before you start.
Free while in preview. Install it on one laptop this afternoon, and see everything your agents do.
Sign in with Google or email · raw data can stay in your own bucket