openclaw/skills/findmy-locate/SKILL.md
Locate Dylan, Julia, or both using Apple FindMy. Returns a screenshot of their map location. Use when asked "where is Dylan/Julia", "find Dylan/Julia", "locate someone", or anything about someone's physical location.
npx skillsauth add Dbochman/dotfiles findmy-locateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Locate people using Apple Find My app via Peekaboo screen automation. Returns a screenshot of the zoomed map view showing the person's location pin.
findmy-locate dylan # Dylan Bochman
findmy-locate julia # Julia Jennings
findmy-locate me # clawdbotbochman (Mac Mini)
findmy-locate both # Dylan + Julia (two screenshots)
Returns JSON with the screenshot path:
{"success": true, "person": "Dylan Bochman", "capture": "/path/to/screenshot.png", "size": 285432}
For both, returns an array:
{"results": [{"success": true, "person": "Dylan Bochman", ...}, {"success": true, "person": "Julia Jennings", ...}]}
The screenshot shows FindMy's zoomed map view centered on the person's location pin. Read the screenshot image to determine:
| Position | Name | Notes | |----------|------|-------| | 0 | Me (clawdbotbochman) | The Mac Mini itself — always at home | | 1 | Dylan Bochman | | | 2 | Julia Jennings | |
The sidebar order matters — the script navigates via keyboard arrow keys.
peekaboo image --mode frontmostNavigation is relative. After reset, the cursor starts at position 0. Each _navigate_and_capture call moves Down by a step count relative to the current cursor position — it does NOT reset between captures. This is why both works in a single pass: reset → Down 1 (Dylan, capture) → Down 1 more (Julia, capture).
FindMy blocks mouse clicks — accessibility API clicks are silently ignored. Keyboard arrow keys via Peekaboo are the only reliable way to navigate the sidebar.
If the People tab isn't showing (Items or Devices tab is active), keyboard navigation won't reach the people list. The script assumes People is the active tab. If captures consistently fail, manually click the People tab once on the Mini.
/opt/homebrew/bin/peekaboo) with TCC grants:
~/Applications/Peekaboo.app — TCC wrapper that holds the grantsCaptures are saved to ~/.openclaw/findmy-locate/ with the pattern:
findmy-<name>-<unix_timestamp>.png
Old captures are not automatically cleaned. Periodically prune:
find ~/.openclaw/findmy-locate/ -name "*.png" -mtime +7 -delete
Screen Recording or Accessibility not granted to Peekaboo.app. Open System Settings > Privacy & Security on the Mini and grant both.
Peekaboo captured an empty or partial window. FindMy may not be fully loaded. Try again — the script has fallbacks for Desktop-saved screenshots.
The sidebar order may have changed (e.g., new person added to FindMy). Update the position constants in the script.
FindMy must be the frontmost app and the People tab must be active. If Items or Devices tab is showing, manually switch to People first.
After capturing someone's location, consider whether the places skill (goplaces CLI) would be useful. Common follow-ups:
goplaces search "restaurants" --lat=<lat> --lng=<lng> to find nearby placesgoplaces directions <their location> "19 Crosstown Ave, West Roxbury MA" for travel timegoplaces search "coffee" --lat=<lat> --lng=<lng> --open-nowgoplaces details <place_id> for area contextRead the FindMy screenshot to estimate coordinates or identify the neighborhood, then pass that to goplaces for structured place data, directions, or recommendations.
This skill locates people via FindMy screenshots. It does NOT:
fi-collar for Potato's GPS)presence skill for WiFi-based detection)For related tasks:
development
Search the web for current information, news, facts, and answers. Use when asked questions about current events, needing to look something up, finding websites, researching topics, or when you need up-to-date information beyond your training data.
development
Summarize any URL, YouTube video, podcast, PDF, or file into concise text. Use when asked to read an article, summarize a link, get the gist of a video or podcast, extract content from a URL, or when you need to understand what a web page or document contains.
development
Play music via Spotify and control Google Home speakers. Use when asked to play music, songs, artists, playlists, podcasts, or control speakers/volume/audio.
testing
Create new OpenClaw skills, modify and improve existing skills, and measure skill performance with evals. Use when users want to create a skill from scratch, update or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy. Also use when asked to "make a skill", "turn this into a skill", "improve this skill", or "test this skill".