webcoyote/sandvault
Run AI agents isolated in a macOS user account and sandbox-exec. Configured to run Claude Code, OpenAI Codex, Cursor Agent, Google Gemini.
SandVault – macOS 上的沙盒化 AI 代理与 shell 命令
是什么 – SandVault (sv) 是一个命令行工具,创建一个轻量级、受限的 macOS 用户账户,并在该账户内运行命令(包括 Claude、Codex、Gemini 等流行的代码生成代理)。它结合了 macOS 的 sandbox-exec 与独立用户,实现了类似虚拟机的隔离,但无需完整虚拟机的开销。
核心功能
- AI 就绪 – 一键快捷启动流行的代码代理(Claude、OpenAI Codex、OpenCode、Google Gemini、pi、Muse Code),可从主机或沙盒内启动。
- Web 与 iOS 自动化 – 沙盒可通过 Chrome DevTools 协议与主机上的无头 Chrome(或 Lightpanda)通信,也可通过 HTTP 桥接控制 iOS 模拟器,实现网页和 iOS 应用的 UI 自动化测试。
- 快速上下文切换 – 由于仅切换 macOS 用户,启动沙盒会话几乎瞬时完成,远快于启动虚拟机。
- 免密码切换 – 初始设置后,可通过
sudo -u sandbox-$USER …模拟沙盒用户,或通过 SSH 无交互式密码访问。 - 共享工作区 –
/Users/Shared/sv-$USER下的目录对主账户和沙盒账户均具有写权限,便于文件或 Git 仓库交换。 - 纵深防御 – 沙盒用户无法访问你的主目录、其他用户、挂载的磁盘或系统文件;仅可见少数只读系统路径。
- 干净卸载 –
sv uninstall会移除沙盒用户及其所有文件,但共享工作区保持不变。
使用方法
# 在沙盒内启动 Claude
sv claude
# 在沙盒内运行 shell 命令
sv shell /Users -- pwd
# 克隆仓库到共享区域并在那里启动代理
sv-clone https://github.com/example/repo.git -- codex
你还可以添加 --ssh 通过 SSH 连接到沙盒用户运行命令,或设置 SANDVAULT_ARGS 使 --native-install(在沙盒内安装代理)等选项成为默认值。
安装 – 可通过 Homebrew(brew install sandvault)安装,或克隆仓库并将 sv 脚本添加到 $PATH。
高级功能
- 原生安装 – 代理可通过其自带安装器在沙盒内安装(
sv -N claude)。 - 浏览器自动化 – 启动无头 Chrome(或 Lightpanda),并通过
SV_BROWSER_ENDPOINT环境变量从沙盒连接;支持 Playwright 或 Puppeteer。 - iOS 模拟器自动化 – 主机上启动一个全新模拟器,并通过 HTTP 桥接暴露(
SV_IOS_SIMULATOR_ENDPOINT)。可通过简单的curl命令查询可访问性树、点击元素、启动应用、截取屏幕截图。 - SSH 密钥管理 – 将公钥放入
~/.config/codeofhonor/sandvault/authorized_keys.d/,SandVault 会自动重建沙盒用户的authorized_keys。 - AgentsView 集成 – 若使用 AgentsView 仪表板,
sv-agentsview-setup会镜像沙盒会话数据,使你可将 AI 代理活动与主机会话一同查看。
限制
- GUI 应用无法在沙盒内运行,因为 macOS 禁止不同用户连接到 WindowServer。
- 不支持嵌套
sandbox-exec;对于swift等工具,必须通过环境变量标志禁用其内部沙盒,或使用--no-sandbox(-x)运行 SandVault。
适用人群 – 希望在隔离环境中实验强大 AI 代码代理或自动化浏览器/iOS 模拟器的开发者。在 Docker 风格容器沉重或不可用的 macOS 环境中尤其有用。
TL;DR – SandVault 是 macOS 专用 CLI,创建受限用户账户,允许你在沙盒中运行 AI 代码代理、shell 命令、无头 Chrome 和 iOS 模拟器自动化,并通过 Homebrew 实现简易安装/卸载。
相关
- 项目
- 项目
- 项目
- 项目
- 项目