Findmy — Track Apple devices/AirTags via FindMy
Findmy
Section titled “Findmy”Track Apple devices/AirTags via FindMy.app on macOS.
Skill metadata
Section titled “Skill metadata”| Source | Bundled (installed by default) |
| Path | skills/apple/findmy |
| Version | 1.0.0 |
| Author | Hermes Agent |
| License | MIT |
| Platforms | macos |
| Tags | FindMy, AirTag, location, tracking, macOS, Apple |
Reference: full SKILL.md
Section titled “Reference: full SKILL.md”The following is the complete skill definition that Hermes loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.
Find My (Apple)
Section titled “Find My (Apple)”Track Apple devices and AirTags via the FindMy.app on macOS. Since Apple doesn’t provide a CLI for FindMy, this skill uses AppleScript to open the app and screen capture to read device locations.
Prerequisites
Section titled “Prerequisites”- macOS with Find My app and iCloud signed in
- Devices/AirTags already registered in Find My
- Screen Recording permission for terminal (System Settings → Privacy → Screen Recording)
- Optional but recommended: Install
peekaboofor better UI automation:brew install steipete/tap/peekaboo
When to Use
Section titled “When to Use”- User asks “where is my [device/cat/keys/bag]?”
- Tracking AirTag locations
- Checking device locations (iPhone, iPad, Mac, AirPods)
- Monitoring pet or item movement over time (AirTag patrol routes)
Method 1: AppleScript + Screenshot (Basic)
Section titled “Method 1: AppleScript + Screenshot (Basic)”Open FindMy and Navigate
Section titled “Open FindMy and Navigate”# Open Find My apposascript -e 'tell application "FindMy" to activate'
# Wait for it to loadsleep 3
# Take a screenshot of the Find My windowscreencapture -w -o /tmp/findmy.pngThen use vision_analyze to read the screenshot:
vision_analyze(image_url="/tmp/findmy.png", question="What devices/items are shown and what are their locations?")Switch Between Tabs
Section titled “Switch Between Tabs”# Switch to Devices tabosascript -e 'tell application "System Events" tell process "FindMy" click button "Devices" of toolbar 1 of window 1 end tellend 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 tellend tell'Method 2: Peekaboo UI Automation (Recommended)
Section titled “Method 2: Peekaboo UI Automation (Recommended)”If peekaboo is installed, use it for more reliable UI interaction:
# Open Find Myosascript -e 'tell application "FindMy" to activate'sleep 3
# Capture and annotate the UIpeekaboo see --app "FindMy" --annotate --path /tmp/findmy-ui.png
# Click on a specific device/item by element IDpeekaboo click --on B3 --app "FindMy"
# Capture the detail viewpeekaboo image --app "FindMy" --path /tmp/findmy-detail.pngThen analyze with 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.")Workflow: Track AirTag Location Over Time
Section titled “Workflow: Track AirTag Location Over Time”For monitoring an AirTag (e.g., tracking a cat’s patrol route):
# 1. Open FindMy to Items tabosascript -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 locationwhile true; do screencapture -w -o /tmp/findmy-$(date +%H%M%S).png sleep 300 # Every 5 minutesdoneAnalyze each screenshot with vision to extract coordinates, then compile a route.
Limitations
Section titled “Limitations”- FindMy has no CLI or API — must use UI automation
- AirTags only update location while the FindMy page is actively displayed
- Location accuracy depends on nearby Apple devices in the FindMy network
- Screen Recording permission required for screenshots
- AppleScript UI automation may break across macOS versions
- Keep FindMy app in the foreground when tracking AirTags (updates stop when minimized)
- Use
vision_analyzeto read screenshot content — don’t try to parse pixels - For ongoing tracking, use a cronjob to periodically capture and log locations
- Respect privacy — only track devices/items the user owns