Prismer execution contract
This is the uniquely named prismer-findmy skill, adapted from Hermes.
Use the actual tools exposed by the executing host; examples using terminal,
process, delegate_task, vision_analyze or browser_* are not tool registrations.
Missing dependencies do not hide this skill. Report command startup, version,
account/permissions and task-specific live verification separately. Use task-owned
artifact paths and existing user authorization; do not change shared accounts,
Runtime/provider configuration, global security settings or unrelated work.
See NOTICE.md and LICENSE for resource provenance. Runtime availability and
upstream-entry suppression are owned by the integration layer.
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
Run python3 "$SKILL_ROOT/scripts/readiness.py" findmy. This does not open the
app or prove Screen Recording, Accessibility, Automation or iCloud readiness.
Inspect live UI labels/elements in the user's locale; English labels below are
illustrations, not stable selectors. Use only the user-authorized device.
- 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
- 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)
Open FindMy and Navigate
bash# 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 # WINDOW_ID must be the verified numeric Find My window, not a guessed value. TASK_CAPTURE_DIR=$(mktemp -d "${TMPDIR:-/tmp}/prismer-findmy.XXXXXX") screencapture -x -l "$WINDOW_ID" "$TASK_CAPTURE_DIR/findmy.png"
Then use vision_analyze to read the screenshot:
vision_analyze(image_url="$TASK_CAPTURE_DIR/findmy.png", question="What devices/items are shown and what are their locations?")
Switch Between Tabs
bash# 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'
Method 2: Peekaboo UI Automation (Recommended)
If peekaboo is installed, use it for more reliable UI interaction:
bash# Open Find My osascript -e 'tell application "FindMy" to activate' sleep 3 # Capture and annotate the UI peekaboo see --app "FindMy" --annotate --path $TASK_CAPTURE_DIR/findmy-ui.png # Click on a specific device/item by element ID peekaboo click --on "$VERIFIED_ELEMENT_ID" --app "FindMy" # Capture the detail view peekaboo image --app "FindMy" --path $TASK_CAPTURE_DIR/findmy-detail.png
Then analyze with vision:
vision_analyze(image_url="$TASK_CAPTURE_DIR/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
For monitoring an AirTag (e.g., tracking a cat's patrol route):
bash# 1. Open FindMy to Items tab osascript -e 'tell application "FindMy" to activate' sleep 3 # 2. Select the exact item and read its displayed update time. # 3. One sample per authorized, time-bounded Prismer scheduler invocation. screencapture -x -l "$WINDOW_ID" "$TASK_CAPTURE_DIR/findmy-$(date +%Y%m%dT%H%M%S)-$$.png"
Read only coordinates actually visible; never infer precise GPS from an address or map pin. Record timestamp/accuracy and retain only the user-authorized interval. Do not compile a route unless requested.
Limitations
- FindMy has no CLI or API — must use UI automation
- Background refresh depends on OS/device state; report the displayed update time
- 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
Rules
- Observe actual refresh behavior; do not promise foreground/background timing
- Use
vision_analyzeto read screenshot content — don't try to parse pixels - For requested ongoing tracking, use the actual Prismer scheduler with an explicit duration and retention limit
- Respect privacy — only track devices/items the user owns


