Findmy
Отслеживание устройств Apple и AirTag через FindMy.app на macOS.
Метаданные навыка
| Источник | Встроенный (установлен по умолчанию) |
| Путь | skills/apple/findmy |
| Версия | 1.0.0 |
| Автор | Hermes Agent |
| Лицензия | MIT |
| Платформы | macos |
| Теги | FindMy, AirTag, location, tracking, macOS, Apple |
Справочник: полный SKILL.md
Ниже — полное определение навыка, которое Hermes загружает при его активации. Именно этот текст агент получает в качестве инструкций, когда навык включён.
Find My (Apple)
Отслеживание устройств Apple и AirTag через FindMy.app на macOS. У Apple нет CLI для Find My, поэтому навык использует AppleScript для открытия приложения и снимки экрана для чтения расположения устройств.
Требования
- macOS с приложением Find My и активным сеансом iCloud
- Устройства и AirTag, уже зарегистрированные в Find My
- Разрешение на запись экрана для терминала (System Settings → Privacy → Screen Recording)
- Опционально, но рекомендуется: установить
peekabooдля более надёжной UI-автоматизации:brew install steipete/tap/peekaboo
Когда использовать
- Пользователь спрашивает «где мой [устройство/кот/ключи/сумка]?»
- Поиск местоположения AirTag
- Проверка расположения устройств (iPhone, iPad, Mac, AirPods)
- Мониторинг перемещения питомца или предмета со временем (маршруты патрулирования AirTag)
Метод 1: AppleScript + скриншот (базовый)
Открыть FindMy и перейти к нужному разделу
# Open Find My app
osascript -e 'tell application "FindMy" to activate'
# Wait for it to load
sleep 3
# Take a screenshot of the Find My window
screencapture -w -o /tmp/findmy.png
Затем проанализируй снимок с помощью vision_analyze:
vision_analyze(image_url="/tmp/findmy.png", question="What devices/items are shown and what are their locations?")
Переключение между вкладками
# Switch to Devices tab
osascript -e '
tell application "System Events"
tell process "FindMy"
click button "Devices" of toolbar 1 of window 1
end tell
end tell'
# Switch to Items tab (AirTags)
osascript -e '
tell application "System Events"
tell process "FindMy"
click button "Items" of toolbar 1 of window 1
end tell
end tell'
Метод 2: UI-автоматизация через Peekaboo (рекомендуется)
Если peekaboo установлен, используй его для более надёжного взаимодействия с интерфейсом:
# Open Find My
osascript -e 'tell application "FindMy" to activate'
sleep 3
# Capture and annotate the UI
peekaboo see --app "FindMy" --annotate --path /tmp/findmy-ui.png
# Click on a specific device/item by element ID
peekaboo click --on B3 --app "FindMy"
# Capture the detail view
peekaboo image --app "FindMy" --path /tmp/findmy-detail.png
Затем проанализируй через vision:
vision_analyze(image_url="/tmp/findmy-detail.png", question="What is the location shown for this device/item? Include address and coordinates if visible.")
Сценарий: отслеживание AirTag во времени
Для мониторинга AirTag (например, чтобы записать маршрут патрулирования кота):
# 1. Open FindMy to Items tab
osascript -e 'tell application "FindMy" to activate'
sleep 3
# 2. Click on the AirTag item (stay on page — AirTag only updates when page is open)
# 3. Periodically capture location
while true; do
screencapture -w -o /tmp/findmy-$(date +%H%M%S).png
sleep 300 # Every 5 minutes
done
Каждый снимок анализируй через vision для извлечения координат — из них складывается маршрут.
Ограничения
- У FindMy нет CLI или API — только UI-автоматизация
- AirTag обновляет местоположение только пока страница Find My открыта на экране
- Точность определения местоположения зависит от количества устройств Apple поблизости в сети Find My
- Для снимков экрана нужно разрешение на запись экрана
- AppleScript-автоматизация может сломаться при обновлении macOS
Правила
- Держи приложение FindMy на переднем плане при отслеживании AirTag — при сворачивании обновления прекращаются
- Используй
vision_analyzeдля чтения содержимого скриншотов — не пытайся парсить пиксели напрямую - Для непрерывного отслеживания настрой cron-задачу, которая периодически делает снимки и записывает местоположения
- Соблюдай приватность — отслеживай только устройства и предметы, принадлежащие пользователю