offstage logo

offstage

Freemium
访问

一款 macOS 工具,为编码代理提供独立桌面来执行图形界面任务。

什么是 offstage?

offstage 为编码代理在同一台 Mac 上提供第二个已登录的 macOS 用户账户。模拟器、Xcode UI 测试、有头浏览器会话和已构建的应用等图形界面任务,会在该账户的桌面中运行;主用户则可继续使用自己的屏幕、键盘、鼠标和活动窗口。该工具旨在避免由代理驱动的界面操作抢占用户控制台的焦点。

offstage 会根据命令是否需要图形环境来进行路由。无头测试在原有环境中运行,受支持的 GUI 命令则使用辅助账户。offstage 采用第二用户工作流,而不是虚拟机,因此两个账户共享 Mac 的 CPU、内存和磁盘。

offstage 能做什么?

独立的 macOS 桌面

在名为 computeruse 的已登录辅助账户中运行 GUI 命令,该账户拥有自己的桌面、窗口服务器和输入上下文。主用户的显示与输入保持独立。

命令路由

执行前读取命令,并根据情况选择 macOS 会话、安装 Docker 时带虚拟显示的 Linux 容器、用于无头任务的当前环境,或拒绝安装程序和磁盘映像时不使用任何执行通道。

代理集成

通过 MCP 支持 Claude Code、Codex 和 opencode。Claude Code 也可通过插件使用 offstage,CLI 则提供 `offstage route` 和 `offstage run`。

交互式会话控制

支持应用测试流程,包括启动会话、截取屏幕截图、输入操作和退出。截图使用点坐标,启动操作会等待应用完成注册。

只读项目共享

当常规账户权限阻止运行时,可让辅助账户以只读模式访问选定的项目文件夹。之后可以取消共享。

诊断与安全规则

`offstage doctor` 命令会报告哪些执行通道可用以及如何修复。不会绕过被拒绝的安装程序;如果辅助会话是当前活动的控制台会话,则会拒绝输入操作。

使用场景

“运行模拟器和 Xcode UI 测试”

编码代理可以在辅助账户中运行模拟器、`xcodebuild test`、`xcrun simctl`、XCUITests 及相关应用命令,而无需在开发者的桌面上打开窗口。

“交互式测试已构建的 Mac 应用”

代理可以启动已注册的应用、查看会话截图、发送输入操作并再次截图来验证结果,而不会接管用户当前的会话。

“运行有头浏览器工作流”

有头 Playwright、Puppeteer、Cypress 和 WebDriver 工作流可以使用独立的 macOS 桌面;安装 Docker 后,受支持的有头浏览器任务也可使用 Linux 虚拟显示。

“在本地运行常规测试”

无头 Playwright 或 Puppeteer,以及 `npm test` 或 vitest 等普通命令,仍在原有环境中运行,避免为不会打开窗口的任务增加路由开销。

常见问题

offstage 是虚拟机吗?

不是。它使用现有 Mac 上另一个普通的 macOS 用户账户,无需启动客户机操作系统或虚拟机。产品网站称,设置大约需要 3 GB 磁盘空间。

初始设置需要什么?

网站列出的要求是 Apple Silicon Mac 和 Node.js 20 或更高版本。设置包括安装 CLI、运行 `sudo offstage session setup --create`,以及切换到辅助账户一次以启动其守护进程。设置需要管理员权限,可能还需要启用屏幕录制和辅助功能权限。

支持哪些编码代理?

通过 MCP 支持 Claude Code、Codex 和 opencode。Claude Code 也支持以插件形式使用。无法使用 MCP 时,可以使用 CLI。

辅助账户可以访问我的项目文件吗?

辅助账户是独立的普通用户,无法写入主用户的文件。如果它无法读取项目,`offstage session share <dir>` 可一次授予其对一个文件夹的只读访问权限;之后可以取消共享。

offstage 会拒绝哪些命令?

会拒绝安装程序和磁盘映像操作,包括 `.pkg`、`.dmg` 和 `hdiutil`。网站还说明,无头命令应在原环境中运行,而不应进行不必要的封装。

快速信息

类别
面向代理驱动 GUI 任务的开发者工具
平台
Apple Silicon 上的 macOS
运行时要求
Node.js 20 或更高版本
支持的代理
Claude Code、Codex 和 opencode
执行模式
同一台 Mac 上的第二个已登录 macOS 账户
许可证与价格
免费;采用 MIT 许可证

offstage 流量分析

流量数据仅供参考。

域名评分
0