New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more β†’
Get Started

@node9/proxy

Package Overview
Dependencies
Maintainers
1
Versions
246
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@node9/proxy

The Sudo Command for AI Agents. Execution Security for Claude Code & MCP.

Source
npmnpm
Version
1.11.13
Version published
Weekly downloads
710
-52.41%
Maintainers
1
Weekly downloads
Β 
Created
Source

Node9 intercepts a dangerous git push

πŸ›‘οΈ Node9

Every command your AI agent runs, reviewed before it runs.

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

Node9 sits between your AI agent and your system. Every shell command, file write, database query, and MCP tool call passes through Node9 first β€” blocked, reviewed, or logged based on your policy. Works with Claude Code, Gemini CLI, Cursor, Codex, and any MCP server.

  • πŸ›‘ Block dangerous actions (git push --force, rm -rf /, curl|bash, DROP TABLE, ...) before they run
  • πŸ‘ Review anything worth a human glance β€” OS-native popup, Slack, or browser approval
  • πŸ”‘ Catch credential leaks in tool arguments and Claude response text
  • πŸ” Stop agent loops that burn tokens and money
  • πŸ”Œ Gate MCP tools and detect rug-pull attacks on server definitions
  • πŸ“Š Dashboard + scan report in your browser β€” see what your agents actually did

Try it in 10 seconds β€” no install, no account

npx node9-ai scan

Reads your existing Claude / Gemini / Codex session history, runs the full Node9 policy engine, and shows every operation that would have been blocked or flagged.

πŸ”  Scanning your AI history  β€” what would node9 have caught?

  15 sessions  (8 Claude Β· 6 Gemini Β· 1 Codex)  5,470 tool calls
  2,439 bash commands  last 90 days  Apr 6, 2026 – Apr 23, 2026

  Found 168 risky operations in your history

    πŸ›‘  Would have blocked       3   operations stopped before execution
    πŸ‘   Would have flagged     162   sent to you for approval
    πŸ”‘  Credential leak          3   secret detected in tool call
    πŸ”  Loop detected          117   repeated tool call patterns found

  ──────────────────────────────────────────────────────────────────────
  Your Rules  Β·  added in node9.config.json   2 blocked Β· 157 review
    πŸ›‘  block-force-push Γ—2  β€” Force push overwrites remote history
    πŸ‘   review-git-push Γ—154 β€” git push sends changes to a shared remote

  ──────────────────────────────────────────────────────────────────────
  bash-safe  Β·  high-risk bash patterns    1 blocked Β· 1 review
    πŸ›‘  block-eval-remote  β€” eval of remote download (supply-chain attack)

  🌐  View in browser:  http://127.0.0.1:7391/

The last line opens a live dashboard in your browser with collapsible drill-downs, per-agent breakdown, and credential-leak samples:

Node9 browser History Audit dashboard

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

That's it β€” future agent sessions are protected.

Shields β€” expert policy in one command

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

ShieldWhat it catchesEnable
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 β€” blocks git push --force, git reset --hard, git clean -fd
  • SQL β€” blocks DELETE / UPDATE without WHERE, DROP TABLE, TRUNCATE
  • Shell β€” blocks curl | bash, unauthorized sudo
  • DLP β€” blocks AWS keys, GitHub tokens, Stripe keys, PEM private keys in any tool argument
  • Response DLP β€” background scanner reads Claude's conversation history and alerts you if Claude wrote a secret in its response text (not just executed one). Gemini / Codex coverage coming.
  • 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 β€” protect any MCP server

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:

  • First connection β€” gateway records a SHA-256 hash of every tool's name, description, and schema
  • 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
  • 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

Automatic, no configuration. The gateway pins on first tools/list and enforces on every subsequent session.

⚑ Large MCP response detection

When an MCP server returns a 500KB+ response, it sits in the context window for every subsequent LLM turn β€” often silently doubling per-turn cost. Node9 warns you in real time with a toast and records the event in the dashboard so you can spot the offender.

Observability β€” five views

Every tool call is recorded β€” command, arguments, decision, cost. See what your agent did, five ways:

CommandWhat it showsWhen to use
node9 scanRetrospective audit of existing agent historyBefore installing, or to review past risk
node9 tailLive stream of every tool callWatching an agent work in real time
node9 reportPer-period summary: allowed/blocked/DLP/cost + top toolsReviewing what happened after a session
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

Plus a live HUD in your Claude Code statusline:

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

And a browser dashboard that auto-opens after node9 scan β€” History Audit modal with full drill-down, per-agent breakdown, loop-cost estimate, and live status strip.

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 destructive ops; shields need review
Single review-git-push rule accounts for >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

These are starting points, not verdicts. 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

Everything else β€” config reference, smart rules, stateful rules, trusted hosts, approval modes, Slack integration, CLI reference β€” is at node9.ai/docs.

  • node9-python β€” Python SDK for governed agents
  • node9-pr-agent β€” GitHub Action that reviews PRs through Node9 (reference implementation of a governed agent)

Enterprise

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

Built with β˜• and healthy paranoia.

Keywords

ai-security

FAQs

Package last updated on 23 Apr 2026

Related posts