Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Query Find My locations and battery status for family devices via iCloud.
.claude/skills/sundial-org-icloud-findmy/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 58% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -25% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -25% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-17 | ✗→✓ | ▲ Improved | -23% | 0% |
Access Find My device locations and battery status via the iCloud CLI (pyicloud).
bashbrew install pipx pipx install pyicloud
Ask the user for their Apple ID, then run:
bashicloud --username their.email@example.com --with-family --list
They'll need to enter their password and complete 2FA. The session will be saved and lasts 1-2 months.
Add the Apple ID to your TOOLS.md or workspace config so you remember it for future queries:
markdown## iCloud Find My Apple ID: their.email@example.com
bashicloud --username APPLE_ID --with-family --list
Output format:
------------------------------
Name - Liam's iPhone
Display Name - iPhone 15 Pro
Location - {'latitude': 52.248, 'longitude': 0.761, 'timeStamp': 1767810759054, ...}
Battery Level - 0.72
Battery Status - NotCharging
Device Class - iPhone
------------------------------Parsing tips:
------------------------------eval() or parse with regex)latitude, longitude, timeStamp (milliseconds), horizontalAccuracyFind a specific device by grepping the output:
bashicloud --username APPLE_ID --with-family --list | grep -A 10 "iPhone"
Extract and format location data:
bashicloud --username APPLE_ID --with-family --list | \ grep -A 10 "Device Name" | \ grep "Location" | \ sed "s/Location.*- //"
Then parse the Python dict string with Python or extract coordinates with regex.
bashicloud --username APPLE_ID --with-family --list | \ grep -A 10 "Device Name" | \ grep "Battery Level"
Device names come from iCloud and may include:
Use case-insensitive matching and normalize apostrophes if needed.
Check battery before going out:
bash# Get battery for specific device icloud --username ID --with-family --list | \ grep -B 2 -A 5 "iPhone" | \ grep "Battery Level"
Get current location:
bash# Extract location dict and parse coordinates icloud --username ID --with-family --list | \ grep -A 10 "iPhone" | \ grep "Location" | \ sed "s/.*- //" | \ python3 -c "import sys; loc = eval(sys.stdin.read()); print(f\"{loc['latitude']}, {loc['longitude']}\")"
Check if device is charging:
bashicloud --username ID --with-family --list | \ grep -A 10 "iPhone" | \ grep "Battery Status"
Authentication errors:
No location available:
Device not found:
--listOther measured skills in the registry, with their headline benchmark lift.