clawkwork/clawk
Give coding agents a disposable Linux VM, not your laptop
解决的问题
clawk 为自主代码代理(如 Claude Code、Codex 或 pi)提供安全、可丢弃的 Linux 环境。通过为代理提供专属的虚拟机(VM),而非在您的主机上以完全权限运行,从而消除了在主机上运行代理所带来的风险——哪怕一个破坏性命令或泄露的令牌都可能造成灾难性后果。
工作原理
clawk 使用 Apple 的 Virtualization.framework(在 macOS 上)或 Firecracker(在 Linux 上)启动轻量级 Linux VM。它通过 virtio-fs 将您的本地代码仓库挂载到客户机 VM 中,使代理能够实时编辑文件。为确保安全,它在用户空间(客户机之下)实现了一个基于 DNS 的出站网络过滤器,默认情况下会阻止所有未知服务器的通信,但允许 GitHub 和 npm 等常见注册表的访问。
关键技术细节包括:
- OCI 镜像根文件系统:它拉取标准的 OCI 镜像来创建 VM 的根文件系统,无需依赖 Docker 守护进程。
- 持久化:代理的对话历史和仓库存储在主机上,而 VM 磁盘是可丢弃的,每次启动时都会从镜像重新克隆。
- 连接性:使用 vsock 桥接进行控制,并转发主机的 ssh-agent,使代理无需在 VM 内部持有私钥即可推送代码。
适用人群
使用自主 AI 代码代理,并希望在绕过权限提示的前提下实现完全自主运行,同时不损害主机文件、钥匙串和网络安全的开发者。
主要亮点
- 可丢弃沙箱:可快速销毁并重建 VM,而不会丢失代码或代理对话历史。
- 零配置设置:无需 Dockerfile 或 devcontainer 配置,一条命令即可为目录启动沙箱。
- 网络白名单:严格的出站流量控制,包含所有被拒绝连接尝试的记录日志。
- OCI 兼容性:可使用任意 OCI 镜像作为根文件系统,提供项目所需的确切工具链。
- 工单模式:通过创建一个包含多个仓库 git worktrees 的单一沙箱,实现多仓库任务管理与协调 PR。
- 资源高效:空闲 VM 会自动释放内存并休眠至磁盘,以最小化主机开销。
相关
- Dispatch
- 项目
- 项目
- 项目
- 项目