
appsandbox v0.1.5
轻松创建完全沙盒化的虚拟机,用于开发或计算机使用模型。
App Sandbox
App Sandbox 是一款适用于 Windows 和 macOS 的虚拟机应用,专注于性能与易用性。
Windows 功能:
- 可在 Windows 11 家庭版或专业版上运行,无需 Hyper-V
- 支持 Windows 11 或 Ubuntu 26.04 LTS 虚拟机
- 零接触安装
- 复制与粘贴
- 双声道音频
- 通过半虚拟化实现 GPU 加速(GPU-PV),支持 DirectX 12(仅 Windows)、OpenGL、Vulkan、CUDA、OpenCL
- 支持 GPU 硬件视频解码器/编码器
- 通过 Hyper-V 套接字代理实现 SSH(无需网络)
- 快照
- 固定 1080P60 显示
- 支持宿主机到客户机的热键
- 可在有/无互联网的情况下进行配置和启动
- 得益于嵌套虚拟化支持,可在虚拟机内运行 Claude Cowork 和 Docker
- 无头模式:可脚本化的本地 HTTP/JSON API + 无依赖的 Python SDK(
asb.py),用于以编程方式创建和驱动 GPU 加速虚拟机
Mac 功能:
- 支持 macOS 或 Windows 11 ARM 虚拟机
- Windows 11 零接触安装,macOS 有 3 个无法跳过的引导步骤
- 复制与粘贴
- 双声道音频
- macOS:通过半虚拟化实现 GPU 加速,支持 Metal;Windows:无 GPU 加速
- 通过 virtio-vsock 实现 SSH(无需网络)
- Windows 11 客户机固定 1080P60 显示,macOS 客户机动态调整显示尺寸
- 可在有/无互联网的情况下进行配置和启动
- 无头模式:与 Windows 上相同的可脚本化本地 HTTP/JSON API + Python SDK(
asb.py),用于以编程方式驱动 macOS 和 Windows 11 虚拟机
要求: 搭载 x64 处理器的 Windows 11 或 macOS Tahoe(M 系列)
关于 App Sandbox
App Sandbox 可创建并运行完整的桌面虚拟机——Windows 11、Ubuntu 和 macOS。它是免费且开源的(MIT),以预构建二进制文件的形式分发(Windows 上为 EV 签名,macOS 上为 Apple Developer 签名),发布在其 Releases 页面。它有两种驱动方式:通过图形界面,或通过带有无依赖 Python SDK(asb.py)的无头守护进程以编程方式驱动。无论哪种方式,你选择操作系统、指向安装镜像,App Sandbox 便会配置磁盘、运行无人值守安装并启动客户机。你需要提供 Windows 或 Ubuntu ISO;macOS 客户机会自动下载其恢复镜像。它可在 Windows 11(x64)PC 或 Apple Silicon Mac 上运行,包括笔记本电脑。
可在 Windows 11 家庭版上运行,无需 Hyper-V。 在 Windows 上,App Sandbox 不使用 Hyper-V 或 Hyper-V Manager;它通过 Windows 主机计算系统(HCS)和主机计算网络(HCN)API 创建并运行虚拟机,这些 API 仅需要 虚拟机平台 功能。Hyper-V 仅限于 Windows 11 专业版和企业版,而虚拟机平台在 Windows 11 家庭版上可用,因此不需要 Windows 11 专业版许可证。虚拟机平台正是 WSL2 所使用的同一个 Windows 功能。
你可以用它来做什么:
- 一个完整的 Windows 或 Ubuntu 桌面虚拟机——一个带有 GPU 加速(OpenGL、Vulkan、CUDA)的完整图形操作系统——用于在干净安装上构建和测试你自己的软件。
- 在虚拟机中运行程序,与你的主操作系统和文件保持隔离。
- 开发和测试 Windows 驱动程序:内置的 测试模式 可在客户机内启用测试签名,因此宿主机的安全启动和启动配置保持不变。
- 在独立的虚拟机中运行计算机使用 AI 代理(例如 Claude 的计算机使用模型)。App Sandbox 提供桌面和虚拟机;代理自身的模型循环在客户机内运行。多个代理可以同时运行,每个都在自己的虚拟机中,运行在单台笔记本电脑或台式机上。
- 从 GUI 或无头 API 创建 GPU 加速(GPU-PV)虚拟机。
- 用代码脚本化虚拟机生命周期——使用 Python SDK 创建、快照、分支、SSH 登录和删除 GPU 加速虚拟机。
无头 API。
appsandbox.exe --headless
(在 macOS 上为 sudo /Appsandbox.app/Contents/MacOS/AppSandbox --headless)会启动一个单一所有者的守护进程,它承载与 GUI 相同的核心,并将其作为 Docker 风格的本地 HTTP/JSON API 暴露在 127.0.0.1 上,两个平台完全一致。仅使用标准库的 Python SDK(asb.py)对其进行了封装:创建 GPU 加速虚拟机(GPU-PV 是一个 gpuMode 创建选项),通过自动部署的密钥进行 SSH 登录(Windows、Ubuntu 或 macOS 客户机),对它们进行快照和分支,打开实时显示,并同时运行多个——并发运行的数量受宿主机 CPU、RAM 和 GPU 内存的限制,而非固定上限。该守护进程是单主机的——它驱动其所在机器上的虚拟机,不提供云虚拟机;对于 CI,请在自托管运行器上运行它。配置虚拟机会运行完整的无人值守安装;快照、分支和模板(仅 Windows)则从已配置状态启动新虚拟机,而不是重新安装。虚拟机在删除前会一直存在。快照是在虚拟机停止时获取的磁盘状态检查点,分支则从中派生出一个可写磁盘以运行不同的操作。完整的 API 参考和可运行示例位于 tools/headless-api/。
工作原理: 本仓库还旨在成为一个使用 Windows HCS/HCN API 和 Apple 的 Virtualization.framework 以编程方式创建完整桌面虚拟机的工作示例。在 Windows 上,App Sandbox 向 computecore.dll / computenetwork.dll 提交手工构建的 HCS 机器文档——这是同样作为 WSL2 和 Windows Sandbox 基础的 HCS/HCN 层——而不是通过 Hyper-V Manager。GPU 加速使用 GPU 半虚拟化(GPU-PV)与客户机共享宿主机已安装的 GPU——与 WSL2 路径相同,而非专用直通(无 VFIO/IOMMU,无第二块 GPU)。Windows 客户机获得 DirectX 12、OpenGL、Vulkan、CUDA 和 OpenCL;Ubuntu 客户机获得相同支持但无 DirectX;macOS 客户机获得 Metal。一个自定义的 IddCx 间接显示驱动和一个虚拟音频设备承载屏幕和声音,客户机↔宿主机的剪贴板、音频、输入和 SSH 通过 Hyper-V 套接字 运行。客户机磁盘由仓库内工具构建,支持 ext4、squashfs、qcow2 和 VHDX。在 macOS 上,App Sandbox 通过 virtio-vsock 使用 Apple 的 Virtualization.framework(VZVirtualMachine、VZMacOSInstaller)。在 Windows 上,Linux(Ubuntu)客户机通过自定义 DRM/KMS 内核模块(asb_drm)、Microsoft 的 WSL2 dxgkrnl 和自定义 Mesa 构建来访问 GPU。这些应用是原生 C / Objective-C,带有 HTML/JS UI(Windows 上为 WebView2,macOS 上为 WKWebView)。
提示:
默认用户名为 user,默认密码为 test123
[Windows] 启用热键或静音虚拟机音频:连接到虚拟机并右键单击连接标题栏
[Windows] 需要高性能远程桌面来远程访问你的虚拟机?Phaze 效果不错
[Windows] 你可以通过在 App Sandbox Windows 虚拟机内运行 gpu-test.exe 来检查 GPU-PV 驱动设置是否正常工作,gpu-test.exe 会显示一个包含 6 个旋转立方体的窗口,每个立方体使用不同的渲染引擎(D3D9、D3D10、D3D11、D3D12、OpenGL 和 Vulkan)。如果其中一个或多个失败,它们将无法为该渲染 API 正确显示旋转立方体。gpu-test.zip。注意:渲染 API 成功意味着 GPU-PV 正常工作,但有时游戏或应用的编码方式会导致它们无法正确检测 GPU-PV 系统,仍会显示错误。
分享修复和功能
感谢你分享修复和想法!欢迎以建议的形式提交拉取请求,包括来自你自己 fork 的 AI 辅助更改。它们不太可能被正式审查或合并,但有助于促成更改的贡献将获得署名。详情请参阅贡献指南。
许可证
AppSandbox 采用 MIT 许可证 授权——版权所有 (c) 2026 James Stringer。
它捆绑了 不受 MIT 许可证覆盖并保留其自身条款的第三方组件——最显著的是 Microsoft WSL2 dxgkrnl GPU 驱动(GPL-2.0)和嵌入式 XZ 解码器(0BSD)。完整列表请参阅 THIRD-PARTY-NOTICES.md。AppSandbox 自己的 Linux DRM 内核模块(tools/linux/asb_drm/)采用 MIT OR GPL-2.0 双许可,以便能够解析内核的仅 GPL 符号。
致谢
除了我自己构建 Easy-GPU-PV 的经验之外,我发现 NanaBox 是理解 HCS 的非常有用的资源。
作者
James Stringer——Easy-GPU-PV 的作者。