apple-contacts
Search and view Apple Contacts from the command line using apple-contacts CLI. Use when asked to search, list, show, or export contacts, find birthdays, browse contact groups, or look up people by name, email, phone, organization, or address. Read-only access using Apple's native Contacts Framework for fast, reliable lookups.
Best use case
apple-contacts is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Search and view Apple Contacts from the command line using apple-contacts CLI. Use when asked to search, list, show, or export contacts, find birthdays, browse contact groups, or look up people by name, email, phone, organization, or address. Read-only access using Apple's native Contacts Framework for fast, reliable lookups.
Teams using apple-contacts should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/apple-contacts/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How apple-contacts Compares
| Feature / Agent | apple-contacts | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Search and view Apple Contacts from the command line using apple-contacts CLI. Use when asked to search, list, show, or export contacts, find birthdays, browse contact groups, or look up people by name, email, phone, organization, or address. Read-only access using Apple's native Contacts Framework for fast, reliable lookups.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Apple Contacts Search and view your Apple Contacts from the command line using the `apple-contacts` CLI. This skill provides fast, read-only access to your contacts using Apple's native Contacts Framework. **Key Features:** - **Native framework**: Uses Apple's Contacts Framework for direct, fast access - **Multi-criteria search**: Filter by name, email, phone, organization, address, birthday - **vCard export**: Export contacts in standard vCard format - **Group management**: Browse and search contact groups - **JSON output**: Machine-readable output for automation ## Setup & Configuration ### Installation From source: ```bash git clone https://github.com/fishfisher/apple-contacts.git cd apple-contacts && swift build -c release cp .build/release/apple-contacts /usr/local/bin/ ``` Or download a binary from the [releases page](https://github.com/fishfisher/apple-contacts/releases). Verify installation: ```bash apple-contacts --help ``` **First Run:** macOS will prompt for Contacts access permission on first use. Grant access to enable the CLI. ### Requirements - macOS 14.0 or later - Swift 6.0 or later (for building from source) - Contacts app permission ## Quick Start ```bash # List all contacts apple-contacts list # Search for a contact by name apple-contacts search "John" # Show full contact details apple-contacts show "John Smith" # Search by email apple-contacts search --email "john@example.com" # Search by phone number apple-contacts search --phone "555-1234" # Find contacts with birthdays this month apple-contacts search --birthday-month 1 # List all contact groups apple-contacts groups # Export contact to vCard apple-contacts export "John Smith" ``` ## Core Capabilities ### 1. List All Contacts Display all contacts in your address book: ```bash # List all contacts apple-contacts list # Limit results apple-contacts list --limit 20 # Output as JSON apple-contacts list --json ``` ### 2. Search Contacts Find contacts using various criteria. Multiple filters use AND logic. ```bash # Search by name (partial match) apple-contacts search "John" apple-contacts search "Smith" # Search by email apple-contacts search --email "gmail.com" apple-contacts search --email "john@example.com" # Search by phone number apple-contacts search --phone "555" apple-contacts search --phone "+1-555-123-4567" # Search by organization apple-contacts search --org "Acme" apple-contacts search --org "Apple" # Search by address apple-contacts search --address "San Francisco" apple-contacts search --address "CA" # Search any field apple-contacts search --any "keyword" # Combine filters (AND logic) apple-contacts search "John" --org "Apple" apple-contacts search --email "gmail.com" --address "New York" # Limit results apple-contacts search "John" --limit 5 # Output as JSON apple-contacts search "John" --json ``` ### 3. Show Contact Details Display complete information for a specific contact: ```bash # Show contact by name apple-contacts show "John Smith" # Output as JSON apple-contacts show "John Smith" --json ``` Shows all available fields including: - Full name and nickname - Phone numbers (with labels) - Email addresses (with labels) - Physical addresses - Organization and job title - Birthday - Social profiles - URLs ### 4. Birthday Search Find contacts with birthdays: ```bash # Find contacts with birthday on specific date (MM-DD format) apple-contacts search --birthday 01-15 # Find contacts with birthdays this month apple-contacts search --birthday-month 1 # Find December birthdays apple-contacts search --birthday-month 12 # Combine with other filters apple-contacts search --birthday-month 6 --org "Family" ``` ### 5. Contact Groups Browse and work with contact groups: ```bash # List all groups apple-contacts groups # Output as JSON apple-contacts groups --json ``` ### 6. Export to vCard Export contacts in vCard format for sharing or backup: ```bash # Export single contact apple-contacts export "John Smith" # Save to file apple-contacts export "John Smith" > john-smith.vcf ``` ## Output Formats ### Default (Human-Readable) ``` John Smith Email: john@example.com (work) Phone: +1-555-123-4567 (mobile) Organization: Acme Corp ``` ### JSON Output Use `--json` flag for machine-readable output: ```bash apple-contacts search "John" --json apple-contacts show "John Smith" --json apple-contacts list --json apple-contacts groups --json ``` JSON output is useful for: - Scripting and automation - Integration with other tools - Data processing pipelines ## Common Workflows ### Find a Contact's Phone Number ```bash # Quick search apple-contacts search "Jane" # Or show full details apple-contacts show "Jane Doe" ``` ### Find Work Colleagues ```bash # Search by company apple-contacts search --org "MyCompany" # Search by work email domain apple-contacts search --email "@mycompany.com" ``` ### Birthday Reminders ```bash # Find this month's birthdays apple-contacts search --birthday-month $(date +%m) # Find today's birthdays apple-contacts search --birthday $(date +%m-%d) ``` ### Lookup by Email ```bash # Find who owns an email address apple-contacts search --email "unknown@example.com" ``` ### Find Local Contacts ```bash # Search by city apple-contacts search --address "San Francisco" # Search by state apple-contacts search --address "California" ``` ### Export for Sharing ```bash # Export contact to vCard file apple-contacts export "John Smith" > ~/Desktop/john.vcf # Share multiple contacts for name in "John Smith" "Jane Doe"; do apple-contacts export "$name" >> ~/Desktop/contacts.vcf done ``` ## Limitations - **Read-only**: Cannot create, edit, or delete contacts (use Contacts.app for modifications) - **macOS only**: Requires macOS 14.0 or later - **Notes field**: Accessing contact notes requires special Apple entitlements (not available) - **Permission required**: Must grant Contacts access on first run ## Troubleshooting ### "Contacts access denied" error - Go to System Settings > Privacy & Security > Contacts - Enable access for Terminal (or your terminal app) - Restart the terminal ### Contact not found - Try a partial name: `apple-contacts search "Jo"` instead of "John Smith" - Check spelling - Use `apple-contacts list` to see all contacts ### Permission prompt not appearing - Run any command to trigger the prompt: `apple-contacts list` - If still no prompt, manually enable in System Settings > Privacy & Security > Contacts ### Empty results - Ensure Contacts.app has contacts (check the app directly) - Verify permissions are granted - Try broader search terms ## Resources - [apple-contacts GitHub](https://github.com/fishfisher/apple-contacts) - [Apple Contacts Framework Documentation](https://developer.apple.com/documentation/contacts)
Related Skills
applescript
Expert in AppleScript and JavaScript for Automation (JXA) for macOS system scripting. Specializes in secure script execution, application automation, and system integration. HIGH-RISK skill due to shell command execution and system-wide control capabilities.
apple-shortcuts
Use when working with Apple Shortcuts on macOS/iOS - discovering actions, extension apps, running shortcuts from CLI, or integrating with automation workflows.
apple-notes
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks Clawdbot to add a note, list notes, search notes, or manage note folders.
apple-developer-toolkit
All-in-one Apple developer skill with three integrated tools shipped as a single unified binary. (1) Documentation search across Apple frameworks, symbols, and 1,267 WWDC sessions from 2014-2025. No credentials needed. (2) App Store Connect CLI with 120+ commands covering builds (find/wait/upload), TestFlight, pre-submission validate, submissions, signing, subscriptions (family-sharable), IAP, analytics, Xcode Cloud, metadata workflows, release pipeline dashboard, insights, win-back offers, promoted purchases, product pages, nominations, accessibility declarations, pre-orders, pricing filters, localizations update, diff, webhooks with local receiver, workflow automation, and more. Requires App Store Connect API key. (3) Multi-platform app builder (iOS/watchOS/tvOS/iPad/macOS/visionOS) that generates complete Swift/SwiftUI apps from natural language with auto-fix, simulator launch, interactive chat mode, and open-in-Xcode. Requires an LLM API key and Xcode. Includes 38 iOS development rules and 12 SwiftUI best practice guides for Liquid Glass, navigation, state management, and modern APIs. All three tools ship as one binary (appledev). USE WHEN: Apple API docs, App Store Connect management, WWDC lookup, or building iOS/watchOS/tvOS/macOS/visionOS apps from scratch. DON'T USE WHEN: non-Apple platforms or general coding.
apple-platforms
Build apps for macOS, iPadOS, watchOS, and visionOS with platform-specific features. Use when creating menu bar apps, iPad split views, Apple Watch complications, Vision Pro immersive experiences, or multi-platform adaptations.
bgo
Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.
large-data-with-dask
Specific optimization strategies for Python scripts working with larger-than-memory datasets via Dask.
langsmith-fetch
Debug LangChain and LangGraph agents by fetching execution traces from LangSmith Studio. Use when debugging agent behavior, investigating errors, analyzing tool calls, checking memory operations, or examining agent performance. Automatically fetches recent traces and analyzes execution patterns. Requires langsmith-fetch CLI installed.
langchain-tool-calling
How chat models call tools - includes bind_tools, tool choice strategies, parallel tool calling, and tool message handling
langchain-notes
LangChain 框架学习笔记 - 快速查找概念、代码示例和最佳实践。包含 Core components、Middleware、Advanced usage、Multi-agent patterns、RAG retrieval、Long-term memory 等主题。当用户询问 LangChain、Agent、RAG、向量存储、工具使用、记忆系统时使用此 Skill。
langchain-js
Builds LLM-powered applications with LangChain.js for chat, agents, and RAG. Use when creating AI applications with chains, memory, tools, and retrieval-augmented generation in JavaScript.
langchain-agents
Expert guidance for building LangChain agents with proper tool binding, memory, and configuration. Use when creating agents, configuring models, or setting up tool integrations in LangConfig.