PRO

Node Permission Sandbox

A plugin runner that executes untrusted code in a child Node process under the permission model, so a plugin can read only a whitelisted data directory plus its own file and gets ERR_ACCESS_DENIED on any fs write, out-of-scope read, child process spawn, or worker thread. The child receives a clean env with no parent secrets, a JSON input payload, and a wall-clock timeout that ends in SIGKILL, and reports results over a structured stdout line protocol parsed back into a typed allowed, blocked, or killed outcome. Documents the load-bearing gotcha that allowlist paths must be realpath resolved, since on macOS the /tmp to /private/tmp symlink otherwise denies everything, and the honest ceiling that the network scope needs Node 24 (the runner detects the flag). Zero dependencies.

Install
npx shadcn@latest add @compronents/node-permission-sandbox

Installs from ui.aryank.space. Needs a registry token and a one-time @compronents entry in components.json. The docs walk through both.

Visualization
read data
SandboxOptions
write /etc
SandboxOptions
spawn(node, ["--permission", "--allow-fs-read", dir]) // deniedPermission on refusal

A plugin runs in a child process under the permission model; a whitelisted read succeeds, an out-of-scope write gets ERR_ACCESS_DENIED.

Files
Checking access…
Dependencies
None.