Automates macOS apps via Apple Events using AppleScript (discovery), JXA (legacy), and PyXA/Python (preferred). Includes skills for Calendar, Notes, Mail, Keynote, Numbers, Excel, Reminders, Contacts, and more.
Note: This is a plugin for Claude Code. It is not ready for prime time yet. Only use it if you are a developer and want to help test it. I have tested it with Reminders, Keynote, Numbers, Notes, Contactc, Calendar, Messenger (send only), and Mail. It is useful as-is but please report any issues or suggestions. Tested Pages and it did not go well. We could only add basic text. We could paste in images but could not predict where they would end up in the doc. Everything else is woefully short on testing.
- Automates 16+ Mac applications from Claude Code
- Uses JavaScript for Automation (JXA) and Python (PyXA)
- Provides ready-to-use scripts and reference docs
- Includes commands, agents, and skills
- Installed from GitHub: SpillwaveSolutions/automating-mac-apps-plugin
Connect your favorite Mac applications to Claude Code through Apple Events automation. Control Calendar, Notes, Mail, Keynote, Numbers, and more with natural language commands.
The plugin uses a three-layer architecture:
- Skills Layer: 16 app-specific automation skills with recipes and reference docs
- Commands Layer: Ready-to-use slash commands for common workflows
- Agents Layer: Intelligent agents that combine multiple skills
Comprehensive coverage across productivity, communication, and development apps:
- Productivity: Calendar, Reminders, Notes, Contacts
- Office: Numbers, Pages, Keynote, Excel, Word, PowerPoint
- Communication: Mail, Messages
- Development: Chrome, Web Browser Automation
How automation flows from your request to app control:
- Natural language request to Claude Code
- Skill selection based on context
- Script generation (JXA or PyXA)
- Apple Events execution
- App responds and returns results
/plugin marketplace add SpillwaveSolutions/automating-mac-apps-plugin
Once the plugin is available as a Claude Code marketplace:
claude plugins install automating-mac-apps-pluginClone directly into your Claude skills directory:
# Navigate to Claude skills directory
cd ~/.claude/skills
# Clone the repository
git clone https://github.com/SpillwaveSolutions/automating-mac-apps-plugin.git
# Or clone to a specific location and symlink
git clone https://github.com/SpillwaveSolutions/automating-mac-apps-plugin.git ~/projects/automating-mac-apps-plugin
ln -s ~/projects/automating-mac-apps-plugin ~/.claude/skills/automating-mac-apps-plugin- Download or clone this repository
- Copy the
plugins/automating-mac-apps-plugin/folder to~/.claude/skills/
cp -r plugins/automating-mac-apps-plugin ~/.claude/skills/After installation, verify the plugin is recognized:
# List installed plugins
claude plugins list
# Or check the skills directory
ls ~/.claude/skills/Before using the automation skills, you need to grant macOS Automation permissions. Run the setup scripts to trigger permission prompts:
cd ~/.claude/skills/automating-mac-apps-plugin
./skills/automating-mac-apps/scripts/request_automation_permissions.sh
# Or use Python:
python3 ./skills/automating-mac-apps/scripts/request_automation_permissions.pyRun individual setup scripts as needed:
| App | Script |
|---|---|
| Calendar | ./skills/automating-calendar/scripts/set_up_calendar_automation.sh |
| Notes | ./skills/automating-notes/scripts/set_up_notes_automation.sh |
./skills/automating-mail/scripts/set_up_mail_automation.sh |
|
| Keynote | ./skills/automating-keynote/scripts/set_up_keynote_automation.sh |
| Numbers | ./skills/automating-numbers/scripts/set_up_numbers_automation.sh |
| Excel | ./skills/automating-excel/scripts/set_up_excel_automation.sh |
| Reminders | ./skills/automating-reminders/scripts/set_up_reminders_automation.sh |
| Contacts | ./skills/automating-contacts/scripts/set_up_contacts_automation.sh |
| Voice Memos | ./skills/automating-voice-memos/scripts/set_up_voice_memos_automation.sh |
Important: Run scripts from Terminal or the Python interpreter you intend to use for automation. This ensures the correct app (Terminal.app or Python) receives permission approval.
automating-mac-apps-plugin/
├── plugins/automating-mac-apps-plugin/ # Plugin payload
│ ├── .claude-plugin/
│ │ └── marketplace.json # Plugin manifest
│ ├── skills/ # 16 automation skills
│ │ ├── automating-mac-apps/ # Foundation + core patterns
│ │ ├── automating-calendar/
│ │ ├── automating-contacts/
│ │ ├── automating-excel/
│ │ ├── automating-keynote/
│ │ ├── automating-mail/
│ │ ├── automating-messages/
│ │ ├── automating-notes/
│ │ ├── automating-numbers/
│ │ ├── automating-pages/
│ │ ├── automating-powerpoint/
│ │ ├── automating-reminders/
│ │ ├── automating-voice-memos/
│ │ ├── automating-word/
│ │ ├── automating-chrome/
│ │ └── web-browser-automation/
│ ├── commands/ # Slash commands
│ │ ├── /csv-to-numbers
│ │ ├── /csv-to-excel
│ │ ├── /excel-to-numbers
│ │ ├── /numbers-to-excel
│ │ ├── /sheet-report
│ │ ├── /doc-to-deck
│ │ ├── /contact-upsert
│ │ ├── /meeting-setup
│ │ ├── /meeting-start
│ │ └── /meeting-end
│ ├── agents/ # Automation agents
│ ├── AGENTS.md
│ ├── README.md
│ └── LICENSE
├── tests/ # Test suite (not shipped)
├── pyproject.toml # Poetry config for tests
└── README.md # This file
Once installed, Claude Code automatically loads relevant skills based on context. You can also invoke commands directly:
# Convert CSV to Numbers spreadsheet
/csv-to-numbers data.csv
# Create a Keynote presentation from a document
/doc-to-deck report.md
# Set up a meeting with calendar event, notes, and reminders
/meeting-setup "Project Kickoff" tomorrow 2pm
Or ask Claude naturally:
- "Create a Numbers spreadsheet from this CSV data"
- "Send an email to the team about tomorrow's meeting"
- "Add a reminder to follow up next week"
- "Export this Keynote to PDF"
This workspace includes a test suite for contributors:
# Install test dependencies
poetry install --with test
# Run tests
poetry run pytestSee README-tests.md for detailed testing instructions.
- macOS 10.15+ (Catalina or later)
- Claude Code CLI
- Python 3.10+ (for PyXA-based automation)
- Apps you want to automate (Calendar, Mail, Numbers, etc.)
MIT License - see LICENSE.
Contributions welcome! Please read the development section above and ensure tests pass before submitting PRs.



