Skip to content

node9-ai/node9-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

302 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ›‘οΈ Node9 Proxy

The "Sudo" Command for AI Agents.

NPM Version License: Apache 2.0 Open in HF Spaces Documentation

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:

  1. AI attempts: Bash("git push origin main")
  2. Node9 intercepts: OS-native popup appears instantly
  3. You block it β€” one click
  4. AI pivots: "I'll create a PR for review instead"

Install

# macOS / Linux
brew tap node9-ai/node9 && brew install node9

# or via npm
npm install -g @node9/proxy
node9 init       # auto-detects Claude Code, Gemini CLI, Cursor, Codex
node9 doctor     # verify everything is wired correctly

Shields β€” one command per service

Enable expert-crafted protection for the infrastructure your agent touches:

node9 shield enable postgres   # blocks DROP TABLE, TRUNCATE, DROP COLUMN
node9 shield enable mongodb    # blocks dropDatabase, drop(), deleteMany({})
node9 shield enable redis      # blocks FLUSHALL, FLUSHDB
node9 shield enable aws        # blocks S3 delete, EC2 terminate, IAM changes
node9 shield enable k8s        # blocks namespace delete, helm uninstall
node9 shield enable docker     # blocks system prune, volume prune, rm -f
node9 shield enable github     # blocks gh repo delete, remote branch deletion
node9 shield enable bash-safe  # blocks curl|bash, base64|sh, rm -rf /
node9 shield enable filesystem # reviews chmod 777, writes to /etc/

node9 shield list              # see all shields and their status

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:

  1. First connection β€” the gateway records a SHA-256 hash of all tool definitions
  2. 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
  3. Corrupt pin state β€” fails closed (blocks), never silently re-trusts
node9 mcp pin list                # show all pinned servers and hashes
node9 mcp pin update <serverKey>  # remove pin, re-pin on next connection
node9 mcp pin reset               # clear all pins (re-pin on next connection)

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")

# Your existing agent code runs unchanged β€” Node9 intercepts tool calls

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.

About

The Execution Security Layer for the Agentic Era. Providing deterministic "Sudo" governance and audit logs for autonomous AI agents.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors