From openclaw-findmy
Queries Find My friend locations on macOS via OCR of the FindMy.app sidebar. Returns name, coarse location, staleness, and distance for each person. Use when the user asks "where is X", "is X home", or "how far is X".
How this skill is triggered — by the user, by Claude, or both
Slash command
/openclaw-findmy:findmyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Wraps the `findmy` CLI bundled with this plugin. The CLI drives FindMy.app:
Wraps the findmy CLI bundled with this plugin. The CLI drives FindMy.app:
activates it, switches to the People tab, screencaptures the window, runs
Vision OCR, and parses the sidebar.
# List everyone in the sidebar (default: human-readable table)
bash "${CLAUDE_PLUGIN_ROOT}/scripts/findmy.sh" people
# Same, as JSON — best for programmatic follow-up
bash "${CLAUDE_PLUGIN_ROOT}/scripts/findmy.sh" people --json
# Lookup a single friend (name match is case-insensitive, substring OK)
bash "${CLAUDE_PLUGIN_ROOT}/scripts/findmy.sh" person "Omar Shahine" --json
The wrapper auto-builds bin/findmy and bin/findmy-helper on first run via
make (needs Go 1.22+ and Xcode Command Line Tools). Subsequent runs just
exec the binary.
[
{
"name": "Omar Shahine",
"location": "Redmond, WA",
"staleness": "Paused",
"distance": "7 mi"
}
]
name — display name as shown in the FindMy sidebarlocation — city, state (or device label when sharing from a device)staleness — "Now", "X min. ago", "X hr. ago", "Paused", "" (live)distance — distance from this Mac if FindMy shows it (e.g. "7 mi", "1,971 mi")staleness: "Paused" means the friend has paused location sharing. The
reported location is the last known position, possibly hours or days old.
Lead with this when reporting the result.caffeinate -u -t 3
before each capture. If running on a truly headless Mac, ensure a display
(real or dummy USB-C plug) is attached — FindMy.app needs WindowServer
compositing.findmy invocations within ~5s can fail with
"could not create image from window" — space them out.Grant to the terminal emulator (or to the host process running this skill):
After granting, fully quit and relaunch the host — TCC is read once at
process start. The CLI's findmy-helper permissions subcommand can verify:
"${CLAUDE_PLUGIN_ROOT}/bin/findmy-helper" permissions
# → {"accessibility":true,"screenRecording":true}
npx claudepluginhub omarshahine/findmy-cliControls macOS GUI applications via mouse automation, keyboard input, screenshots, image recognition, and AppleScript execution.
Automates macOS apps via Apple Events using AppleScript (discovery), JXA (legacy), and PyXA (modern Python). Use when asked to "automate Mac apps", "write AppleScript", "JXA scripting", "osascript automation", or "PyXA Python automation". Foundation skill for all macOS app automation.
Diagnoses macOS issues: kernel panics, failing drives, slow boot, TCC permission denials, APFS snapshot bloat, wake failures, launchd audits, and startup item triage via logs, diskutil, and sysdiagnose.