Look up contacts from macOS Contacts.app. Use when: resolving phone numbers to names, finding contact info, or searching the address book. NOT for: non-macOS systems or third-party contact apps.
Query Contacts.app via AppleScript.
# 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'
⚠️ 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'
⚠️ 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.
containsis instead of containsReturns comma-separated: name, phone1, [phone2...], email1, [email2...]
No match = empty output (not an error).