---
**Memnox is an open source runtime that tells you what you can safely let your AI coding
agent do next.** It rules on every tool call Claude Code, Codex, Cursor, Gemini CLI or
Windsurf makes, before the call runs, with one of three verdicts: **allow**, **ask** or
**deny**. It runs on your machine and needs no account.
What is allowed goes ahead. What is denied is refused with a way forward, so the agent
finishes the task instead of stalling. What needs a person asks you in the prompt you are
already looking at. Once you have said yes to the same thing often enough, `memnox next`
names it as something you could stop being asked about.
You do not learn a new tool to get that. You set it up once and keep working the way you
work now.
## Quick start
```sh
npm install -g memnox
memnox setup
```
That is the last Memnox command you need. `setup` finds the agents on this machine and goes
through them one at a time: what each can already reach, what you want to call it, and
whether to put it under Memnox. Nothing is changed for an agent you say no to.
```
Claude Code
claude-code
id agt_claude-code
config ~/.claude.json
mcp github
can use shell, filesystem, git, network, mcp
can reach ~/.aws/credentials, network
Call it something acme will recognise, or press Enter to keep "Claude Code" > Backend Coder
Put Backend Coder under Memnox now? [Y/n] y
```
For each agent you accept, it puts a hook in front of every tool call, gives the agent a
small MCP server (`memnox-session`) it can ask Memnox through, and adds a `/fingerprint`
command. It also has the machine start the daemon that holds the rules. Then you open your
agent the way you always do. There is nothing to launch and nothing to remember.
Want to look before you change anything? `npx memnox` reads the agent configs on your
machine and prints what each can reach. It changes nothing and needs no account, and
[what your agents can reach](#what-your-agents-can-reach-before-you-decide-anything) shows
what it finds.
### Requirements
Node 22 or newer. Everything starts in **observe**, which records what every rule would
have said and stops nothing, until you switch to enforce.
| | The daemon is started by | It listens on | Kernel guard |
|---|---|---|---|
| **macOS** | launchd, as a user agent kept alive | a unix socket in `~/.memnox` | `sandbox-exec` |
| **Linux** | systemd, as a user unit restarted on failure | a unix socket in `~/.memnox` | Landlock |
| **Windows, natively** | Task Scheduler, at logon | a named pipe for your account | none yet |
| **Windows, in WSL** | the same as Linux | the same as Linux | Landlock |
`memnox setup` installs the daemon for you, and `memnox daemon --install`, `--status` and
`--uninstall` manage it by hand. On Windows the MCP proxy, the interceptors and Claude
Code's hook govern agents on the Windows side, but there is no kernel guard, a task is not
restarted after a crash, and a named pipe is not the owner only boundary a socket is, so
WSL is still the stronger choice. `memnox doctor` says which agents are governed natively,
and [ADR 0003](docs/adr/0003-native-windows.md) says what is and is not verified there.
## What you get, inside every session
| When | What Memnox does | What you typed |
|---|---|---|
| A session starts | The agent is told the boundary it works in, the rules in force, what your team has settled and how this repository is built, so it plans around them instead of walking into them | nothing |
| The agent reaches for something your rules refuse | The call never runs. The agent is told why and what to use instead, so it finishes the task rather than stalling | nothing |
| Something needs a person | You are asked in your agent's own permission prompt, in the conversation, on a paired app, or in your Slack or Discord DM. Yes once, yes for the session, or no | a yes or a no |
| The agent writes code that breaks how this repository is built | Refused before it lands, or sent straight back to be put right, even when the agent switches from its edit tool to the shell | nothing |
| Your prompt touches something your team already decided | The decision is put in front of the agent, with who confirmed it and where | nothing |
| Two agents go for the same file | The second is told who holds it and what they have been doing | nothing |
| You want to know why, what happened, or to undo it | Ask the agent in plain words: "why was that refused?", "what have you done this session?", "undo what you did" | a sentence |