查找我的(Apple)
通过 macOS 上的 FindMy.app 追踪 Apple 设备和 AirTag。由于 Apple 未提供 FindMy 的 CLI,此技能使用 AppleScript 打开应用并通过截屏读取设备位置。
前提条件
- macOS,已登录 iCloud 并安装“查找我的”应用
- 设备/AirTag 已在“查找我的”中注册
- 为终端授予屏幕录制权限(系统设置 → 隐私与安全性 → 屏幕录制)
- 可选但推荐:安装
peekaboo以获得更好的 UI 自动化:brew install steipete/tap/peekaboo
使用时机
- 用户询问“我的 [设备/猫/钥匙/包] 在哪里?”
- 追踪 AirTag 位置
- 查看设备位置(iPhone、iPad、Mac、AirPods)
- 随时间监控宠物或物品移动(AirTag 巡逻路线)
方法 1:AppleScript + 截屏(基础)
打开“查找我的”并导航
# 打开“查找我的”应用
osascript -e 'tell application "FindMy" to activate'
# 等待加载
sleep 3
# 截取“查找我的”窗口
screencapture -w -o /tmp/findmy.png
然后使用 vision_analyze 读取截屏:
vision_analyze(image_url="/tmp/findmy.png", question="显示了哪些设备/物品?它们的位置在哪里?")
切换标签页
# 切换至“设备”标签页
osascript -e '
tell application "System Events"
tell process "FindMy"
click button "Devices" of toolbar 1 of window 1
end tell
end tell'
# 切换至“物品”标签页(AirTag)
osascript -e '
tell application "System Events"
tell process "FindMy"
click button "Items" of toolbar 1 of window 1
end tell
end tell'
方法 2:Peekaboo UI 自动化(推荐)
如果已安装 peekaboo,可用它进行更可靠的 UI 交互:
# 打开“查找我的”
osascript -e 'tell application "FindMy" to activate'
sleep 3
# 捕获并标注 UI
peekaboo see --app "FindMy" --annotate --path /tmp/findmy-ui.png
# 通过元素 ID 点击特定设备/物品
peekaboo click --on B3 --app "FindMy"
# 捕获详情视图
peekaboo image --app "FindMy" --path /tmp/findmy-detail.png
然后使用视觉分析:
vision_analyze(image_url="/tmp/findmy-detail.png", question="此设备/物品显示的位置是什么?包括地址和坐标(如果可见)。")
工作流:随时间追踪 AirTag 位置
用于监控 AirTag(例如追踪猫的巡逻路线):
# 1. 打开“查找我的”至“物品”标签页
osascript -e 'tell application "FindMy" to activate'
sleep 3
# 2. 点击 AirTag 物品(停留在页面——AirTag 仅在页面打开时更新)
# 3. 定期捕获位置
while true; do
screencapture -w -o /tmp/findmy-$(date +%H%M%S).png
sleep 300 # 每 5 分钟
done
使用视觉分析器分析每张截屏以提取坐标,然后编译路线。
局限性
- FindMy 没有 CLI 或 API——必须使用 UI 自动化
- AirTag 仅在“查找我的”页面处于活动显示状态时更新位置
- 位置精度取决于查找网络中的附近 Apple 设备
- 需要屏幕录制权限才能截屏
- AppleScript UI 自动化在不同 macOS 版本间可能失效
规则
- 追踪 AirTag 时将“查找我的”应用保持在前台(最小化时更新停止)
- 使用
vision_analyze读取截屏内容——不要尝试解析像素 - 对于持续追踪,使用 cron 作业定期捕获并记录位置
- 尊重隐私——仅追踪用户拥有的设备/物品