From sundial-org-awesome-openclaw-skills-4
Queries macOS Contacts.app via AppleScript for phone-to-name resolution, contact info lookup, and address book searches.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sundial-org-awesome-openclaw-skills-4:apple-contactsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Query Contacts.app via AppleScript.
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).
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-2 --plugin sundial-org-awesome-openclaw-skills-4Automates macOS Contacts via JXA with AppleScript dictionary discovery. Use when asked to "automate contacts", "JXA contacts automation", "macOS address book scripting", "AppleScript contacts", or "Contacts app automation". Covers querying, CRUD, multi-value fields, groups, images, and ObjC bridge fallbacks.
Retrieves email and phone details by name from local JSON contacts or CRM. Handles single/multiple/no matches, always confirms with user before use in scheduling or messaging.
Retrieves email and phone details by name from local JSON contacts or CRM. Handles single/multiple/no matches, always confirms with user before use in scheduling or messaging.