Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add rcantarelli11/shared-skills --skill "apple-contacts"
Install specific skill from multi-skill repository
# Description
Look up contacts from macOS Contacts.app. Use when resolving phone numbers to names, finding contact info, or searching the address book.
# SKILL.md
name: apple-contacts
description: Look up contacts from macOS Contacts.app. Use when resolving phone numbers to names, finding contact info, or searching the address book.
metadata: {"clawdbot":{"emoji":"π€","os":["darwin"]}}
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).
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.