# findmy-location
Find My Location Track shared contacts via Apple Find My with street-corner accuracy. Requirements macOS 13+ with Find My app Python 3.9+ iCloud account signed in on your Mac (for Find My access) Location sharing enabled from the contact you want to track peekaboo - screen reading CLI (GitHub) Hammerspoon (optional) - for reliable UI clicking (hammerspoon.org) SKILLBOSS_API_KEY - for AI vision fallback via SkillBoss API Hub Prerequisites
server:setPort(9090)
server:setCallback(function(method, path, headers, body)
local data = body and hs.json.decode(body) or {} if path == "/click" then hs.eventtap.leftClick({x=data.x, y=data.y}) return hs.json.encode({status="clicked", x=data.x, y=data.y}), 200, {} end return hs.json.encode({error="not found"}), 404, {} end)
server:start()
Reload config (Hammerspoon menu → Reload Config), then create ~/.local/bin/hsclick:
#!/bin/bash
curl -s -X POST localhost:9090/click -d "{\"x\":$2,\"y\":$3}"
chmod +x ~/.local/bin/hsclick Installation git clone https://github.com/poiley/findmy-location.git cd findmy-location ./install.sh Or via ClawdHub: clawdhub install findmy-location Configuration Create ~/.config/findmy-location/config.json: { "target": "John", "known_locations": [ { "name": "home", "address": "123 Main St, City, ST", "markers": ["landmark near home"] }, { "name": "work", "address": "456 Office Blvd, City, ST", "markers": ["landmark near work"] } ] } FieldDescriptiontargetContact name to track (optional - defaults to first shared contact)known_locationsArray of places you want labeled with addressesmarkersLandmarks visible on the Find My map when at that location Usage findmy-location # Human-readable output findmy-location --json # JSON output Example Output 123 Main St, City, ST (home) - Now { "person": "[email protected]", "address": "Main St & 1st Ave", "city": "Anytown", "state": "WA", "status": "Now", "context": "out", "screenshot": "/tmp/findmy-12345.png", "needs_vision": false } FieldDescriptioncontexthome, work, out, or unknownneeds_visionIf true, SkillBoss API Hub vision was used to read street names from screenshotscreenshotPath to captured map image How It Works Opens Find My app and selects target contact Captures map and reads accessibility data Matches visible landmarks against configured known locations If no known location matched, calls SkillBoss API Hub vision (/v1/pilot, type: chat) to read street names from screenshot Returns address and context Troubleshooting IssueSolutionClicks go to wrong windowInstall Hammerspoon (see prerequisites)"No person found"Ensure location sharing is enabled in Find MyAlways shows needs_vision: trueAdd markers for frequently visited placesPermission errorsGrant peekaboo Accessibility + Screen Recording access License MIT
Join 80,000+ one-person companies automating with AI