核心用法
Find My技能基于Peekaboo框架实现macOS原生UI自动化,通过Apple官方Find My应用完成定位操作。主要功能包括:
- 三大标签切换:People(人员)、Devices(设备)、Items(物品/AirTag)
- 位置截图:捕获Find My窗口并输出图片路径
- 按位置选择:因无障碍API限制,需通过序号(1st, 2nd, 3rd...)而非名称选择项目
- 播放声音:尝试点击播放声音按钮定位附近物品
- 信息面板:打开详情面板查看方向、丢失模式等选项
典型工作流:先运行fm-list.sh截图查看当前列表,再通过fm-locate.sh <位置>定位特定项目,fm-play-sound.sh触发声音。
显著优点
1. 零凭证风险:不存储Apple ID,不调用第三方API,完全依赖本地已登录的Find My应用
2. 数据不出域:所有操作本地执行,截图仅存于/tmp/目录
3. 原生集成:直接操作官方应用,功能完整度与手动使用一致
4. 透明可控:UI自动化过程可见,用户可实时观察操作
潜在缺点与局限性
1. 严重无障碍限制:Find My不暴露项目名称到辅助功能API,无法按"钥匙""钱包"等名称选择,只能用位置序号(1st/2nd/3rd)
2. 坐标硬编码风险:侧边栏项目Y坐标按54px间隔计算(120, 174, 228...),界面布局变化会导致点击偏移
3. 独占控制冲突:运行时用户无法同时使用Mac,鼠标点击会被技能抢占
4. macOS独占:依赖Peekaboo+OpenClaw.app桥接,无跨平台方案
5. 应用必须前台:Find My需保持打开状态且为活跃窗口
6. 播放声音不可靠:按钮识别可能失败,需手动备用方案
适合人群
- 个人用户:已有macOS+AirTag生态,希望通过脚本快速定位个人物品
- 家庭共享成员:需要查看家人位置,但不想频繁手动打开应用
- 自动化爱好者:愿意接受坐标硬编码方案,构建定制化查找工作流
- 隐私敏感用户:拒绝第三方定位服务,坚持本地原生方案
常规风险
| 风险类型 | 描述 | 缓解措施 |
|---------|------|---------|
| 位置数据泄露 | 截图包含精确地理坐标 | 输出目录可控(`FM_OUTPUT_DIR`),及时清理 |
| UI误判 | 坐标偏移导致点击错误位置 | 运行前执行`fm-window.sh`刷新窗口位置 |
| 运行时冲突 | 自动化期间用户操作干扰 | 技能执行时避免手动操作Mac |
| 应用状态依赖 | Find My未打开或权限不足导致失败 | 确保OpenClaw.app已授权屏幕录制+辅助功能 |
| 家庭隐私边界 | 可访问共享家庭成员位置 | 仅限已建立家庭共享的账户使用 |