英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。
Microsandbox 在快速的本地微型虚拟机中运行 不受信任的工作负载:AI 代理、用户代码、插件、持续集成任务、开发环境、爬虫以及自动化。
- 硬件隔离:使用微型虚拟机实现硬件级隔离。
- 分叉与快照:分叉运行中的沙箱[1]。保存沙箱运行状态并在以后恢复。
- 跨平台:可在 Linux、macOS 和 Windows 上运行。
- OCI 兼容:运行来自 Docker Hub、GHCR 或任何 OCI 注册表的标准容器镜像。
- 类似 Docker 的工作流:熟悉的镜像、命令、Shell 和卷工作流。
- 即时启动:平均启动时间[2]低于 100 毫秒。
- 可嵌入:直接在代码中生成虚拟机。无需设置服务器。无需长时间运行的守护进程。
- 无法泄露的机密:无法被利用的密钥,永远不会进入虚拟机。
- 长时间运行:沙箱可以以分离模式运行,非常适合长期会话。
- 代理就绪:您的代理可以使用我们的 Agent Skills 和 MCP server 创建自己的沙箱。
入门
安装 CLI
curl -fsSL https://install.microsandbox.dev | sh # 🍎 macOS / 🐧 Linuxirm https://install.microsandbox.dev/windows | iex # 🪟 Windows
我们也支持其他包管理器 →
使用 brew 安装 superradcompany/tap/microsandboxnpm i -g microsandboxuv 工具安装 microsandboxcargo 安装 microsandbox
安装后开始创建沙箱:
安装 SDK
npm i microsandbox # 🟦 TypeScriptcargo add microsandbox # 🦀 Rustgo get github.com/superradcompany/microsandbox/sdk/go # 🐹 Go
要求:
- macOS:苹果硅。
- Linux: Enable KVM.
- Windows:启用 WHP。
警告:Microsandbox 仍然是测试版软件。请预期会有破坏性更改、缺失功能和不完善之处。
命令行界面
msb 命令行工具提供了一个完整的界面,用于管理沙箱、快照、镜像和卷。
运行命令
命名的沙箱
# 创建并启动一个命名的沙箱 msb create --name app python# 执行命令 msb exec app -- python -c "import this" msb 执行应用 -- curl https://example.com# 分叉一个正在运行的沙箱。 msb fork app --name app2 msb exec app2 -- python -c "print('一个独立的副本!')"# 现在快照,稍后恢复。 msb snap create --sandbox app --full -o snapshot.msb msb snap restore snapshot.msb --name app3分叉会复制实时执行。恢复从已保存的状态开始;添加
--cow-mem可以从完整快照共享未更改的内存。快照代描述进展,而分支描述通过快照历史的不同路径。旧的--forked恢复标志仍然是一个已弃用的别名。请参阅 分叉和快照。# 生命周期 msb 停止应用 msb 启动应用 msb 移除应用
图像管理
msb pull python # 拉取一个镜像 msb image ls # 列出缓存的镜像 msb image rm python # 删除一个镜像```
配置文件
msb run --conf sandbox.yaml -- octocat# sandbox.yaml image: python:3.12 memory: 64M network: 允许: - api.github.com 脚本: 章鱼猫: | python - <<'PY' import urllib.request request = urllib.request.Request( "https://api.github.com/octocat", headers={"User-Agent": "microsandbox-example"}, ) 使用 urllib.request.urlopen(request) 作为 response: 打印(response.read().decode()) PY
状态与检查
[!提示]
运行:
·msb --help获取快速帮助菜单。
·msb --tree获取完整的命令层级和说明。
·msb <command> --tree获取特定命令树。
软件开发工具包
该 SDK 允许您直接从应用程序创建和控制沙箱。Sandbox.builder("...").create() 会将微虚拟机作为子进程启动。无需基础设施。
在沙箱中运行代码
await 使用 sandbox = await Sandbox.builder("my-sandbox") .image("python") .cpus(1) .memory(512) .创建(); const output = await sandbox.exec("python", [ "-c" "print('来自微型虚拟机的问候!')", ]); console.log(output.stdout());
Rust 示例 →
使用 microsandbox::Sandbox; #[tokio::main] 异步函数 main() - > 结果 < (), 包 < 动态 std::error::Error > > { 让 sandbox = Sandbox::builder("my-sandbox") .image("python") .cpus(1) .memory(512) .create() .await?; let output = sandbox .exec("python", ["-c", "print('Hello from a microVM!')"]) .await?; println!("{}", output.stdout()?); sandbox.stop().await?; 好(()) }
Python 示例 →
import asyncio from microsandbox import Sandbox 异步 def main(): sandbox = await Sandbox.create( "my-sandbox", image="python", cpus=1, memory=512, ) output = await sandbox.exec("python", ["-c", "print('来自微型虚拟机的问候!')"]) print(output.stdout_text) await sandbox.stop() asyncio.run(main())
Ruby 示例 →
require "microsandbox" sandbox = Microsandbox::Sandbox.create( "my-sandbox", image: "python", cpus: 1, memory: 512, network: { allowed_hosts: ["api.openai.com"], allowed_ports: [443] }, secrets: [{ env: "OPENAI_API_KEY", value: ENV.fetch("OPENAI_API_KEY"), allowed_host: "api.openai.com" }] ) output = sandbox.exec("python", ["-c", "print('来自 microVM 的问候!')"]) 输出 output.stdout sandbox.stop有关安装、生命周期,请参阅 Ruby SDK 指南,
网络和后端详情。
Go 示例 →
package main 导入 ( “上下文” fmt 日志 microsandbox "github.com/superradcompany/microsandbox/sdk/go" ) func main() { ctx := context.Background() // 首次运行时将微沙箱运行时下载到 ~/.microsandbox/。 如果 _, err := microsandbox.EnsureRuntime(ctx, microsandbox.RuntimeConfig{}, microsandbox.InstallOptions{}); err != nil { log.Fatal(err) } sandbox, err := microsandbox.CreateSandbox(ctx, "my-sandbox", microsandbox.WithImage("python"), microsandbox.WithCPUs(1), microsandbox.WithMemory(512), ) if err != nil { log.Fatal(err) } 延迟 sandbox.Stop(ctx) output, err := sandbox.Exec(ctx, "python", []string{"-c", "print('来自微型虚拟机的问候!')"}) 如果 err != nil { log.Fatal(err) } fmt.Println(output.Stdout()) }
第一次调用
create()时,如果本地没有缓存,会拉取镜像,所以根据你的网络连接可能需要更长时间。后续运行会重用缓存。
指南
将微沙箱付诸实践的实用方法:
• 沙箱中的 Docker:在不接触主机守护进程的情况下运行 Docker。
• OpenCode:给编码代理一个隔离的项目工作空间。
• 浏览器使用:在 microVM 内运行 AI 浏览器代理。
• Playwright:在微型虚拟机中运行无头浏览器任务。
• 热工人:快照一个工具链并启动干净的工人。
• 迁移演练:测试数据库迁移,然后恢复基线。
• GitHub Actions 运行器:在一次性微虚拟机中运行每个自托管作业。
• 文档转 PDF:在新的离线工作环境中转换不受信任的文档。
社区展示
代理框架与运行时
• Eve 由 Vercel 提供:代理框架,提供 microsandbox 作为沙箱后端。
• Agentic 编码快速入门 由美国 GSA 提供:从零开始,在几分钟内使用 USAi 运行 AI 编码代理。
• Condukt 和 Once 由 Tuist 提供:Elixir 代理引擎,以及在全新沙箱中运行的可缓存动作。
• langchain-microsandbox by kenwoodjw:LangChain 深度代理的 Microsandbox 集成。
• Smithers 由 Smithers 提供:具有完整可观察性、回溯、分支和回放功能的代理工作流。
• AgentConnect:将多个 AI 代理引入您团队的聊天、问题和拉取请求中。
• wrap 由 Tobi Lütke 提供:在隔离的 Arch Linux 微型虚拟机中运行编码代理和项目命令。
• Wiren Board 的 Agent VM:在安全的虚拟机中运行 AI 代理,这些虚拟机限定在本地文件夹内。
工具与基础设施
• h5i 由 h5i 开发:为 AI 代理提供安全、可审计的浏览器,采用纯 Rust 编写。
• Devsy 由 Devsy 提供:将开发容器部署到任何云、Kubernetes 集群或 Docker 主机上。
• OpenWork 由 Different AI 提供:开源 Claude Cowork 替代方案,带有微型沙盒镜像。
指南与展示
• Awesome Microsandbox 由 ya-luotao 提供:精选的 SDK、集成、工具和资源列表。
• msb-omarchy 作者 ya-luotao:在 Apple Silicon 上的 microVM 内运行带有图形界面的 Omarchy 桌面。
人工智能代理
代理技能
通过安装 Agent Skills 教任何 AI 编码代理如何使用微沙箱。适用于 Claude Code、Cursor、Codex、Gemini CLI、GitHub Copilot 等。
npx skills add superradcompany/skills
MCP 服务器
将任何 MCP 兼容的代理连接到 microsandbox,使用 MCP 服务器。提供针对沙箱生命周期、命令执行、文件系统访问、卷和监控的结构化工具调用。
# Claude Code claude mcp add --transport stdio microsandbox -- npx -y microsandbox-mcp
文档
有关指南、API参考和示例,请访问 microsandbox 文档。
贡献
有兴趣为 microsandbox 做贡献吗?请查阅我们的 CONTRIBUTING.md 获取指南,以及 DEVELOPMENT.md 获取构建、测试和发布说明。
许可
本项目根据 Apache 许可证 2.0 授权。
致谢
特别感谢所有为 microsandbox 做出贡献的贡献者、测试者和社区成员,他们每天都在帮助提高 microsandbox 的质量!我们要感谢以下使 microsandbox 成为可能的项目和社区:libkrun 和 smoltcp
注释:
[1] 我们有很酷的演示展示虚拟机的暂停/恢复、快照和分叉功能:Mario Never Dies 和 Multiverse of Madness ↑
[2] 启动时间是指在 M1 机器上客机的启动时间。 ↑
- 本文标题:microsandbox - 🧱 简单
- 本文链接:https://www.cn121.com/webapp/superradcompany-microsandbox.html
- 原项目:superradcompany/microsandbox 版权归原作者 superradcompany 及贡献者所有
- 收录信息:本站于 2026-10-24 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 Apache-2.0(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。本站对原文仅作排版与图片地址适配, 并保留原项目的 NOTICE 与署名要求。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 superradcompany/microsandbox。
- 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。