with one click
contacts-assistant
Look up, search, and create contacts in Contacts.app.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Look up, search, and create contacts in Contacts.app.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Find and act on emails over IMAP with Mail.app closed. Discover which accounts are logged in, search, read contents, download attachments, draft new mail, mark read/unread, archive, and move to trash.
Automate web interactions for bookings, form submissions, and purchases using ARIA-based Safari control.
View and manage calendar events with smart scheduling defaults.
Organize the ~/Downloads folder by categorizing files and subdirectories into subfolders using AI-driven analysis.
Generate images from text descriptions using models with native image generation (e.g. Gemini).
Send iMessages and search message history via Messages.app and chat.db.
| id | contacts_assistant |
| name | Contacts Assistant |
| description | Look up, search, and create contacts in Contacts.app. |
| apps | ["Contacts"] |
| tasks | ["search_contacts","get_contact","create_contact","list_contact_groups"] |
| essential_tasks | [] |
| keywords | ["kontakt","kontakte","adressbuch","telefonnummer"] |
| examples | ["What's Joe's phone number?","Find contacts at Acme Corp","Look up Sarah's email address","Add a new contact for John Smith","Show me all contact groups"] |
| safe_defaults | {"limit":20} |
| confirm_before_write | ["create contact"] |
| requires_permissions | ["Automation:Contacts"] |
whose clause and is near-instant.whose (fast).search_contacts to find the person first (returns summary: name, primary email/phone).get_contact with the exact name to fetch the full card (all emails, phones, addresses, notes, birthday, groups).first_name is required; all other fields are optional.list_contact_groups to see available groups before assigning contacts.search_contacts(name="X") → get_contact(name="X")search_contacts(organization="Acme")create_contact(first_name="John", last_name="Smith", ...)list_contact_groups()