Calendar,
Reminders,
Contacts,
Mail,
Messages and
Notes, on the command line. One binary, built for AI agents and the humans who drive them. Every command has --json, stable exit codes, and IDs you can trust.mac is honest about the difference.
Dates take ISO, naturals and offsets.
❯ mac calendar list --from today --to +7d ❯ mac calendar add "Dentist" --at "tomorrow 2pm"

Add, complete and edit across every list.
❯ mac reminders add "Buy milk" --list Groceries ❯ mac reminders complete <id>

Resolve a name to a handle before you send.
❯ mac contacts find "Sarah" ❯ mac contacts find "Sarah" --json

Drafting is preferred over sending, by design.
❯ mac mail unread --limit 10 ❯ mac mail draft --to a@b.com --subject "Hi"

Read history, send texts. Exact handles only.
❯ mac messages history +15551234567 ❯ mac messages send +1555… "On my way"

List, search, add and append by folder.
❯ mac notes search "brunch" ❯ mac notes append <id> "one more thing"
Music
TV
Shortcuts
Calls
In development for v0.4.0, not in the current release. Shortcuts is the escape hatch: wrap an app that has no scripting surface of its own in a Shortcut, and agents can drive it too.
--json on every command, with sorted keys, ISO 8601 dates and stable schemas. Mutations take exact IDs only, errors are actionable one-liners on stderr, and exit codes are something an agent can actually branch on.❯ mac contacts find "Sarah" --json { "emails": ["sarah@example.com"], "id": "AB1C2D3E-4F56-7890-A1B2-C3D4E5F6A7B8", "name": "Sarah Chen", "phones": ["+15551234567"] } ❯ mac messages send +15551234567 "Brunch at 11?" ✓ sent to +15551234567
mac doctor reports every grant (Calendar, Reminders and Contacts access, Automation consent, Full Disk Access) with fix steps when something is missing. No silent failures, no mystery errors.❯ mac doctor ✓ Calendar access granted ✓ Reminders access granted ✓ Contacts access granted ✓ Mail Automation consent granted ✗ Messages Full Disk Access missing for Terminal → System Settings › Privacy & Security › Full Disk Access ✓ Notes Automation consent granted