自动化与运维 macos-automationcomputer-useaccessibility-apiapple-eventscdpgui-automationpythonbrowser-control

macOS Harness

一个极简的 macOS 控制层,让大模型通过六个原语直接操控整台 Mac,无需为每个应用编写专属工具。

FollowAgents 评估 · FARS-2.1
不推荐
55/ 100 五分制 2.8 / 5
1 2 3 4 5 6
按维度查看评分与理由
1信任安全10 / 29 · 1.7/5

加分点:输入事件定向投递到目标 PID、拒绝无 app 目标的输入(有测试证明)、doctor 报告所需权限、telemetry 可一键关闭并披露字段。扣分点:产品设计本身是'完全自由控制整台 Mac',无操作级确认机制;telemetry 默认开启;无任何回滚/撤销机制;telemetry 最小化声明只有 README 文字,缺 src 源码佐证;版权署名 'Browser Use 2026' 但发布者身份未经核实。

2可靠稳定9 / 14 · 3.2/5

测试覆盖键序、修饰键转换、焦点变化中断、坐标空间换算等,内部逻辑自洽;MacOSError/FocusChangedError 带明确信息;CI 锁定 uv sync --locked。扣分点:依赖 browser-harness>=0.1.9 是 Alpha 外部包,可用性风险部分存在;异常覆盖只见到两类。

3适用触发12 / 18 · 3.3/5

目标受众(开发者)与场景(macOS 自动化)清晰,six-primitives 设计有测试锚定(test_agent_surface_is_flat_and_explicit);环境限定明确(macOS、Python 3.11/3.12、sys_platform 条件依赖),可得 3 分。扣分点:'complete freedom' 意味着几乎没有能力边界防护,README 只以 'Experimental' 一词带过。

4规范维护11 / 18 · 3.1/5

LICENSE 完整为 MIT,3 分;README/pyproject/CI/SECURITY.md 结构清晰,install.md 被引用但未提供;pyproject 元数据良好、入口稳定。扣分点:无 CHANGELOG,仅版本号 0.1.2 Alpha;维护责任只有 GitHub Security Advisories 一条路径,发布者未验证;install.md 内容缺失使安装说明仅部分可见。

5有效结果9 / 13 · 3.5/5

输出为结构化 dict(doctor 结果、see 结果含 virtual_pointer/focus),可被 LLM 直接消费;'no app-specific tools' 的极薄设计相对重框架方案有明确边际价值;单进程低开销。扣分点:输出可用性依赖未展示的 src 实现,成本(真实 macOS 权限:屏幕录制、辅助功能、事件投递)对用户而言不低。

6证据核验4 / 8 · 2.5/5

README 声明(不移动真实指针、不激活目标 app、拒绝无目标输入、隐私点击不走 AX)均可对应到具体测试断言;事实与推断区分良好。扣分点:核心 src/macos_harness 源码未在证据中提供,跨源印证仅限 README↔tests↔pyproject 三方,telemetry 字段声明无法独立核实。

证据充分度: 评估于 2026年9月11日 审查版本 b88e4d77403b
源码中未见的安全控制:回滚或恢复路径
使用前请注意
  • 该工具按设计授予对整台 Mac 的完全控制(键盘、点击、AppleScript、文件系统、已登录浏览器),不存在操作级确认或回滚机制,请仅在隔离或可接受的机器上使用。
  • 匿名遥测默认开启,虽然声称不记录提示词/截图/路径,但相应实现代码未在评审证据中,建议安装后立即执行 macos-harness telemetry disable。
  • 核心运行时依赖 browser-harness 为 Alpha 阶段外部包,供应链与可用性风险未经独立核实。
  • README 提到的 install.md 和 SKILL.md 未包含在本次证据中,安装与 skill 注册流程无法静态验证。
  • 将 agent 指令与第三方 UI 内容视为不可信输入(SECURITY.md 自己也如此提醒),谨慎授权最小 macOS 权限。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

macOS Harness(browser-use/macos-harness)是一个 MIT 许可的实验性 Python 工具,为 LLM 提供对 Mac 的原生控制能力。它运行单个持久 Python 进程,暴露六个原语:see(CGWindow 截图,可捕获后台窗口)、key 和 type(通过 CGEvent 直接向目标应用 PID 发送输入,不移动真实光标)、click(坐标点击)、ax(原生 Accessibility)和 script(Apple Events/AppleScript)。同一进程内还提供 browser.*(通过 CDP 连接真实 Chrome 的 Browser Harness)、Path 和 subprocess,用于文件与 shell 操作。它不预置任何应用专属工具,模型按需在任务中用普通 Python 补写缺失逻辑。该工具仅支持 macOS,需要通过 macos-harness doctor 检查并授予相应的系统权限。

以单个持久 Python 进程连接 macOS、真实浏览器和本地文件。具体操作包括:调用 mac.see("Spotify") 用 CGWindow 截取应用窗口(无需将其带到前台);用 mac.key("cmd+k", app="Spotify") 和 mac.type(...) 通过 CGEvent 向指定 PID 发送键盘与坐标输入;用 mac.click(640, 420, app="Spotify") 点击界面;当视觉信息不足时,用 mac.ax.at(...) 读取原生 Accessibility 树、用 mac.script('tell application "Spotify" to play') 发送 Apple Events;通过 browser.page_info() 与 Browser Harness(CDP)操作真实登录态的 Chrome;同一进程中可直接使用 Path 和 subprocess 操作文件与 shell。安装后运行 macos-harness skill 获取技能说明、macos-harness doctor 检查权限,并可通过捕获一个后台应用来验证连接。它还会绘制一个动画化、可穿透点击的指针而不移动物理光标。

  1. 使用 Codex 或 Claude Code 的开发者,希望代理能安装、自检权限并验证后直接操控本机 Mac 完成任务
  2. 需要自动化操作具体应用(如 Spotify、Slack、Final Cut)的用户,无需等待或编写应用专属集成工具
  3. 希望在代理操作时不受干扰的用户——代理可捕获后台窗口、不抢焦点、不移动真实光标
  4. 需要操控真实登录态浏览器(Chrome via CDP)执行网页任务的自动化场景
  5. 偏好视觉信息不足时降级到 Accessibility API 与 AppleScript 的技术用户
  6. 需要在同一 Python 进程中结合文件系统与 shell 操作完成混合任务的自动化工程师

这个 Agent 有哪些优点和局限?

优点
  • 无框架、无预设工具的极简设计:模型用 see/key/type/click/ax/script 六个原语即可覆盖任意应用,不必为 Spotify、Slack 或 Final Cut 分别构建工具
  • 可捕获后台应用窗口而不抢占前台、向 PID 直接发送输入且不移动物理光标,适合在有人使用机器时运行
  • 多层降级路径:视觉之外还暴露原生 Accessibility 和 Apple Events,并经 CDP 操控真实登录态 Chrome
  • macos-harness doctor 明确列出所需权限,支持一条命令关闭匿名遥测,隐私边界有明确文档
局限
  • 仅支持 macOS,且被官方标注为实验性(Experimental),稳定性与长期维护无保证
  • 需要授予多项 macOS 系统权限(doctor 检测),权限配置是采用前的必要成本
  • 浏览器控制依赖真实 Chrome 与 CDP,非 Chrome 或无浏览器环境无法使用该能力
  • 匿名遥测默认开启,隐私敏感用户需要主动运行 macos-harness telemetry disable
  • 没有预置应用工具,复杂任务依赖模型即时编写 Python 逻辑,对模型能力有较高要求;README 未提供性能基准或失败率证据

如何安装或部署这个 Agent?

推荐方式(由代理自行执行):将以下提示粘贴到 Codex 或 Claude Code:"Install or upgrade macOS Harness from https://github.com/browser-use/macos-harness with uv using Python 3.12. Register the skill printed by macos-harness skill, then run macos-harness doctor. Explain any missing macOS permissions and ask before requesting them. Finally, verify the harness by capturing one already-running app without bringing it to the foreground." 也可按仓库的 install.md 进行手动安装。运行环境要求 macOS、Python 3.12 和 uv;如需浏览器控制还需真实 Chrome。

如何使用这个 Agent?

通过 CLI 进入 Python 会话:macos-harness <<'PY' ... PY,在进程内使用六个原语,例如:frame = mac.see("Spotify");mac.key("cmd+k", app="Spotify");mac.type("Alessia Cara", app="Spotify");mac.click(640, 420, app="Spotify");item = mac.ax.at(640, 420, app="Spotify");mac.script('tell application "Spotify" to play')。同一进程中可直接调用 browser.page_info()、list(Path.home().iterdir()) 等。首次使用先运行 macos-harness skill 注册技能说明,再运行 macos-harness doctor 检查并按需授予 macOS 权限。如需关闭遥测,运行 macos-harness telemetry disable。

常见问题

它支持哪些操作系统?
仅支持 macOS,README 明确标注 "Experimental. macOS only."
需要授予哪些权限?
运行 macos-harness doctor 可列出实际所需的 macOS 权限;README 建议在请求权限前由代理向用户解释说明。
它会收集我的数据吗?
默认开启匿名遥测,仅记录 CLI 命令类别、成功与否、耗时、包版本、系统架构和检测到的代理客户端;不记录提示词、应用名、截图、UI 文本、脚本、路径或窗口标题,可用 macos-harness telemetry disable 关闭。
它自带哪些应用的专属工具?
一个都没有。它只提供 see、key、type、click、ax、script 六个原语,加上同进程内的 browser、Path 和 subprocess,缺失的应用逻辑由模型在任务中用普通 Python 编写。
操作会不会干扰我正在使用的电脑?
该 harness 不会激活或前置目标应用,也不会移动物理指针;它捕获后台窗口、向目标 PID 定向发送输入,并绘制一个可穿透点击的动画指针。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents