devvm.dev 发布开源工具,为每个项目提供独立 VM 沙箱
Devvm.dev: One VM for every project
devvm.dev 发布开源(MIT)工具 devvm,为每个项目创建带项目工具链的隔离 VM,供开发者或编码智能体在其中写代码。在项目目录运行 devvm 即可生成 VM,支持 Claude Code、Codex 和 opencode,并可选 docker、nix、desktop 层。
每个项目一个虚拟机
一个隔离的沙箱,内置你项目的工具链,让你或编码智能体随时开始编码。
快速开始
1. 进入你的项目
打开终端,cd 进入任意项目文件夹。
2. 运行 devvm
devvm 会展示新虚拟机的配置。确认创建,或进行自定义。
3. 启动你的智能体
devvm 会在虚拟机中打开一个 shell,其提示符以 (devvm) 开头,因此在那里启动你的智能体。
Claude Code 首次启动前需要你的 Claude 登录信息,devvm agent login claude 会从虚拟机中生成并保存在你的机器上(你的第一个虚拟机)。下次你在该文件夹中运行 devvm 时,它会打开同一个虚拟机,而 devvm tools 会向已有虚拟机添加一个智能体。
支持的功能
工具链
devvm 会根据你项目文件的需要选择工具链,你也可以在自定义新虚拟机时选择更多,或用 --tools 指定它们(工具链)。
编码智能体
Claude Code、Codex 和 opencode 在虚拟机中运行。自定义新虚拟机时选择其中一个,或在 devvm setup 中为每个新虚拟机选择它们(编码智能体)。
层
devvm 提供 docker、nix 和 desktop 层,你在自定义新虚拟机时选择它们,而 devvm layer new 可创建你自己的自定义层,应用于你的任意虚拟机(层)。
为什么使用 devvm?
- 开发者每天都面临攻击,例如供应链攻击、密钥泄露、提示注入和失控的智能体。
- 沙箱将攻击的影响范围限制在其内部。
- 你知道自己应该在沙箱中运行代码和智能体,但大多数工具需要配置和设置,很难做对。
devvm自带合理的默认配置,因此你只需一条命令就能在沙箱中开始编码。
开发者就绪,零配置
- 基础镜像附带可选的额外组件供你选择,例如 oh-my-bash、fzf、zoxide(
z)、tree 和 tldr。 - 每个虚拟机都会获得你的 git 名称和邮箱,因此其中所做的提交由你或你的智能体署名。
- 端口会自动转发,因此虚拟机中
:5173上的开发服务器会在你机器的localhost:5173上打开(端口)。 devvm code通过 Remote-SSH 在 VS Code 中打开虚拟机(devvm code)。
隔离沙箱
- 虚拟机以相同路径挂载你的项目文件夹。除了从 devvm 自有存储中以只读方式获取的智能体设置外,它看不到你主文件夹中的其他任何内容(虚拟机可以访问什么)。
- 新虚拟机默认使用允许列表网络层级,因此它们只能通过你机器上的代理访问允许列表中的主机。你可以选择更宽松的层级(internet 或 open),或更严格的层级(none)。
- 在 macOS 上,
devvm会锁定.git的钩子和配置,因此虚拟机无法更改你机器上 git 运行的内容(.git 保护)。 - 使用
--clone时,虚拟机在其自有仓库的克隆上工作,而不是你的文件夹,因此其中的任何内容都无法触及你的工作树或.git,其工作成果只有在你拉取时才会到达你的仓库。 - 没有沙箱能堵住所有漏洞,因此攻击向量列出了仍然开放的部分,而保持安全列出了能堵住大部分漏洞的习惯。
数秒内就绪
为编码智能体而打造
- 智能体在虚拟机中运行,因此针对它的攻击会被限制在沙箱内。它能获取你的设置、技能和 MCP 服务器,但永远无法获取你的历史记录(编码智能体)。
- 在每一层网络层级上,你的机密信息(例如 Claude Code 令牌和 Codex 登录信息)都保留在你的机器上,因为虚拟机拿到的是占位符,而 devvm 的代理会在请求发出时把真实值填入其中。
让它成为你自己的
- 你自己的层是安装脚本,
devvm会将其构建成镜像:devvm layer new mailpit启动一个,devvm --layers mailpit用它创建虚拟机(你自己的层)。 devvm setup --layers会为每个新虚拟机提供你选择的层,因此你的 shell 设置、别名或 dotfiles 可以放进你自己的层中,除非你特意排除,否则每个虚拟机都会获得它(你自己的额外内容)。--from从容器镜像而非 Ubuntu 的镜像启动基础镜像,例如node:24或你团队自己的镜像(从容器镜像启动)。- 当项目中有
devcontainer.json时,devvm会根据该文件中的容器镜像、端口、环境和命令来设置其虚拟机(devcontainer.json)。
常见问题
它运行在什么平台上?
devvm 可在 macOS 和 Linux 上运行,支持 arm64 或 x86_64。它需要 Lima,后者在 macOS 上使用 Apple 的虚拟化框架、在 Linux 上使用 QEMU 来运行虚拟机(后端)。Homebrew 会随 devvm 一起安装 Lima,而在 Linux 上,Lima 还需要 QEMU 以及对 /dev/kvm 的访问权限。安装 列出了所有要求,已知限制 列出了 Linux 主机缺少的功能,例如 .git 保护。
智能体在我的机器上运行吗?
不。你在虚拟机的 shell 中启动智能体,因此它在虚拟机中运行,你永远不需要把它安装到自己的机器上。在那里,它只能看到 虚拟机能够访问的内容。
它是免费的吗?
是的。devvm 是在 MIT 许可证 下开源的。
在沙箱中开始编码
安装 devvm,然后在任意项目文件夹中运行 devvm。
来源:Hacker News · devvm.dev