openloaf/openloaf/macos-control
Claude Code and agent skill by openloaf/openloaf
- community
Checking that the SKILL.md file is still in the repository.
当用户要求 AI 直接操作他的 macOS 桌面时触发:打开某个 App、点击某个按钮、填写窗口里的表单、读取当前屏幕内容、自动化本地 GUI 流程。典型说法"帮我在访达里…"、"帮我在某 App 里点一下…"、"看看我屏幕上显示的是什么"。**仅在 OpenLoaf Desktop(macOS)中可用**;非桌面端会返回 desktop-only 错误,应改用 `BrowserAct` 或让用户自己操作。**不用于**:网页内交互(→ `browser-ops-skill`)、本地文件读写(→ `Read`/`Edit`/`Write`)。
Install
npx vskill@latest install openloaf/openloaf/macos-controlSKILL.md
macOS 桌面控制指南
核心思维:先理解,再动手
不要看到 app 就直接 click/type。人类操作一个陌生 app,会先"逛一圈"——看它长什么样、有哪些入口、哪里是关闭按钮、哪里是业务区。你也必须这样。
三阶段框架:
跳过 Survey 直接 Act 是最常见的失败。微信 / QQ / 飞书 / 钉钉这类自绘 UI 的 AX tree 只有 3 个窗口按钮(close / min / zoom),模型凭猜点 path=["0","0"] 就会命中红色关闭按钮,整个 app 被关掉。Survey 会把这类陷阱提前告诉你。
工具全景
| 工具 | 什么时候用 | |
|---|---|---|
| `MacosSurvey(app)` | 每次接触某个 app 的第一步。返回 app 心智模型:已知 intent、AX 丰富度、菜单栏地图、窗口清单、推荐执行顺序。会话内缓存 5 分钟。 | |
MacosObserve(appFilter?) | 看当前具体 UI 状态——截图 + AX 树 + 窗口清单。Survey 之后用,以及每次 MacosAct 后用来验证结果。 | |
MacosAct | 执行动作。支持 intent / launch_app / menu_click / applescript / key / click / type / scroll / drag / wait / ax_action。 | |
MacosListWindows(appFilter?) | 仅枚举窗口(比 Observe 轻量)。多窗口场景里挑特定 window 用。 | |
MacosCaptureWindow(windowID) | 按 windowID 截特定窗口,可以截到被遮挡或最小化的窗口(Window Server 保留合成 buffer)。 |
全部仅在 OpenLoaf Desktop(macOS) 可用。非桌面端工具不注册;会话里不要尝试调它们。
执行路径的优先级(由 Survey 告诉你)
MacosSurvey 返回里有一段 Recommended path order,顺序从高确定性到低:
严格按顺序下探。能用前面的就不走后面。Survey 判 self-drawn 的 app 上,第 4 步直接跳过——对窗口 chrome 按钮的 AX path click 会被拦下(返回 WINDOW_CHROME_BLOCKED 错误)。
Survey 返回长什么样
"Known intents" 就是别人已经替你踩过坑的路径。优先用。
典型场景
场景 A:打开微信朋友圈
不要调完 launch_app 就直接 observe + click AX tree。那是老路径,会命中关闭按钮。
场景 B:在 Safari 打开 github.com
场景 C:读屏幕
用户问「我屏幕上显示什么」、「当前 App 里 xx 是什么」:直接一次 MacosObserve,从截图 + AX 树提炼答案。不需要 Survey,不需要 Act。
场景 D:未注册的 intent / ax-rich app
Survey 返回 ax-rich 且没有对应 intent 时,优先 menu_click / key,其次 AX path click:
场景 E:多窗口(微信主窗口 + 图片预览)
场景 F:填原生窗口表单(AppKit app)
Survey 看到 ax-rich,目标元素有 AX role=AXTextField:
当 Survey 没有你要的 intent 怎么办
- 看 Survey 的
Menu bar段 —— 几乎所有 app 的菜单栏都可以 menu_click - 菜单项如果带
(⌘⇧X)这种 shortcut,用MacosAct type="key"更稳 - 走不通再 observe 截图,按像素 coord click
- 完全走不通时停下来告诉用户"这条路径我没找到安全做法",别猜
铁律
- 第一次接触某 app,先 Survey。不 Survey 就 Act 是最常见的失败,特别是对自绘 UI。
- 优先走 Survey 推荐的第一条路(Known intents)。自己另辟蹊径多半翻车。
- 每次 `MacosAct` 后 `MacosObserve`。UI 是有状态的,你无法预测结果。例外:
intent/menu_click成功后如果不需要二次动作,可以跳过 verify。 - AX path click 只在 Survey 判 `ax-rich` 的 app 上用。
mixed谨慎,self-drawn禁止——chrome 按钮会被硬拦(WINDOW_CHROME_BLOCKED)。 - 坐标点击是最后手段。必须先 observe 看到截图像素位置;连续 2 次 coord click 后 UI 没变化,立即停止并告知用户定位失败。
- 敏感 app 前台(密码管理器 / 银行 / Keychain)立即停止,让用户自己操作。
- 缺权限时:系统设置面板已自动弹出,用自然语言告诉用户去启用 OpenLoaf,等用户确认再继续。不要重试。
- 非 macOS 桌面端:立即返回 desktop-only,改用
BrowserAct或交回用户。
权限
首次调用会提示缺权限。server 已自动打开对应系统设置面板。需要:
screen:屏幕录制(Survey / Observe / CaptureWindow 都要)accessibility:辅助功能(AX 树读取 + 合成输入)
某些系统级 app 授权后仍需重启 OpenLoaf Desktop。
坐标空间(退化到 point 时)
point.{x,y} 就是最近一次 MacosObserve 或 MacosCaptureWindow 截图上的像素坐标——图上目标在哪个像素,就把那个像素塞给 click/scroll/drag。工具内部自动换算到屏幕坐标,你不用关心 retina 缩放、窗口偏移或多显示器。
- observe/capture_window 返回里
Screenshot: window 2120×1718 px的那个数字就是坐标范围 - 必须先调用过一次 observe 或 capture_window 才能用坐标动作;否则工具拒绝
安全与隐私
- 密码、银行、密钥链类 App 不要 Survey / Observe / Act。遇到 1Password / Keychain / 银行 app 前台,立即停止并让用户自己操作。
- 截图存会话附件目录,随会话清理;不上传云端、不训练。
- 不确定屏幕状态时先 observe 一次再判断;不要臆测。
错误诊断
permissionsMissing→ 已自动开设置面板,提示用户授权 → 等确认desktop-only→ 当前非桌面端;告诉用户切到 OpenLoaf DesktopWINDOW_CHROME_BLOCKED→ 你点了窗口 chrome 按钮。按返回里的 4 个候选路径重新规划(menu_click / key / coord / URL)。不要傻乎乎加confirm_window_chrome:true强推,除非真的要关窗intent 未找到→ 用MacosSurvey看一下可用 intent 列表;或降级到 menu_click- 点击无反应 → 重新 observe,看目标节点是否真可点、是否被遮挡
- 中途前台切换 → observe 的 app 和 act 的 app 不一致,先
key cmd+tab切回再 act
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingapps/server/src/ai/builtin-skills/macos-control/SKILL.md
Popularity
- Repository stars
- 59
- Repository forks
- 6
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 21 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/openloaf/openloaf/macos-control)