mcpField
A
apple-bridges

apple-bridges

github.com/more-ioProductivity4966 installsUpdated 2w ago
Repository

About apple-bridges

Apple Bridges is a set of Swift CLI tools that lets Claude Code work with Apple apps and tmux on macOS. Separate read and write tools are available through apple-bridges-mcp, with destructive deletes using a dry-run unless forced.

Key features

  1. 01Manage Reminders and Calendar
  2. 02Search and manage Contacts and Notes
  3. 03Read and send Mail and Messages
  4. 04Read and control tmux sessions
  5. 05Separate MCP read and write tools

Use cases

  1. 01Add or review reminders and calendar events
  2. 02Search contacts or edit notes
  3. 03Read inboxes or send messages
  4. 04Inspect tmux panes or send keystrokes

MCP support

Through apple-bridges-mcp, the bridges are exposed to Claude Desktop as separate read and write tools. Read tools reject flags that would change data.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/more-io/claude-apple-bridges --skill apple-bridges

After installing, type/apple-bridgesin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

calendar-bridge.md
contacts-bridge.md
mail-bridge.md
messages-bridge.md
notes-bridge.md
reminders-bridge.md
tmux-bridge.md

Details

From the project README

Apple Bridges

Swift CLI tools at ~/.claude/ that give Claude Code native access to Apple apps on macOS.

Quick Reference

BridgeBinaryPurpose
reminders-bridge~/.claude/reminders-bridgeManage Apple Reminders — lists, items, due dates, repeats, search
calendar-bridge~/.claude/calendar-bridgeRead/write Apple Calendar — events, free slots, scheduling
contacts-bridge~/.claude/contacts-bridgeSearch/manage Apple Contacts — lookup, birthdays
notes-bridge~/.claude/notes-bridgeRead/write Apple Notes — create, search, append
mail-bridge~/.claude/mail-bridgeRead/send Apple Mail — inbox, unread, compose
tmux-bridge~/.claude/tmux-bridgeRead/write tmux sessions — panes, snapshots, send keystrokes
messages-bridge~/.claude/messages-bridgeRead/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...]

In Claude Desktop (via apple-bridges-mcp), each bridge is two tools: <bridge>_read for commands that only read and <bridge>_write for commands that change data, such as reminders_read and reminders_write. Pass the same arguments as the args array, one element per argument, starting with the command. A read tool refuses a flag that would write (mail read --mark-read), and tmux_write types into any pane, so it is never a tool to allow for a whole session.

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:

BridgePermissionSettings Path
reminders-bridgeRemindersPrivacy & Security > Reminders
calendar-bridgeCalendarsPrivacy & Security > Calendars
contacts-bridgeContactsPrivacy & Security > Contacts
notes-bridgeAutomation (Notes.app)Privacy & Security > Automation
mail-bridgeAutomation (Mail.app)Privacy & Security > Automation
tmux-bridgeNone (uses tmux CLI)—
messages-bridgeFull 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:*)"
    ]
  }
}

Comments

Markdown supported