
Dale a los agentes de codificación una VM Linux desechable, no tu portátil.
Dale a un agente de programación su propia máquina Linux desechable, no la tuya.
Instalación · Inicio rápido · ¿Por qué una VM? · Cómo funciona · Comparado con · Preguntas frecuentes · Documentación
Un agente de programación solo es útil cuando le dejas realmente hacer cosas: instalar
paquetes, ejecutar el código que escribe, iniciar servidores, usar la red. En tu propia
máquina eso deja dos malas opciones. Apruebas cada comando (y atiendes un
aviso cada pocos segundos), o ejecutas --dangerously-skip-permissions y esperas
que nada importante esté a un rm -rf o a un token filtrado de distancia.
clawk es una tercera opción. Haz cd a un repositorio, escribe clawk, y Claude Code (o
Codex, o pi, o un shell) estará trabajando dentro de una VM Linux desechable (tu código montado
dentro, root en el invitado, sin avisos de permisos) mientras tus archivos, tu llavero
y el resto de tu máquina quedan fuera de alcance. El agente obtiene su propia
máquina en lugar de la tuya.
Un comando para tener un agente funcional; un intento de enviar datos a un
servidor desconocido, bloqueado por la lista de permitidos de red; clawk attach
reanuda la sesión más tarde.
El límite no es una regla en un prompt de la que se pueda convencer al agente. Es una máquina separada, y las únicas aperturas son las que tú montaste. Desde un shell dentro de un sandbox:
$ curl https://tracker.evil.example # not on the allow-list: blocked
curl: (7) Failed to connect to tracker.evil.example port 443 after 2 ms: Connection refused
$ cat ~/.ssh/id_rsa # your keys never entered the VM
cat: /home/agent/.ssh/id_rsa: No such file or directory
$ git push # ...yet this works: ssh-agent is forwarded
Enumerating objects: 5, done.
Para ser honestos sobre los límites, la lista de permitidos bloquea las conexiones a servidores desconocidos, no a los que has permitido: github.com está pre-permitido y el ssh-agent reenviado puede hacer push, así que trata cualquier cosa que el agente pueda leer como algo que podría publicar. El modelo de seguridad lo detalla.
Y si el agente destroza la VM, ejecuta clawk destroy && clawk: una VM nueva, el mismo repositorio, y --resume restaura la conversación.
[!IMPORTANT] Pre-1.0 y avanzando rápido. Espera cambios que rompan la compatibilidad entre versiones y algún que otro borde áspero; las cosas pueden y van a romperse. Por favor, abre issues; ese feedback está dando forma a la 1.0.
rm -rf, las instalaciones de paquetes y el código no confiable no pueden alcanzar tu host, tus archivos ni nada que no hayas compartido explícitamente.cd a un repositorio y ejecuta clawk. Sin Dockerfile, devcontainer ni archivo de configuración. El primer arranque construye un rootfs a partir de tu imagen; cada arranque posterior tarda segundos.git push funciona sin que las claves entren en la VM.clawk es un entorno local de propósito general para agentes de codificación autónomos. La VM es el punto: es una máquina completa que el agente puede poseer, no un proceso envuelto en políticas sobre la que estás usando.
/dev/kvm, así que las herramientas se comportan como dicen sus docs, sin sorpresas de filtrado de syscalls./etc, carga un módulo, enlaza un puerto privilegiado. Es la caja del agente para reconfigurar.clawk destroy && clawk de distancia, con tu repositorio y conversaciones intactos en el host.Esa combinación ejecuta cargas de trabajo con las que un sandbox de procesos restringido tiende a pelearse contigo:
Nada de esto es el producto; clawk es para trabajo local con agentes en general. Docker y Kubernetes son solo el ejemplo más claro de "necesita una máquina real, no un proceso en sandbox."
Requiere macOS 14+ en Apple silicon. (Linux es compatible vía firecracker y actualmente es experimental — empieza con docs/linux-quickstart.md, que cubre la configuración, el flujo de trabajo y las carencias. Este README está orientado primero a macOS.)
brew install clawkwork/tap/clawk
Desde el código fuente (colaboradores, o si no usas Homebrew), requiere Go 1.26+:
git clone https://github.com/clawkwork/clawk && cd clawk
make install