π‘οΈ 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.
Skills Pinning β installed-plugin drift detection
Marketplace plugins at ~/.claude/plugins/marketplaces/ come from registries, not your workspace β git status never sees them. Each installed plugin gets its own pin (same model as MCP server pinning): installing a new plugin creates a new pin silently; only changes to an already-pinned plugin trigger drift. Opt-in via policy.skillPinning.enabled: true; use mode: 'block' for strict enforcement. User-edited files are not in default scope. Extend via policy.skillPinning.roots.
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
- Skills Pinning: SHA-256 verification of agent skill files between sessions; quarantines on drift (AST 02 + AST 07 β supply chain & update drift)
Observability
Every tool call your AI agent makes is recorded β command, arguments, result, and cost estimate. Node9 gives you four ways to see what your agent is doing.
Live HUD (statusline)
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.
node9 tail β live stream
Stream every tool call as it happens. Useful when you send an agent off to work and want to watch what it's doing:
node9 tail
node9 tail --all
Each line shows the tool name, a summary of its arguments, and the decision (allowed / blocked / DLP hit).
node9 report β security dashboard
Run after a session to get a summary of what was allowed, blocked, DLP hits, cost, 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.
node9 sessions β session history
See what your AI agent did across sessions β prompt, tool calls, cost, files modified, and whether a snapshot was taken. Useful when you hand off a task and come back to review what happened:
$ node9 sessions --all
π node9 sessions β what your AI agent did
7 sessions $178.93 total 2379 tool calls 122 files modified
avg $25.56 /session 7 of 7 sessions had snapshots
Tool breakdown:
Bash ββββββββββββββββββββ 1165 (49%)
Read ββββββββββββββββββββ 613 (26%)
Edit ββββββββββββββββββββ 367 (15%)
Other ββββββββββββββββββββ 203 (9%)
Write ββββββββββββββββββββ 31 (1%)
βββ Apr 15 ~/node9
14:47 implement delegated sessions feature 919 tools $74.45 πΈ 00ac39e2
12:47 ok, it seems you crash and we have a bugβ¦ 95 tools $6.40 πΈ 5a4e7fab
Drill into any session for a full tool trace:
$ node9 sessions --detail 4812594b
Session 4812594b-c93f-4a26-91f0-44aa2e324918
Prompt can you push node9-proxy to git dev?
Project ~/node9
When Apr 9, 2026, 20:49
Cost ~$2.06
Snapshot β taken
Tool calls (54):
20:49 Bash git status && git branch -a
20:52 Write /home/nadav/node9/node9-proxy/.git/hooks/pre-commit
20:56 Edit /home/nadav/node9/node9-proxy/src/cli/commands/check.ts
...
Files modified (3):
/home/nadav/node9/node9-proxy/.git/hooks/pre-commit
/home/nadav/node9/node9-proxy/src/cli/commands/check.ts
/home/nadav/node9/node9-proxy/src/cli/hud.ts
node9 sessions
node9 sessions --all
node9 sessions --days 30
node9 sessions --detail <session-id>
Currently works with Claude Code. Support for other agents coming as they expose session history.
node9 scan β day-0 forecast
Not installed yet? Run node9 scan against your existing Claude Code history to see what Node9 would have caught if it had been running:
$ node9 scan
π node9 scan β what would node9 catch?
42 sessions 3,891 tool calls 1,165 bash commands last 90 days
If node9 had been installed: 23 commands flagged for review
bash-safe Β· 12 findings β node9 shield enable bash-safe
block-pipe-to-shell Γ8 β Pipe-to-shell is a common supply-chain attack vector
review-eval Γ4 β eval of dynamic content requires human approval
Secrets / DLP Β· 2 potential secret leaks
aws-access-key AKIA**************** Bash Apr 12
scan reads raw JSONL history and runs the real policy engine β same shields and rules that would fire in production. No audit log needed.
node9 scan
node9 scan --all
node9 scan --days 30
π 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.