把整台 Mac 交给 AI,只要 6 个原语!browser-use 团队新开源的 macOS Harness 实测
把一整台 Mac 交给 AI,只需要 6 个原语——browser-use 团队这个 800+ 星的实验项目,可能会改写”AI 自动化“的游戏规则。
它在解决什么问题
过去两年,AI 操作电脑的方案几乎都长这样:为每个 App 写一个专用 adapter——Spotify 怎么播歌、Slack 怎么发消息、Final Cut 怎么剪辑,一个个攒。结果就是 adapter 永远追不上 App 的数量,要么没人贡献、要么 App 一更新就坏。
macos-harness 走了一条反路:不写 adapter,只给模型六个原始操作——see(截图)、key(按键)、type(输入)、click(点击)、ax(读辅助功能树)、script(跑 AppleScript)。模型遇到没现成工具的场景,就自己用普通 Python 写一段逻辑补上。
架构亮点
整个项目是一个常驻 Python 进程,同时连三样东西:
– mac. —— CGWindow 截图、CGEvent 输入到 App 的 PID、AX/Apple Events
– browser. —— browser-use 自家的真实 Chrome 控制(CDP)
– Path / subprocess** —— 普通 Python 文件和 shell
几个细节很用心:截屏是后台捕获,不会把你的目标 App 拽到前台;虚拟光标是动画的、点击穿透,不会动你真正的鼠标指针;macos-harness doctor 会报告实际需要的 macOS 权限。
怎么用
安装只要两行:
uv tool install --python 3.12 --upgrade --force macos-harness
macos-harness skill > ~/.codex/skills/macos-harness/SKILL.md
或者更狠的——直接把 README 里那段提示词贴给 Codex 或 Claude Code,让 agent 自己装、自己注册 skill、自己跑 doctor 检查权限、自己验证。
一个示例调用:
frame = mac.see("Spotify")
mac.key("cmd+k", app="Spotify")
mac.type("Alessia Cara", app="Spotify")
mac.click(640, 420, app="Spotify")
没有 Spotify 工具,没有 Slack 工具,只有 6 个原语和模型自己的脑子。
谁适合用
- 想让 AI 在 Mac 上干”杂活”但不想为每个 App 写 adapter 的人
- 研究 agent 自主规划的开发者(看模型怎么自己补代码很有启发)
- 已经在用 browser-use 的团队,顺手扩展到桌面自动化
几个必须知道的边界
- 实验性项目,仅 macOS
- 遥测默认开——只记命令类别/成功/时长/OS 等元数据,不记屏幕和 App 名,可用
macos-harness telemetry disable关掉 - canvas-drawn UI 是软肋——Apple Accessibility API 拿不到结构,只能回退到像素坐标
- 文档承认取决于”你指向的模型是否够强”
写在最后
macos-harness 的真正卖点不是”操作 Mac”,而是重新定义 Agent 工具的边界——当模型足够强时,”给原语让它自己造工具”比”攒一堆专项 adapter”更可持续。这跟 Karpathy 那张 CLAUDE.md 卖 16K 星是同一种思路:把品味和判断压成可加载的配置,而不是堆框架。
GitHub 仓库:https://github.com/browser-use/macos-harness (800+ ⭐ · MIT · 8 月上线)
评论区
登录后可评论。