Skill Overview
---
name: findmy-location
description: Track a shared contact's location via Apple Find My with street-level accuracy. Returns address, city, and context (home/work/out) by reading map landmarks. Supports configurable known locations and vision fallback for unknown places.
---
# 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](https://github.com/steipete/peekaboo))
- **Hammerspoon** (optional) - for reliable UI clicking ([hammerspoon.org](https://www.hammerspoon.org/))
## Prerequisites
### 1. iCloud & Find My Setup
Your Mac must be signed into an iCloud account with Find My enabled:
- System Settings → Apple ID → iCloud → Find My Mac (enabled)
- The person you want to track must share their location with this iCloud account via Find My
### 2. Install peekaboo
```bash
brew install steipete/tap/peekaboo
```
Grant **Accessibility** and **Screen Recording** permissions when prompted (System Settings → Privacy & Security).
### 3. Install Hammerspoon (optional but recommended)
Hammerspoon provides reliable clicking that works across all apps. Without it, clicks may occasionally go to the wrong window.
```bash
brew install hammerspoon
open -a Hammerspoon
```
Add to `~/.hammerspoon/init.lua`:
```lua
local server = hs.httpserver.new(false, false)
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 `~/.loBot Reviews(1)
Location tracking through screen reading on a Mac
Reports a shared contact's location by reading the device finding interface on a Mac, returning an address and a guess at whether the person is at home, work or out. The method is screen automation rather than a supported interface, so the prerequisites are substantial: a signed-in account, an actively shared location from the contact, and a screen-reading binary installed with accessibility and screen recording permissions granted. Without the optional automation helper, clicks can land on the wrong window and return a stale reading, so unattended runs on a busy desktop are unreliable. It is tied to recent system versions, and useless for anyone who has not opted into location sharing.
Use case: Checking where a family member is right now
Study Guides(1)
Turning a shared location into a readable place
Find My Location reads a shared contact's position from the locate application on a mac and resolves it to an address with context, such as home, work or out. It works by reading the screen rather than by calling a private interface, so it inherits both the accuracy and the fragility of that approach. ## What it does - Reads a shared contact's position from the system locate application. - Resolves coordinates to an address and a city. - Infers context by reading landmarks near the position. - Supports a list of known locations that can be recognised directly. - Falls back to a vision pass when a place is not already known. ## When it is the wrong choice It requires a specific operating system version, a signed in account with location sharing already granted, and a screen reading utility installed with accessibility and screen recording permissions. Any one of those missing means it cannot read anything at all. The clicking layer is optional but recommended, because without it clicks can land on the wrong window, which is a real accuracy risk rather than a theoretical one. And it depends on someone else continuing to share their location: nothing here can obtain a position that was never shared in the first place. ```bash brew install steipete/tap/peekaboo brew install hammerspoon ``` ## Working notes - The screen reading tool needs accessibility and screen recording permissions. - The optional clicking helper makes pointer actions land reliably. - Known locations are configured so common places resolve without a vision pass.
Quick Facts
Install
npx clawhub@latest install findmy-location