Show HN:Code Airlock——在一次性微虚拟机中运行Claude Code和Codex
Code Airlock是一个围绕Docker Sandboxes的轻量级封装,允许Claude Code、Codex、OpenCode等编码代理在一次性微虚拟机中安全运行,同时保持主机仓库只读,并支持通过常规git提交审查代理的工作成果。
Code Airlock是一个围绕Docker Sandboxes构建的轻量级工具,旨在让开发者更安全、更高效地使用AI编码代理(如Claude Code、Codex、OpenCode等)。其核心思想是将代理运行在一次性微虚拟机中,从而在赋予代理更大自主权的同时,确保主机系统的安全。
传统上,为了防止代理误操作,开发者往往需要严格限制每个命令的执行权限,但这也会降低代理的效率。Code Airlock将安全边界下移到运行环境层面:代理在微虚拟机内可以自由安装包、运行测试、查看日志等,而主机仓库则保持只读状态。代理的所有更改都会以常规git提交的形式返回,供开发者审查后合并。
与直接使用Docker Sandboxes相比,Code Airlock提供了针对编码代理工作流的优化。它默认启用了克隆模式,为每个仓库提供稳定的沙箱命名,并支持一键启动代理。此外,它还提供了获取(fetch)、差异比较(diff)、审查(review)和合并(merge)等命令,方便开发者管理代理的工作成果。
安装Code Airlock需要先安装Docker Sandboxes。可以通过npm或Homebrew进行安装,也可以使用独立的shell安装脚本。安装后,通过简单的命令即可启动沙箱并运行代理:
code-airlock run "为用户端点添加分页功能并运行测试" code-airlock diff code-airlock merge
对于远程服务器运行,Code Airlock支持tmux会话,允许代理在SSH断开后继续工作。此外,它还支持通过配置文件限制网络访问,只允许代理访问模型API和包注册表。
Code Airlock还提供了配置播种功能,允许将用户级的自定义设置(如自定义命令、技能、子代理等)复制到沙箱中,这些设置默认不会通过克隆模式传递。通过--seed-config选项,可以在代理启动前复制这些配置,使得代理能够使用个人化的工具和指令。
总的来说,Code Airlock为AI编码代理提供了一个安全、可重复的工作流程,既发挥了代理的自主能力,又保障了代码仓库的安全。它的设计理念是将安全边界置于代理之下,而不是仅仅依赖代理内部的策略规则。这使得开发者可以在不牺牲安全性的前提下,充分利用代理的自动化能力。