π‘οΈ Node9 Proxy
The "Sudo" Command for AI Agents.

Node9 sits between your AI agent and your system. Every shell command, file write, and tool call passes through Node9 first β blocked, approved, or logged based on your policy. Works with Claude Code, Gemini CLI, Cursor, Codex, and any MCP server.
π Full Documentation β
The "Aha!" Moment
AIs move fast. Ask an agent to "ship the fix" and it might push straight to git without asking you.
With Node9:
- AI attempts:
Bash("git push origin main")
- Node9 intercepts: OS-native popup appears instantly
- You block it β one click
- AI pivots: "I'll create a PR for review instead"
Install
brew tap node9-ai/node9 && brew install node9
npm install -g @node9/proxy
node9 init
node9 doctor
Shields β one command per service
Enable expert-crafted protection for the infrastructure your agent touches:
node9 shield enable postgres
node9 shield enable mongodb
node9 shield enable redis
node9 shield enable aws
node9 shield enable k8s
node9 shield enable docker
node9 shield enable github
node9 shield enable bash-safe
node9 shield enable filesystem
node9 shield list
MCP Gateway β protect any MCP server
Wrap any MCP server transparently. The AI sees the same server β Node9 intercepts every tool call:
{
"mcpServers": {
"postgres": {
"command": "node9",
"args": ["mcp", "--upstream", "npx -y @modelcontextprotocol/server-postgres postgresql://..."]
}
}
}
Or use node9 init β it wraps existing MCP servers automatically.
MCP Tool Pinning β rug pull defense
MCP servers can change their tool definitions between sessions. A compromised or malicious server could silently add, remove, or modify tools after initial trust β a rug pull attack.
Node9 defends against this by pinning tool definitions on first use:
- First connection β the gateway records a SHA-256 hash of all tool definitions
- Subsequent connections β the hash is compared; if tools changed, the session is quarantined and all tool calls are blocked until a human reviews and approves the change
- Corrupt pin state β fails closed (blocks), never silently re-trusts
node9 mcp pin list
node9 mcp pin update <serverKey>
node9 mcp pin reset
This is automatic β no configuration needed. The gateway pins on first tools/list and enforces on every subsequent session.
Python SDK β govern any Python agent
from node9 import configure
configure(agent_name="my-agent", policy="require_approval")
Python SDK β Β· Governed Agent examples β
What's always on (no config needed)
- Git: blocks
git push --force, git reset --hard, git clean -fd
- SQL: blocks
DELETE/UPDATE without WHERE, DROP TABLE, TRUNCATE
- Shell: blocks
curl | bash, sudo commands
- DLP: blocks AWS keys, GitHub tokens, Stripe keys, PEM private keys in any tool call argument
- Auto-undo: git snapshot before every AI file edit β
node9 undo to revert
Flight Recorder & HUD
Every tool call your AI agent makes is recorded β command, arguments, result, and cost estimate. Node9 wires a live statusline into Claude Code that shows you what's happening in real time:
π‘ node9 | standard | [bash-safe] | β
12 allowed π 2 blocked π¨ 0 dlp | ~$0.43 | β‘ no-force-push
π claude-opus-4-6 | ctx [βββββββββββββββ] 54% | 5h [βββββββββββββββ] 12% | 7d [βββββββββββββββ] 7%
π 2 CLAUDE.md | 8 rules | 3 MCPs | 4 hooks
Line 1 β Security state: active mode, enabled shields, session totals (allowed / blocked / DLP hits), estimated cost, last rule that fired.
Line 2 β Context & rate limits: model name, context window usage, 5-hour and 7-day token rate-limit bars β so you can see when an agent is burning through quota.
Line 3 β Environment: how many CLAUDE.md files, rules, MCP servers, and hooks are active in the current project.
The HUD is wired automatically by node9 init. Full session logs land in ~/.node9/audit.log.
Offline Report
Run node9 report after a session to get a summary dashboard β what was allowed, what was blocked, DLP hits, cost (Claude Code only), and daily activity:
$ node9 report --period 7d
π‘ node9 Report Β· Last 7 Days Apr 8 β Apr 14 2,255 events
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
1,746 allowed π 509 blocked π¨ 70 DLP hits 23% block rate π° $82.91
Top Tools Top Blocks
βββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββ
Bash ββββββ 1,595 timeout ββββββ 281
Read ββββββ 196 smart-rule-block ββββββ 79
Edit ββββββ 118 observe-mode-dlp-wouldβ¦ ββββββ 69
drop_resource ββββββ 69 persistent-deny ββββββ 69
Grep ββββββ 35 local-decision ββββββ 5
Daily Activity
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Apr 9 ββββββββββββββββββββββββββββββ 833 216 blocked
Apr 10 ββββββββββββββββββββββββββββββ 145 24 blocked
Apr 11 ββββββββββββββββββββββββββββββ 617 139 blocked
Periods: today, 7d (default), 30d, month. Cost data is read from ~/.claude/projects/ β no API calls, fully offline.
π Full docs
Everything else β config reference, smart rules, stateful rules, trusted hosts, approval modes, CLI reference β is at node9.ai/docs.
Related
Enterprise
Node9 Pro provides governance locking, SAML/SSO, and VPC deployment. Visit node9.ai.