1.9 KiB
1.9 KiB
调研报告 R2 · macOS 屏幕捕获与控制零件(子Agent产出,2026-08-29)
按冰朔裁定过滤:零件服务于驻留层 daemon 内部通道;MCP 身位不进驻留层。
屏幕(眼睛)
- 系统 screencapture 实测:区域 JPEG ~80ms / 全屏5K JPEG ~100ms / PNG 慢4倍大5倍弃用 → 结论:JPEG 模式亚秒级达标,daemon v0.1 现路线正确;-R 区域 / -l 窗口 / -x 静音
- 进阶(连续帧流/不夺焦点时升级):Peekaboo(5.1k★ MIT 当天活跃,macOS 15+,npx 可用) 或 @screen-capture/node(NAPI 进程内无子进程开销,活跃)
- 排除:Aperture(停更录制向);screenshot-one 为付费API非开源
手(三层组合)
- 坐标级:cliclick(2k★ BSD-3,brew 装,点击/拖拽/按键/输入一条龙)——注意R1称主流MCP弃用cliclick,但作为物理事件后备仍有效
- 应用级:osascript/JXA(零依赖,activate/菜单/keystroke/UI scripting)——daemon v0.1 现路线
- 语义级(点"名叫Save的按钮"):Peekaboo see --json AX树 + click/set-value(MIT可复用) ;JXA+System Events 零依赖可覆盖 AX;AXSwift停更、axcli无LICENSE(法律风险)均避开
权限与坑(重要)
- 双权限:屏幕录制+辅助功能,授权对象是宿主进程
- macOS 大版本升级权限重置是已知坑;TCC 绑定宿主app版本
Node 生态
- npm 旧 applescript 包已死(2015);通行做法 spawn osascript;@screen-capture/node 进程内最优
综合选型定稿(两报告合并)
- 近中期(v0.1-v0.2):screencapture + osascript/JXA(当前骨架=零依赖最小正解)+ DesktopCommander式终端会话
- 中期(v0.2+):引入 Peekaboo(语义点击+verify_state+artifact_sha256 强化眼睛和回执);cliclick 备物理事件
- 远期(v0.3+):Swift AX 原生自研(Peekaboo 路线)+ 思维层托管