返回

文章详情

展示 HN:Clawk – 给编码代理提供一个一次性 Linux 虚拟机,而不是你的笔记本

Hacker News2026年7月13日 14:02

编码代理只有在你让它实际做事情时才有用:安装软件包、运行它编写的代码、启动服务器、使用网络。在你自己的机器上,这留下了两个糟糕的选择。你批准每个命令(并每隔几秒就要看一次提示),或者你运行 --dangerously-skip-permissions 并希望重要内容不在一个 rm -rf 或一个泄露的令牌之内。clawk 是第三个选择。进入一个仓库,输入 clawk,Claude Code(或 Codex,或一个 shell)就在一个一次性 Linux 虚拟机中运行(你的代码挂载进来,来宾内有 root,没有权限提示),而你的文件,你的钥匙链,以及你机器的其他部分则保持在无法触及的范围内。代理获得了自己的机器,而不是你的机器。一条命令向一个工作代理发送;尝试向未知服务器发送数据,由网络允许列表阻止;clawk attach 可以稍后恢复会话。这个边界不是代理可以被说服的提示中的规则。这是一台独立的机器,唯一的入口是你挂载的。来自沙箱内的 shell:$ curl https://tracker.evil.example # 不在允许列表中:被阻止 curl: (7) 在 2 毫秒后无法连接到 tracker.evil.example 端口 443:连接被拒绝 $ cat ~ /.ssh/id_rsa # 你的密钥从未进入虚拟机 cat: /home/agent/.ssh/id_rsa: 没有那个文件或目录 $ git push # 但这有效:ssh-agent 被转发 Enumerating objects: 5, done. 诚实地说,允许列表阻止对未知服务器的连接,而不是对你已允许的服务器:github.com 是预先允许的,转发的 ssh-agent 可以推送,所以将代理可以读取的任何内容视为它可以发布的内容。安全模型对此进行了说明。如果代理破坏了虚拟机,运行 clawk destroy && clawk:一个新的虚拟机,相同的仓库,--resume 恢复了会话。重要的 1.0 之前版本,并且变化迅速。请预期在发布之间有破坏性变化和偶尔的粗糙边缘;事情可能会并且会破损。请提交问题;该反馈正在塑造 1.0。亮点 让代理做任何事情。它在一个具有限制网络的一次性虚拟机中运行,因此 rm -rf、软件包安装和不受信任的代码无法接触到你的主机、你的文件或你未明确共享的任何东西。通过一个命令工作。进入一个仓库并运行 clawk。没有 Dockerfile、devcontainer 或设置文件。第一次启动从你的镜像构建一个 rootfs;之后的每次启动只需几秒钟。打破它而不丢失任何东西。可以随意销毁和重建;你的代码和代理的对话保留在主机上。只有一次性虚拟机的磁盘会丢失。一个真正的 Linux 盒子,你的工具链。任何 OCI 镜像都是 rootfs:一整套操作系统,正好具备你的项目所需的工具。不需要 Docker 守护进程。秘密保持在你的机器上。出站流量是允许列表中的,ssh-agent 被转发,所以 git push 在没有密钥进入虚拟机的情况下工作。每个项目或工单都有一个沙箱。可以同时运行多个;多个仓库的工单为每个仓库获取一个 git worktree,并协调 PR。空闲的虚拟机自动释放内存并挂起到磁盘,因此遗忘的沙箱几乎不花费任何东西。为什么选择虚拟机?clawk 是一个通用的本地环境,用于自主编码代理。虚拟机是关键:它是一整台代理可以拥有的机器,而不是你正在使用的机器上一个被政策限制的进程。一个独立的内核。来宾运行自己的 Linux 内核,因此主机文件系统不会被隐藏在拒绝规则后面;它从未挂载。一个传统的 Linux 环境。标准内核,标准用户空间,/dev/kvm 形状的期望,因此工具表现得像它们的文档所说的那样,而没有系统调用过滤的意外。来宾中的 root。安装系统软件包,编辑 /etc,加载模块,绑定特权端口。这是代理可以重新配置的盒子。一次性生命周期。易于破坏并快速重建;一台损坏的虚拟机只需执行 clawk destroy && clawk,即可在主机上保持你的仓库和对话不变。更强的与主机的隔离。隔离建立在虚拟机监控程序的边界上,而不是精确把控进程沙盒政策。这种组合运行了受限进程沙盒通常会与之冲突的工作负载:安装软件包和本地依赖;运行后台服务(数据库、队列、开发服务器);以全速执行不受信任的构建和测试;使用期望真实机器的系统级 Linux 工具;并且,借助在受支持硬件上启用 KVM 的来宾内核,容器和 Kubernetes 开发工作流程如 Docker 或 Kind 可以在沙箱内运行。这是自愿的,并且受硬件限制;详细要求见图像。这里的任何内容都不是产品;clawk 是用于本地代理工作的一般用途工具。安装要求 macOS 14+ 的 Apple silicon。(Linux 通过 firecracker 支持,目前处于实验阶段;请参阅虚拟机提供者了解差距。这份自述文件以 macOS 为首。)brew install clawkwork/tap/clawk 从源代码(贡献者,或如果你不使用 Homebrew),需要 Go 1.26+:git clone https://github.com/claw

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡