Look up contacts from macOS Contacts.app. Use when resolving phone numbers to names, finding contact info, or searching the address book.
Install
npx skillscat add sundial-org/awesome-openclaw-skills/apple-contacts Install via the SkillsCat registry.
This skill queries macOS Contacts.app via AppleScript to look up contact information by phone number or name. It solves the problem of resolving phone numbers to names and retrieving contact details from the native address book. Developers should use it when building agents that need to access a user's macOS contact data for identification or information retrieval tasks.
Apple Contacts
Query Contacts.app via AppleScript.
Quick Lookups
# By phone (name only)
osascript -e 'tell application "Contacts" to get name of every person whose value of phones contains "+1XXXXXXXXXX"'
# By name
osascript -e 'tell application "Contacts" to get name of every person whose name contains "John"'
# List all
osascript -e 'tell application "Contacts" to get name of every person'Full Contact Info
⚠️ Don't use first person whose — buggy. Use this pattern:
# By phone
osascript -e 'tell application "Contacts"
set matches to every person whose value of phones contains "+1XXXXXXXXXX"
if length of matches > 0 then
set p to item 1 of matches
return {name of p, value of phones of p, value of emails of p}
end if
end tell'
# By name
osascript -e 'tell application "Contacts"
set matches to every person whose name contains "John"
if length of matches > 0 then
set p to item 1 of matches
return {name of p, value of phones of p, value of emails of p}
end if
end tell'Phone Lookup
⚠️ Exact string match required — must match stored format exactly.
| Stored | Search | Works? |
|---|---|---|
+1XXXXXXXXXX |
+1XXXXXXXXXX |
✅ |
+1XXXXXXXXXX |
XXXXXXXXXX |
❌ |
Try with +1 prefix first. If fails, search by name instead.
Name Search
- Case-insensitive
- Partial match with
contains - Exact match: use
isinstead ofcontains
Output
Returns comma-separated: name, phone1, [phone2...], email1, [email2...]
No match = empty output (not an error).