Apple Bridges
Swift CLI tools at ~/.claude/ that give Claude Code native access to Apple apps on macOS.
Quick Reference
| Bridge |
Binary |
Purpose |
| reminders-bridge |
~/.claude/reminders-bridge |
Manage Apple Reminders — lists, items, due dates, search |
| calendar-bridge |
~/.claude/calendar-bridge |
Read/write Apple Calendar — events, free slots, scheduling |
| contacts-bridge |
~/.claude/contacts-bridge |
Search/manage Apple Contacts — lookup, birthdays |
| notes-bridge |
~/.claude/notes-bridge |
Read/write Apple Notes — create, search, append |
| mail-bridge |
~/.claude/mail-bridge |
Read/send Apple Mail — inbox, unread, compose |
| tmux-bridge |
~/.claude/tmux-bridge |
Read/write tmux sessions — panes, snapshots, send keystrokes |
| messages-bridge |
~/.claude/messages-bridge |
Read/send Apple Messages — chats, unread, search, send text and files |
Read the detail file for the bridge you need — each contains full command syntax, all parameters, and usage examples.
General Patterns
CLI Syntax
All bridges follow the same pattern:
~/.claude/<bridge-name> <command> [arguments...]
Quoting
Arguments with spaces must be quoted:
~/.claude/reminders-bridge add "Shopping List" "Buy milk" "From the organic store"
~/.claude/calendar-bridge add "Work" "Team Meeting" "2026-03-01 10:00" "2026-03-01 11:00"
Destructive Operations
Delete commands use a dry-run by default pattern — they show what would be deleted without the --force flag:
# Dry run (safe preview)
~/.claude/reminders-bridge delete "Work" "Old task"
# Actually delete
~/.claude/reminders-bridge delete "Work" "Old task" --force
This applies to: reminders-bridge delete, calendar-bridge delete, contacts-bridge delete, notes-bridge delete, mail-bridge delete.
Permissions
Each bridge requires macOS permission on first use:
| Bridge |
Permission |
Settings Path |
| reminders-bridge |
Reminders |
Privacy & Security > Reminders |
| calendar-bridge |
Calendars |
Privacy & Security > Calendars |
| contacts-bridge |
Contacts |
Privacy & Security > Contacts |
| notes-bridge |
Automation (Notes.app) |
Privacy & Security > Automation |
| mail-bridge |
Automation (Mail.app) |
Privacy & Security > Automation |
| tmux-bridge |
None (uses tmux CLI) |
— |
| messages-bridge |
Full Disk Access (read) + Automation (Messages.app) |
Privacy & Security > Full Disk Access / Automation |
Allowed Tools Configuration
Add to .claude/settings.local.json:
{
"permissions": {
"allow": [
"Bash(~/.claude/reminders-bridge:*)",
"Bash(~/.claude/calendar-bridge:*)",
"Bash(~/.claude/contacts-bridge:*)",
"Bash(~/.claude/notes-bridge:*)",
"Bash(~/.claude/mail-bridge:*)",
"Bash(~/.claude/tmux-bridge:*)",
"Bash(~/.claude/messages-bridge:*)"
]
}
}
1---2name: apple-bridges3description: Use this skill whenever the user asks about Apple apps — Reminders, Calendar, Contacts, Notes, Mail, Messages (iMessage/SMS), or tmux sessions. This includes creating/completing reminders, checking/adding calendar events, looking up contacts, reading/writing notes, sending/reading email, reading/sending iMessages and texts, and capturing tmux session content. Also use this skill when the user mentions tasks, todos, scheduling, birthdays, free time slots, or end-of-day summaries. The bridges are CLI tools installed at ~/.claude/ that give Claude Code native access to these Apple apps on macOS.4---56# Apple Bridges78Swift CLI tools at `~/.claude/` that give Claude Code native access to Apple apps on macOS.910## Quick Reference1112| Bridge | Binary | Purpose |13|--------|--------|---------|14| [reminders-bridge](reminders-bridge.md) | `~/.claude/reminders-bridge` | Manage Apple Reminders — lists, items, due dates, search |15| [calendar-bridge](calendar-bridge.md) | `~/.claude/calendar-bridge` | Read/write Apple Calendar — events, free slots, scheduling |16| [contacts-bridge](contacts-bridge.md) | `~/.claude/contacts-bridge` | Search/manage Apple Contacts — lookup, birthdays |17| [notes-bridge](notes-bridge.md) | `~/.claude/notes-bridge` | Read/write Apple Notes — create, search, append |18| [mail-bridge](mail-bridge.md) | `~/.claude/mail-bridge` | Read/send Apple Mail — inbox, unread, compose |19| [tmux-bridge](tmux-bridge.md) | `~/.claude/tmux-bridge` | Read/write tmux sessions — panes, snapshots, send keystrokes |20| [messages-bridge](messages-bridge.md) | `~/.claude/messages-bridge` | Read/send Apple Messages — chats, unread, search, send text and files |2122**Read the detail file for the bridge you need** — each contains full command syntax, all parameters, and usage examples.2324## General Patterns2526### CLI Syntax2728All bridges follow the same pattern:2930```bash31~/.claude/<bridge-name> <command> [arguments...]32```3334### Quoting3536Arguments with spaces must be quoted:3738```bash39~/.claude/reminders-bridge add "Shopping List" "Buy milk" "From the organic store"40~/.claude/calendar-bridge add "Work" "Team Meeting" "2026-03-01 10:00" "2026-03-01 11:00"41```4243### Destructive Operations4445Delete commands use a **dry-run by default** pattern — they show what would be deleted without the `--force` flag:4647```bash48# Dry run (safe preview)49~/.claude/reminders-bridge delete "Work" "Old task"5051# Actually delete52~/.claude/reminders-bridge delete "Work" "Old task" --force53```5455This applies to: `reminders-bridge delete`, `calendar-bridge delete`, `contacts-bridge delete`, `notes-bridge delete`, `mail-bridge delete`.5657### Permissions5859Each bridge requires macOS permission on first use:6061| Bridge | Permission | Settings Path |62|--------|-----------|---------------|63| reminders-bridge | Reminders | Privacy & Security > Reminders |64| calendar-bridge | Calendars | Privacy & Security > Calendars |65| contacts-bridge | Contacts | Privacy & Security > Contacts |66| notes-bridge | Automation (Notes.app) | Privacy & Security > Automation |67| mail-bridge | Automation (Mail.app) | Privacy & Security > Automation |68| tmux-bridge | None (uses tmux CLI) | — |69| messages-bridge | Full Disk Access (read) + Automation (Messages.app) | Privacy & Security > Full Disk Access / Automation |7071### Allowed Tools Configuration7273Add to `.claude/settings.local.json`:7475```json76{77 "permissions": {78 "allow": [79 "Bash(~/.claude/reminders-bridge:*)",80 "Bash(~/.claude/calendar-bridge:*)",81 "Bash(~/.claude/contacts-bridge:*)",82 "Bash(~/.claude/notes-bridge:*)",83 "Bash(~/.claude/mail-bridge:*)",84 "Bash(~/.claude/tmux-bridge:*)",85 "Bash(~/.claude/messages-bridge:*)"86 ]87 }88}89```