AI 代理执行 shell 命令和文件写操作时可能破坏真实环境,miniVE 提供本地免费隔离方案,代码不离开本机、无账号无计费,解决了云端沙箱的成本和隐私问题。
Coding Agent 很棒,但别忘了它们本质上是什么:一圈循环,在替你跑 shell 命令、改文件。rm、curl | bash、pip install、git clean -fdx,对着你的真实 home 目录、真实的 SSH 密钥、真实的 .env 执行。一步自信的错误指令、一份被 prompt 注入的 README、一个幻觉出来的路径,爆炸半径就是你的整台机器。
这是一个老问题的新变体,每个开发者都遇到过:"让我试试这个仓库"。那个仓库装了一个全局 CLI。那个教程需要 Python 3.10,你却有 3.12。那个快速测试改了你的 PATH。单独看都无害,加在一起,就是"在我机器上能跑"成为梗的原因。
两种问题的解法一样:别让不可信的工作碰你的宿主机。把它跑在一个可以扔掉的盒子里。
Cloud Agent 沙箱(E2B、Modal、Northflank):隔离做得很好,但按量计费、需要开户,而且你的代码跑在别人的基础设施上。
Cloud IDE(Codespaces、Gitpod):同样的trade——你的代码存在别处,按量计费。
Devcontainers:如果仓库自带配置且你用 VS Code,那很棒。但 Agent 的临时沙箱什么都不带。
原生 docker run:能用,但你成了 flag 管理员、volume 清道夫、端口会计,而且没有 UI 能看到每个 Agent 在折腾哪个环境。
我想要的是本地、免费、私密的版本:代码从不离开我的机器,不需要开户,不需要账单。
miniVE 是一个小巧的开源桌面应用(Tauri:Rust + Svelte),把"docker-as-throwaway-box"的工作流用 UI 包装起来,恰好就是你想交给 Agent 的那种东西。
Create(创建)。给它起个名字,选 Python 3.10/3.11/3.12、Node 18/20/22 或空白的 Ubuntu 24.04,可选映射端口。它会创建一个容器,外加一个挂载在 /workspace 的持久化 volume。
Point your agent at it(把 Agent 对准它)。打开一个 shell 进入环境,在盒子里跑 Agent 的 CLI,或者 clone 仓库进去让 Agent 放开手脚。它可以在 /workspace 里安装任何东西、运行任何东西、删除任何东西。你的宿主机文件系统、密钥、凭据都没有挂载进去,所以触达不到。
Work(工作)。多标签交互式终端(真正的 TTY:颜色、Ctrl-C、TUI 应用都能跑)。上传文件或粘贴 git URL 在环境内克隆。pip install / npm install 在 stop/start 之间持久化,所以 Agent 的安装步骤在重启后仍然保留。
Preview(预览)。跑一个绑定到 0.0.0.0 的 dev server,映射的端口会在预览面板里渲染出来(或者在你浏览器里访问 localhost)。不用离开应用就能检查 Agent 做了什么。
Delete(删除)。容器和它的 volume 一起被移除。docker ps -a | grep minive 什么都查不到。无论 Agent 做了什么,都消失了。这个保证就是整个工具的核心价值。
CLI。一个 minive 二进制文件随应用一起发布:用终端也能 create、list、shell into 和 delete 同样的环境。GUI 和 CLI 看到的是同一份状态,所以对着它写 Agent 脚本非常简单。
这是容器级隔离,不是 microVM。它能可靠地挡住现实中的失误("我的 Agent 炸了我的 home 目录"、"一个仓库的安装脚本泄露了我的 .env")。但它不能保证抵御由真正恶意代码发起的内核逃逸。在你自己的机器上跑你自己的 Agent 对付你自己的代码,容器级隔离是正确的取舍;如果你要引爆真正的恶意软件,请用 gVisor 或 Firecracker。
没有其他花招。每个环境就是一个容器加一个带 minive.env 标签的 volume;用普通的 docker 命令就能审计。无需开户、无遥测、无服务端。
免费,MIT 协议,支持 Windows/macOS/Linux。需要 Docker Desktop(Linux 上 Docker Engine 就够了)。
仓库:https://github.com/SahilSidhu7/miniVE
如果你试用了,欢迎提交 Bug 报告和功能吐槽,尤其欢迎回答:需要什么才能让这个成为你处理 Agent 和随机仓库的默认盒子?