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

@node9/proxy

Package Overview
Dependencies
Maintainers
1
Versions
241
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.0.11
Version published
Weekly downloads
1.2K
-47.4%
Maintainers
1
Weekly downloads
Β 
Created
Source

πŸ›‘οΈ Node9 Proxy

The "Sudo" Command for AI Agents.

NPM Version License: Apache-2.0

Node9 is the execution security layer for the Agentic Era. It encases autonomous AI Agents (Claude Code, Gemini CLI, Cursor, MCP Servers) in a deterministic security wrapper, intercepting dangerous shell commands and tool calls before they execute.

While others try to guess if a prompt is malicious (Semantic Security), Node9 governs the actual action (Execution Security).

πŸ’Ž The "Aha!" Moment

AIs are literal. When you ask an agent to "Fix my disk space," it might decide to run docker system prune -af.

With Node9, the interaction looks like this:

  • πŸ€– AI attempts a "Nuke": Bash("docker system prune -af --volumes")
  • πŸ›‘οΈ Node9 Intercepts: An OS-native popup appears immediately.
  • πŸ›‘ User Blocks: You click "Block" in the popup.
  • 🧠 AI Negotiates: Node9 explains the block to the AI. The AI responds: "I understand. I will pivot to a safer cleanup, like removing only large log files instead."

⚑ Key Architectural Upgrades

🏁 The Multi-Channel Race Engine

Node9 initiates a Concurrent Race across all enabled channels. The first channel to receive a human signature wins and instantly cancels the others:

  • Native Popup: OS-level dialog (Mac/Win/Linux) for sub-second keyboard dismissal.
  • Browser Dashboard: Local web UI for deep inspection of large payloads (SQL/Code).
  • Cloud (Slack): Remote asynchronous approval for team governance.
  • Terminal: Classic [Y/n] prompt for manual proxy usage and SSH sessions.

🧠 AI Negotiation Loop

Node9 doesn't just "cut the wire." When a command is blocked, it injects a Structured Negotiation Prompt back into the AI’s context window. This teaches the AI why it was stopped and instructs it to pivot to a safer alternative or apologize to the human.

βͺ Shadow Git Snapshots (Auto-Undo)

Node9 takes a silent, lightweight Git snapshot before every AI file edit. If the AI hallucinates and breaks your code, run node9 undo to instantly revert β€” with a full diff preview before anything changes.

# Undo the last AI action (shows diff + asks confirmation)
node9 undo

# Go back N actions at once
node9 undo --steps 3

Example output:

βͺ  Node9 Undo
    Tool:  str_replace_based_edit_tool β†’ src/app.ts
    When:  2m ago
    Dir:   /home/user/my-project

--- src/app.ts (snapshot)
+++ src/app.ts (current)
@@ -1,4 +1,6 @@
-const x = 1;
+const x = 99;
+const y = "hello";

Revert to this snapshot? [y/N]

Node9 keeps the last 10 snapshots. Snapshots are only taken for file-writing tools (write_file, edit_file, str_replace_based_edit_tool, create_file) β€” not for read-only or shell commands.

🌊 The Resolution Waterfall

Security posture is resolved using a strict 5-tier waterfall:

  • Env Vars: Session-level overrides (e.g., NODE9_PAUSED=1).
  • Cloud (SaaS): Global organization "Locks" that cannot be bypassed locally.
  • Project Config: Repository-specific rules (node9.config.json).
  • Global Config: Personal UI preferences (~/.node9/config.json).
  • Defaults: The built-in safety net.

πŸš€ Quick Start

npm install -g @node9/proxy

# 1. Setup protection for your favorite agent
node9 setup           # interactive menu β€” picks the right agent for you
node9 addto claude    # or wire directly
node9 addto gemini

# 2. Initialize your local safety net
node9 init

# 3. Verify everything is wired correctly
node9 doctor

# 4. Check your status
node9 status

πŸ›  Protection Modes

ModeTargetHow it works
Hook ModeClaude, Gemini, Cursornode9 addto <agent> wires native pre-execution hooks.
Proxy ModeMCP Servers, Shellnode9 "npx <server>" intercepts JSON-RPC traffic.
Manual ModeYounode9 rm -rf / protects you from your own typos.

βš™οΈ Configuration (node9.config.json)

Rules are merged additiveβ€”you cannot "un-danger" a word locally if it was defined as dangerous by a higher authority (like the Cloud).

{
  "settings": {
    "mode": "standard",
    "enableUndo": true,
    "approvalTimeoutMs": 30000,
    "approvers": {
      "native": true,
      "browser": true,
      "cloud": true,
      "terminal": true
    }
  },
  "policy": {
    "sandboxPaths": ["/tmp/**", "**/test-results/**"],
    "dangerousWords": ["drop", "destroy", "purge", "push --force"],
    "ignoredTools": ["list_*", "get_*", "read_*"],
    "toolInspection": {
      "bash": "command",
      "postgres:query": "sql"
    },
    "rules": [
      { "action": "rm", "allowPaths": ["**/node_modules/**", "dist/**"] },
      { "action": "push", "blockPaths": ["**"] }
    ],
    "smartRules": [
      {
        "name": "no-delete-without-where",
        "tool": "*",
        "conditions": [
          { "field": "sql", "op": "matches", "value": "^(DELETE|UPDATE)\\s", "flags": "i" },
          { "field": "sql", "op": "notMatches", "value": "\\bWHERE\\b", "flags": "i" }
        ],
        "verdict": "review",
        "reason": "DELETE/UPDATE without WHERE β€” would affect every row"
      }
    ]
  }
}

βš™οΈ settings options

KeyDefaultDescription
mode"standard"standard | strict | audit
enableUndotrueTake git snapshots before every AI file edit
approvalTimeoutMs0Auto-deny after N ms if no human responds (0 = wait forever)
approvers.nativetrueOS-native popup
approvers.browsertrueBrowser dashboard (node9 daemon)
approvers.cloudtrueSlack / SaaS approval
approvers.terminaltrue[Y/n] prompt in terminal

🧠 Smart Rules

Smart rules match on raw tool arguments using structured conditions β€” more powerful than dangerousWords or rules, which only see extracted tokens.

{
  "name": "curl-pipe-to-shell",
  "tool": "bash",
  "conditions": [{ "field": "command", "op": "matches", "value": "curl.+\\|.*(bash|sh)" }],
  "verdict": "block",
  "reason": "curl piped to shell β€” remote code execution risk"
}

Fields:

FieldDescription
toolTool name or glob ("bash", "mcp__postgres__*", "*")
conditionsArray of conditions evaluated against the raw args object
conditionMode"all" (AND, default) or "any" (OR)
verdict"review" (approval prompt) | "block" (hard deny) | "allow" (skip all checks)
reasonHuman-readable explanation shown in the approval prompt and audit log

Condition operators:

opMeaning
matchesField value matches regex (value = pattern, flags = e.g. "i")
notMatchesField value does not match regex
containsField value contains substring
notContainsField value does not contain substring
existsField is present and non-empty
notExistsField is absent or empty

The field key supports dot-notation for nested args: "params.query.sql".

Built-in default smart rule (always active, no config needed):

{
  "name": "no-delete-without-where",
  "tool": "*",
  "conditions": [
    { "field": "sql", "op": "matches", "value": "^(DELETE|UPDATE)\\s", "flags": "i" },
    { "field": "sql", "op": "notMatches", "value": "\\bWHERE\\b", "flags": "i" }
  ],
  "verdict": "review",
  "reason": "DELETE/UPDATE without WHERE clause β€” would affect every row in the table"
}

Use node9 explain <tool> <args> to dry-run any tool call and see exactly which smart rule (or other policy tier) would trigger.

πŸ–₯️ CLI Reference

CommandDescription
node9 setupInteractive menu β€” detects installed agents and wires hooks for you
node9 addto <agent>Wire hooks for a specific agent (claude, gemini, cursor)
node9 initCreate default ~/.node9/config.json
node9 statusShow current protection status and active rules
node9 doctorHealth check β€” verifies binaries, config, credentials, and all agent hooks
node9 explain <tool> [args]Trace the policy waterfall for a given tool call (dry-run, no approval prompt)
node9 undo [--steps N]Revert the last N AI file edits using shadow Git snapshots
node9 checkCalled by agent hooks; evaluates a pending tool call and exits 0 (allow) or 1 (block)

node9 doctor

Runs a full self-test and exits 1 if any required check fails:

Node9 Doctor  v1.2.0
────────────────────────────────────────
Binaries
  βœ…  Node.js v20.11.0
  βœ…  git version 2.43.0

Configuration
  βœ…  ~/.node9/config.json found and valid
  βœ…  ~/.node9/credentials.json β€” cloud credentials found

Agent Hooks
  βœ…  Claude Code β€” PreToolUse hook active
  ⚠️  Gemini CLI β€” not configured (optional)
  ⚠️  Cursor β€” not configured (optional)

────────────────────────────────────────
All checks passed βœ…

node9 explain

Dry-runs the policy engine and prints exactly which rule (or waterfall tier) would block or allow a given tool call β€” useful for debugging your config:

node9 explain bash '{"command":"rm -rf /tmp/build"}'
Policy Waterfall for: bash
──────────────────────────────────────────────
Tier 1 Β· Cloud Org Policy       SKIP  (no org policy loaded)
Tier 2 Β· Dangerous Words        BLOCK ← matched "rm -rf"
Tier 3 Β· Path Block             –
Tier 4 Β· Inline Exec            –
Tier 5 Β· Rule Match             –
──────────────────────────────────────────────
Verdict: BLOCK  (dangerous word: rm -rf)

πŸ”§ Troubleshooting

node9 check exits immediately / Claude is never blocked Node9 fails open by design to prevent breaking your agent. Check debug logs: NODE9_DEBUG=1 claude.

Terminal prompt never appears during Claude/Gemini sessions Interactive agents run hooks in a "Headless" subprocess. You must enable native: true or browser: true in your config to see approval prompts.

"Blocked by Organization (SaaS)" A corporate policy has locked this action. You must click the "Approve" button in your company's Slack channel to proceed.

πŸ—ΊοΈ Roadmap

  • Multi-Channel Race Engine (Simultaneous Native/Browser/Cloud/Terminal)
  • AI Negotiation Loop (Instructional feedback loop to guide LLM behavior)
  • Resolution Waterfall (Cascading configuration: Env > Cloud > Project > Global)
  • Native OS Dialogs (Sub-second approval via Mac/Win/Linux system windows)
  • Shadow Git Snapshots (1-click Undo for AI hallucinations)
  • Identity-Aware Execution (Differentiates between Human vs. AI risk levels)
  • Execution Sandboxing (Simulate dangerous commands in a virtual FS before applying)
  • Multi-Admin Quorum (Require 2+ human signatures for high-stakes production actions)
  • SOC2 Tamper-proof Audit Trail (Cryptographically signed, cloud-managed logs)

🏒 Enterprise & Compliance

Node9 Pro provides Governance Locking, SAML/SSO, and VPC Deployment. Visit node9.ai

Keywords

ai-security

FAQs

Package last updated on 17 Mar 2026

Related posts