Web应用 活跃维护

microsandbox

superradcompany/microsandbox

🧱 简单、快速、可编程且本地优先的微型虚拟机运行时和库

8784
Stars 标星
485
Forks 分支
26
Watchers 关注
119
Open Issues
Rust
主要语言
Apache-2.0
开源协议
964.3 MB
仓库大小
1 小时前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:superradcompany/microsandbox
git clone https://github.com/superradcompany/microsandbox.git
git clone git@github.com:superradcompany/microsandbox.git
README.md main

英文原文正文为项目原始 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 / 🐧 Linux
irm https://install.microsandbox.dev/windows | iex      # 🪟 Windows
 我们也支持其他包管理器 →

使用 brew 安装 superradcompany/tap/microsandbox
npm i -g microsandbox
uv 工具安装 microsandbox
cargo 安装 microsandbox

安装后开始创建沙箱:

    安装 SDK

npm i microsandbox                                       # 🟦 TypeScript
cargo add microsandbox                                   # 🦀 Rust
go 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 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。