Automation & Ops agent-securityruntime-governanceaudit-loggingdata-loss-preventionmcp-securitygithub-actionssandboxingprompt-injection

Node9

Intercept, audit, and govern risky actions performed by autonomous coding agents.

FollowAgents review · FARS-2.1
Recommended
82/ 100 5-point scale 4.1 / 5
1 2 3 4 5 6
Per-dimension scores and reasoning
1Trust25 / 29 · 4.3/5

The evidence shows opt-in shield packs, read-only default CI permissions, a non-root sandbox, scoped mounts, deny-by-default egress, and a rule preventing inline self-approval from bypassing routed cloud approval. Least privilege and user confirmation are therefore handled thoroughly. The README also distinguishes local processing from post-login transmission, identifies the redacted --ship snapshot, audit-log location, and scanned directories, and says secrets are redacted before storage, making data flows and external effects unusually explicit. Dependency controls include commit-pinned CI actions, production and engine audits, overrides, and an extractor-version integrity gate; points are deducted because regular npm dependencies use version ranges and neither a lockfile nor audit results are supplied. Logout, uninstall, pin reset, and disposable containers provide partial reversal, but there is no comprehensive configuration restoration, audit-data recovery, or rollback for project edits. Author, repository, related-project, and licensing attribution are present, but publisher identity is unverified and the organizational responsibility chain is incomplete.

2Reliability9 / 14 · 3.2/5

The README, SECURITY.md, package metadata, and CI describe a broadly coherent interception, approval, and auditing product. CI is configured for Node 20/22, Windows/Linux, builds, type checking, unit tests, coverage, and end-to-end tests. The material inconsistency is that the README claims Node.js 18+ while package.json requires >=20, reducing self-consistency and dependency guidance. npm and Homebrew distribution plus build and audit workflows support ordinary availability, but the supplied evidence lacks a lockfile, offline dependency strategy, and complete behavior for unavailable services. Failure handling includes a distinct audit DID-NOT-RUN state, conservative fallback when a base commit cannot be read, fail-closed corrupt pin state, and an uninstall failure message. It lacks a systematic error catalog, documented exit codes, and broad troubleshooting examples, so failure messaging is not thorough.

3Adaptability16 / 18 · 4.4/5

The source clearly addresses individual machines, team approval, CI, MCP, Python agents, live monitoring, historical review, and container isolation. Boundaries are unusually candid: local code execution can bypass the daemon, Phase 1 is Claude-first, agent credentials remain inside the container, Response DLP alerts rather than blocks, and some posture findings remain the user's responsibility. Trigger precision is supported by concrete Git, SQL, shell, cloud-service, and MCP operations, plus Bash AST analysis, stateful handling, and explicit approval routing. Environment support covers macOS/Linux installation, cross-platform npm, Windows CI, many agents, and Docker, but the Node-version contradiction and absence of a complete sandbox/platform compatibility matrix prevent full environment-fit credit.

4Convention15 / 18 · 4.2/5

The README has strong organization across discovery, protection, review, installation, shields, approval, sandboxing, MCP, data interpretation, and internals. It supplies extensive command and output examples and candid limitations. Apache-2.0 metadata matches the complete LICENSE, earning full license credit. Installation covers Homebrew/npm, initialization, login, diagnosis, and a Node prerequisite, but the Node 18+ versus >=20 conflict and limited upgrade/removal recovery guidance warrant deductions. Naming is mostly stable, though node9-ai and @node9/proxy are both presented without fully explaining their release relationship. semantic-release configuration and a concrete package version support managed releases, but no changelog or migration record is supplied. SECURITY.md provides a security contact and response targets, while package metadata identifies an author and issue tracker; maintenance ownership is still incomplete because the publisher is unverified and no team continuity or general support commitment is shown.

5Effectiveness12 / 13 · 4.6/5

Outputs include terminal scorecards, JSON, PR comments, check runs, a live dashboard, reports, audit logs, and actionable remediation commands, making findings directly usable for human response and CI gating. Combining retrospective discovery, pre-execution governance, DLP, MCP change quarantine, and container egress controls offers clear marginal value over a logging-only or single-rule tool. Adoption costs are reduced by local operation, account-free baseline protection, token-free public-repository scans, and opt-in shields. Full cost-benefit credit is withheld because hook overhead, background scanning, Docker requirements, approval latency, dashboard login, and Pro boundaries are not quantified, and effectiveness was not executed or independently tested in this static review.

6Verifiability5 / 8 · 3.1/5

Many claims map to concrete commands, configuration fields, paths, workflow steps, permissions, and threat boundaries; core product descriptions are structurally corroborated across README, SECURITY.md, package metadata, and workflows. Deductions apply because all supplied sources are project-controlled and no implementation files or independent reports substantiate the displayed scores, runtime performance, blocking efficacy, atomic writes, AST obfuscation resistance, or self-scan badge result. The documentation does distinguish Phase 1 scope, alerts from blocks, conservative fallbacks, and responsibility boundaries, but some promotional security conclusions remain intermingled with design claims and example output rather than consistently separating demonstrated facts from intended behavior.

Evidence confidence: Low Reviewed Sep 11, 2026 Reviewed revision 7c230a576f33
Before you use it
  • The README says Node.js 18+ while package.json requires >=20; treat the package engine constraint as authoritative and verify compatibility before installation.
  • The daemon is not itself a security sandbox. SECURITY.md explicitly says an attacker with local code execution can bypass it; independently validate the Docker sandbox, mount scope, and kernel egress rules where strong isolation is required.
  • Login and node9 posture --ship introduce remote data flows. Although the documentation says uploaded snapshots are redacted, review actual fields, retention, key revocation, and enterprise data-processing terms before deployment.
  • Response DLP alerts but does not block. Credentials found in responses or tool results still require rotation and history cleanup.
  • This assessment used only the supplied static material and did not execute the software, validate dependency-audit outcomes, test policy bypasses, inspect approval routing, verify uninstall recovery, or test sandbox isolation.
Review evidence [1][2][3][4][5][6]
See the full review method →

What does this agent do, and when should you use it?

Node9 is an execution-security layer placed between an AI agent and the tools it invokes, applying rules, approval gates, blocking decisions, and audit logging. It integrates through pre-execution hooks for clients such as Claude Code and Codex CLI, or as a transparent stdio gateway in front of any MCP server. Its CLI scans historical sessions and host exposure, evaluates repositories for agent-CI risks, and produces period-based reports covering cost, tool usage, fired shields, and blast radius. Runtime controls include command and SQL checks, credential DLP, MCP tool-definition pinning, and optional shield packs for Git, databases, cloud services, containers, and filesystems. Enforcement can remain entirely local, while an optional login connects the machine to the Node9 dashboard; a Docker-based sandbox adds scoped mounts and a kernel-enforced outbound allowlist.

A typical deployment starts with node9 init, which detects and wires supported agents and MCP servers so Node9 can inspect calls through hooks or the node9 mcp --upstream ... gateway. The policy engine evaluates shell, Git, and SQL activity, then allows, requests approval for, or blocks operations such as git push --force, DELETE without WHERE, curl | bash, credential reads, and key leakage; every decision is written atomically to ~/.node9/audit.log. node9 scan reads local Claude, Gemini, Copilot, and Codex history directories to find credential exposure, agent loops, and blocked operations, while node9 posture assesses isolation, egress, secrets on disk, supply-chain exposure, and privilege. node9 scan-repo statically parses committed workflows and agent configuration for CI-1, CI-2, CI-3, CI-4, and CI-6 findings; the node9-ai/node9-proxy@v2 GitHub Action can enforce the same checks on pull requests. node9 monitor, node9 report, node9 tail, and node9 sessions expose live and historical activity, while node9 sandbox run launches the agent in a disposable Docker container with restricted mounts and outbound hosts.

  1. A developer using Claude Code or Codex CLI who wants risky shell, Git, SQL, and credential operations reviewed or blocked before execution.
  2. A security engineer auditing historical agent sessions for leaked credentials, repeated loops, blocked operations, and sensitive files currently reachable by an agent.
  3. A team running AI agents in GitHub Actions that needs pull-request checks for injectable workflows, exfiltratable secrets, unpinned MCP servers, and poisoned instruction files.
  4. An MCP operator who wants a transparent tool-call gateway and quarantine when a server changes a pinned tool name, description, or schema.
  5. A developer seeking a smaller agent blast radius through a disposable Docker environment with scoped filesystem mounts and an outbound-host allowlist.
  6. A platform or security lead reviewing daily, weekly, monthly, or 90-day agent costs, frequently used tools, shield activations, and blast radius.

What are this agent's strengths and limitations?

Pros
  • Combines retrospective discovery, pre-execution governance, and period-based review in one system backed by a local audit log.
  • Supports both native hooks and a transparent stdio MCP gateway, covering multiple coding agents, desktop clients, and arbitrary MCP servers.
  • Goes beyond simple text matching with mvdan-sh AST analysis, credential and response DLP, skill hash verification, and MCP tool-definition pinning.
  • scan-repo is static and parse-only, and its GitHub Action can block only findings introduced by the current pull request.
  • Core enforcement works offline, with an optional Docker sandbox for scoped mounts and kernel-enforced outbound filtering.
Limitations
  • The CLI requires Node.js 18+, and the full sandbox workflow adds a Docker dependency.
  • The sandbox is documented as Phase 1, single-container, and Claude-first; Codex sandbox support is described as coming next.
  • Agents still hold their own credentials inside the current sandbox; egress controls confine their use, but credential brokering is only on the roadmap.
  • Native inline review is enabled only for Claude Code and GitHub Copilot CLI; Codex, Gemini, Cursor, and other clients use Node9's separate approver.
  • Dashboard and fleet views require node9 login and connectivity to Node9; they are unavailable in a strictly local-only setup.
  • Governance locking, SAML/SSO, central audit export, and VPC deployment are reserved for Node9 Pro.

How do you install or deploy this agent?

Node.js 18 or newer is required. On macOS or Linux, run brew tap node9-ai/node9 && brew install node9; the npm option is npm install -g node9-ai. Next, run node9 init to wire detected agents and MCP servers, followed by node9 doctor to verify reporting and integration. Local rules, shields, DLP, and approvals do not require an account. To populate the hosted dashboard and fleet view, run node9 login and approve the machine in the browser. Docker is additionally required for node9 sandbox.

How do you use this agent?

For an initial assessment without installation, run npx node9-ai scan; after installation, use node9 scan. Run node9 posture for a host scorecard and remediation commands, inspect available packs with node9 shield list, and enable only the needed packs, such as node9 shield enable bash-safe or node9 shield enable project-jail. Use node9 monitor for the interactive live view, node9 tail for a text stream, and node9 report --period 7d for a seven-day report. Scan a public repository with npx node9-ai scan-repo <owner/repo> or a local checkout with node9 scan-repo .. Protect an MCP server by placing node9 mcp --upstream <original command> in front of its command, or let node9 init wrap detected servers. For stronger isolation, run node9 sandbox new, then node9 sandbox run from the project directory, and observe it from the host with node9 sandbox tail.

FAQ

Does protection work without a Node9 account?
Yes. After node9 init, local rules, shields, DLP, and approvals operate offline. Until node9 login is completed, nothing is sent to Mission Control and the dashboard remains empty.
Does the repository scanner execute project code?
No. node9 scan-repo is described as static and parse-only: it reads committed configuration without executing repository code. Scanning a local checkout also requires no network access.
Where are approval and blocking decisions recorded?
Decisions made through hooks or the MCP gateway are written atomically to ~/.node9/audit.log, then surfaced through monitor, report, tail, and sessions commands.
What happens when an MCP server changes its tools?
Node9 compares the tools against SHA-256 hashes captured on first use. A changed name, description, or schema quarantines the session and blocks every tool call until a human reviews and updates the pin; corrupt pin state also fails closed.
Does the sandbox keep all credentials away from the agent?
No. In the documented phase, the agent still holds its own credentials inside the container, while the outbound allowlist limits where they can be used. Credential brokering is identified as a future roadmap phase.

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents