Node9-Proxy

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

๐Ÿ›ก๏ธ Node9

What did your AI agent actually do? Find out.

npm version monthly downloads License: Apache 2.0 Documentation Try on HF Spaces

Node9 sits between your AI agent and the tools it can use โ€” discover what it's already been doing, protect against risky actions in real time, and review what happened over any time window.

Works with Claude Code ยท Codex CLI ยท Gemini CLI ยท Cursor ยท Windsurf ยท any MCP server.

What Node9 does

  • ๐Ÿ” Discover โ€” scan every past AI session for credential leaks, agent loops, blocked operations, and every secret on disk an agent could reach right now
  • ๐Ÿ›ก Protect โ€” review or block risky commands before they run โ€” rm -rf, git push --force, DROP TABLE, credential reads, curl | bash, AWS/GitHub/Stripe key leaks
  • ๐Ÿ“Š Review โ€” period-windowed report (today / week / month / 90 days) โ€” cost per agent, top tools, shields fired, blast radius

Retrospective scan

This is my own machine โ€” 90 days while building Node9. Score 25/100, 5 credential files an AI agent could reach right now.

npx node9-ai scan   # before installation, runs in ~10s, nothing uploads
node9 scan          # after installation, same output

Node9 scan scorecard

Live monitoring

Node9 monitor dashboard

node9 monitor opens an interactive terminal dashboard with two views:

  • [1] Realtime โ€” live activity, approvals, security alerts, current risk score
  • [2] Report โ€” period-windowed summary: cost, top tools, shields fired, blast radius

Report

Press [2] in monitor for a period-windowed summary. Toggle the window with [T]oday ยท [W]eek ยท [M]onth ยท [N]inety โ€” same panels as the scan above, driven by your post-install audit log.

Node9 monitor [2] Report

node9 monitor              # press [2] for Report view
node9 report --period 7d   # CLI form, no TUI

Install

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

# or via npm (any platform)
npm install -g node9-ai
node9 init       # auto-wires Claude Code, Gemini CLI, Cursor, Codex, MCP servers
node9 doctor     # verify everything is wired correctly

Requires Node.js 18+.

Shields โ€” curated rule packs

Each shield is a curated rule set for a service or domain. Enable only what you need.

ShieldWhat it catchesEnable
project-jailBlocks reads of ~/.ssh, ~/.aws, .env, credentials via Bash and Read toolnode9 shield enable project-jail
bash-safecurl | bash, rm -rf /, disk overwrite, eval of remotenode9 shield enable bash-safe
postgresDROP TABLE, TRUNCATE, DROP COLUMN, DELETE without WHEREnode9 shield enable postgres
mongodbdropDatabase, drop(), deleteMany({}), index dropsnode9 shield enable mongodb
redisFLUSHALL, FLUSHDB, CONFIG SET on a live servernode9 shield enable redis
awsS3 delete, EC2 terminate, IAM changes, RDS destroynode9 shield enable aws
k8snamespace delete, helm uninstall, cluster role wipesnode9 shield enable k8s
dockersystem prune, volume prune, rm -f containersnode9 shield enable docker
githubgh repo delete, remote branch deletion, settings changesnode9 shield enable github
filesystemchmod 777, writes under /etc/, /boot/, /usr/node9 shield enable filesystem
mcp-tool-gatingunapproved MCP tools silently activating new capabilitiesnode9 shield enable mcp-tool-gating
node9 shield list    # show all shields + status

Always on โ€” no config needed

  • Git โ€” catches git push --force, git reset --hard, git clean -fd
  • SQL โ€” catches DELETE / UPDATE without WHERE, DROP TABLE, TRUNCATE
  • Shell โ€” catches curl | bash, unauthorized sudo
  • DLP โ€” flags AWS keys, GitHub tokens, Stripe keys, PEM private keys in any tool argument, file contents, or shell config (~/.zshrc, ~/.bashrc)
  • Response DLP โ€” background scanner reads Claude's conversation history and alerts you if Claude wrote a secret in its response text
  • Auto-undo โ€” git snapshot before every AI file edit โ†’ node9 undo to revert
  • Skills pinning โ€” SHA-256 verification of installed Claude skills / plugins between sessions

MCP gateway

Wrap any MCP server transparently. The agent sees the same server โ€” Node9 intercepts every tool call.

{
  "mcpServers": {
    "postgres": {
      "command": "node9",
      "args": ["mcp", "--upstream", "npx -y @modelcontextprotocol/server-postgres postgresql://..."]
    }
  }
}

Or just run node9 init โ€” it wraps your 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 you first trusted it โ€” a rug pull attack.

Node9 pins tool definitions on first use:

  1. First connection โ€” gateway records a SHA-256 hash of every tool's name, description, and schema
  2. Subsequent connections โ€” hash is compared; if tools changed, the session is quarantined and every tool call is 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

Other commands

Beyond the three flow commands above (scan / monitor / report):

CommandWhat it showsWhen to use
node9 blastWhat an AI agent can reach right now โ€” files, creds, envFirst thing to run on any machine
node9 tailLive stream of every tool call (text-only, no TUI)Piping into other tools, CI, logs
node9 sessionsSession history with prompt, tool trace, cost, snapshotReviewing a handoff or past work
node9 dlpCredential-leak findings in Claude response textAny time a DLP desktop alert fires
node9 maskRedact plaintext secrets from local session history filesAfter a DLP finding โ€” cleans local disk

Plus a live HUD in your Claude Code statusline:

๐Ÿ›ก node9 | standard | [bash-safe] | โœ… 12 allowed  ๐Ÿ›‘ 2 blocked  ๐Ÿšจ 0 dlp | ~$0.43
๐Ÿ“Š claude-opus-4-7 | ctx [โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘] 54% | 5h [โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘] 12% | 7d [โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘] 7%
๐Ÿ—‚ 2 CLAUDE.md | 8 rules | 3 MCPs | 4 hooks

Reading the data โ€” what the numbers mean

Node9 surfaces the signal. Here are the patterns worth knowing:

SignalLikely meaning
Would have blocked โ‰ฅ 5 in a weekAgent is attempting high-impact ops; shields are worth reviewing
Single review-git-push rule >50% of findingsYour own rule is firing as intended โ€” not a risk, just supervision
DLP finding in user-prompt toolYou pasted a secret into your own prompt โ€” rotate the key
Agent Loop ร—50+ on same fileAgent stuck in edit/test/fix cycle โ€” check context or slow down
MCP tool pin mismatchServer changed its tools โ€” review before re-trusting
Large MCP response warningThat server is inflating your context window for every subsequent turn
Response DLP alertClaude wrote a secret in its response text โ€” not blocked, rotate immediately
DLP finding in tool-resultClaude read a file containing a secret (.env, credentials) โ€” rotate the key and run node9 mask
DLP finding in [Shell]Plaintext secret in ~/.zshrc or ~/.bashrc โ€” every AI session can see it

One-off signals are normal; persistent patterns are what you act on.

Python SDK โ€” govern any Python agent

from node9 import configure, protect

configure(agent_name="my-agent", policy="require_approval")

@protect("bash")
def run_command(cmd: str) -> str:
    ...

Python SDK โ†’ ยท CI code review agent example โ†’

Under the hood

  • Scan reads raw agent history from ~/.claude/projects/, ~/.gemini/tmp/, ~/.codex/sessions/ โ€” no API calls, fully offline
  • Runtime wires PreToolUse hooks into Claude Code, Gemini CLI, and Codex โ€” hooks write to ~/.node9/audit.log atomically
  • MCP gateway is a stdio proxy; intercepts tools/list + tools/call JSON-RPC, forwards the rest
  • Policy engine uses mvdan-sh for bash AST analysis โ€” defeats obfuscation via backslash escaping, variable substitution, eval of remote download
  • Shadow repo for auto-undo lives at ~/.node9/snapshots/<hash16>/ โ€” never touches your .git

Full docs

Config reference, smart rules, stateful rules, trusted hosts, approval modes, CLI reference โ€” at node9.ai/docs.

Related projects

Enterprise

Node9 Pro adds governance locking, SAML/SSO, central audit export, and VPC deployment. See node9.ai.

License

Apache-2.0

Built with โ˜• and healthy paranoia.

Related Servers

NotebookLM Web Importer

Import web pages and YouTube videos to NotebookLM with one click. Trusted by 200,000+ users.

Install Chrome Extension