Anthropic ha rilasciato come open source sandbox-runtime, la sandbox a livello di sistema operativo che sta dietro lo strumento bash isolato di Claude Code. Il suo scopo è limitare quali file un processo può toccare e a quali host può connettersi, senza avviare un container. Non è legato a Claude Code: agenti propri, server MCP locali e normali programmi da riga di comando possono girare al suo interno.
Il pacchetto npm @anthropic-ai/sandbox-runtime, alla versione v0.0.81, pesa circa 11,4 MB, è distribuito con licenza Apache-2.0 e richiede Node.js 22.12 o successivo. Si installa con npm install -g @anthropic-ai/sandbox-runtime e si usa anteponendo srt al comando da eseguire. Funziona sia come strumento a riga di comando sia come libreria TypeScript. Su macOS usa Seatbelt, il meccanismo di sandboxing del sistema, con profili generati dinamicamente; su Linux richiede bubblewrap, socat e ripgrep, e rimuove il network namespace. Il supporto Windows è ancora in alpha e si basa su un account dedicato, un filtro di rete della Windows Filtering Platform e liste di controllo accessi esplicite sui file.

Immagine: news.hada.io — https://news.hada.io/topic?id=25751
Il traffico di rete esce solo attraverso proxy HTTP e SOCKS5 in esecuzione sull'host. Su Linux questi proxy sono raggiungibili tramite socket Unix montati nella sandbox; su macOS il profilo Seatbelt consente una sola porta localhost. I proxy applicano poi la lista di domini consentiti e quella di domini bloccati.
Anthropic sostiene che i due isolamenti vadano usati insieme. Senza quello di rete, un agente manipolato tramite prompt injection potrebbe esfiltrare le chiavi SSH; senza quello sul filesystem potrebbe uscire dalla sandbox e ottenere accesso alla rete. Per questo i default sono restrittivi: le letture sono permesse ovunque salvo divieto esplicito, le scritture sono vietate salvo autorizzazione, e la rete è negata finché un dominio non viene inserito nella lista consentita.
Un server MCP si protegge cambiando in .mcp.json il comando da npx a srt, passando il comando originale come argomento. Le regole vivono nel file ~/.srt-settings.json, dove si indicano domini consentiti, percorsi di lettura negati, cartelle scrivibili e file protetti. Per un agente proprio la libreria espone SandboxManager: si chiama initialize(config) per avviare i proxy e poi wrapWithSandbox(), che restituisce una stringa di comando da lanciare.
Il dato più citato è il calo dell'84% delle richieste di permesso in Claude Code, emerso dall'uso interno di Anthropic. È un numero autodichiarato, non un benchmark indipendente, e l'obiettivo dichiarato è combattere la stanchezza da approvazione: chi clicca "approva" tutto il giorno smette di leggere cosa approva. Un confine fisso lascia all'agente libertà entro i limiti e gli chiede conferma solo ai margini.

Immagine: jsdelivr.com — https://www.jsdelivr.com/package/npm/@anthropic-ai/sandbox-runtime
Il compromesso reale riguarda la larghezza delle liste. Gli agenti di coding installano dipendenze, scaricano documentazione e chiamano API: con una lista troppo stretta un npm install fallisce, con una troppo larga la sandbox protegge poco. Lo strumento offre alcune leve per questo equilibrio, come i caratteri jolly per i domini, una callback che decide sui domini non coperti da alcuna regola e permessi temporanei per singolo comando. Il confronto con altri sistemi mostra un approccio diverso: Docker Sandboxes e Perplexity SPACE usano microVM, come Firecracker, mentre sandbox-runtime resta sulla macchina locale senza virtualizzazione.
Il progetto è ancora in stato di beta research preview, e il supporto Windows è alpha.

Ancora nessun commento. Puoi essere il primo!