Clawk: VM Linux usa-e-getta per coding agents, non il tuo laptop
Cos’è successo. Clawk è un tool open source (Apache-2.0) che lancia un coding agent (Claude Code, Codex, o una shell) dentro una VM Linux isolata. Il tuo progetto viene montato, l’agente ha accesso root nella VM, ma non può raggiungere il resto della tua macchina né chiamare server esterni non esplicitamente permessi. Un comando (clawk) avvia la sessione, clawk destroy cancella tutto, e una sessione rovinata si ripristina in secondi. Ha raccolto 175 stelle e 119 punti su Hacker News in poche ore.
Perché ti riguarda. Gli agenti di coding sono utili quando li lasci davvero fare: installare pacchetti, eseguire script, avviare server. Ma sul tuo laptop hai due scelte cattive: approvi ogni comando (e passi il tempo a dire sì), oppure salti i controlli e speri che un rm -rf o un token rubato non colpiscano qualcosa che conta. Clawk ti dà una terza opzione: l’agente lavora in un ambiente separato dove può fare quello che vuole, mentre i tuoi file, le tue chiavi SSH e il resto della macchina restano fuori portata. La rete è filtrata a monte: una connessione verso un dominio non in lista viene bloccata dal firewall della VM, non da una regola nel prompt. Come raccontavamo il 12 luglio, il modello di sicurezza è lo stesso di Clodex: trattare l’output dell’agente come untrusted input e verificare localmente.
Se vuoi provarci. Il README su GitHub (clawkwork/clawk) mostra l’installazione e l’uso base. Attenzione: il progetto è dichiarato pre-1.0 con possibili breaking changes fra le versioni.
Nel dettaglio
Il contesto
Gli agenti di coding (come nella riscrittura di sqlite-utils, o nel recupero degli applets Java del 1999 di Terry Tao) funzionano solo se possono eseguire davvero: leggere file, modificarli, installare dipendenze, testare il codice che hanno scritto. Il problema è che tutto questo comportamento avviene sul tuo laptop, con accesso ai tuoi file, alle tue chiavi, alla tua rete.
Le alternative esistenti sono due:
- Approvi ogni comando. L’agente chiede permesso a ogni passo, e tu finisci a rispondere a un prompt ogni pochi secondi. Utile per verifiche puntuali, insostenibile per sessioni lunghe.
- Salti le approvazioni (
--dangerously-skip-permissionsin molti tool). L’agente esegue tutto da solo, ma un errore o una richiesta ambigua possono cancellare file importanti o esporre dati sensibili.
Clawk parte dall’osservazione che l’agente non ha bisogno di accedere al tuo sistema: ha bisogno solo del progetto su cui sta lavorando.
Come funziona
Quando lanci clawk in una cartella, il tool:
- Crea una VM Linux isolata (tramite tecnologie di containerizzazione o virtualizzazione, i dettagli tecnici sono nel repo).
- Monta la cartella del progetto dentro la VM.
- Lancia l’agente (Claude Code, OpenCode, o una shell) dentro la VM.
- Configura un firewall a livello di rete che blocca tutte le connessioni uscenti tranne quelle verso domini esplicitamente permessi (GitHub è pre-autorizzato, il resto va aggiunto se serve).
- Inoltra l’ssh-agent del tuo sistema, così l’agente può fare
git pushsenza che le tue chiavi private entrino nella VM.
L’agente può fare qualsiasi cosa dentro la VM: installare pacchetti, modificare file, cancellare e ricostruire. Se prova a connettersi a un server non in lista (esempio: curl https://tracker.evil.example), la connessione fallisce a livello di rete. Se la sessione va storta, clawk destroy && clawk riparte da zero.
I limiti
Il modello di sicurezza è chiaro: Clawk blocca connessioni verso server sconosciuti, non verso quelli che hai permesso. Questo significa:
- Se autorizzi GitHub, l’agente può leggere file nel progetto e fare
git push: tutto quello che l’agente legge può essere pubblicato. - Il filtro di rete ferma le connessioni dirette, ma se l’agente esfiltra dati attraverso un canale autorizzato (per esempio nascondendoli in un commit), Clawk non lo intercetta.
- La VM isola il filesystem e le credenziali locali, non la logica dell’agente: se il prompt contiene istruzioni malevole (injection indiretta), l’agente le esegue.
In altre parole: Clawk ti protegge da errori distruttivi (l’rm -rf che cancella tutto il disco) e da tentativi di esfiltrazione non autorizzati, ma non ti protegge da te stesso se dai all’agente accesso a risorse sensibili o se il progetto stesso contiene segreti.
Disponibilità e comunità
Il progetto è su GitHub (clawkwork/clawk), licenza Apache-2.0, con documentazione su architettura e modello di sicurezza. È dichiarato pre-1.0: aspettati breaking changes e rough edges. La discussione su Hacker News (112 commenti) copre casi d’uso, confronti con Docker e devcontainer, e dettagli implementativi.
Implicazioni pratiche
Clawk rappresenta un cambio di approccio: invece di chiedere all’agente di comportarsi bene (tramite regole nel prompt), costruisci un ambiente dove l’agente non può fare danni anche se sbaglia. È lo stesso principio dietro Clodex: trattare l’output del modello come untrusted input e verificare localmente.
Questo approccio non è universale: se il tuo lavoro quotidiano richiede all’agente di accedere a servizi interni o database aziendali, Clawk non li sostituisce. Ma per lo sviluppo locale su progetti open source o interni auto-contenuti, offre un equilibrio pratico fra libertà operativa e sicurezza.