Sandbox
@SpillwaveSolutions/automating-mac-apps-plugin

Claude Code plugin for Mac app automation

This plugin package adds Mac automation skills, commands, and agents for apps like Calendar, Notes, Mail, Keynote, Numbers, and Excel. It routes requests through Apple Events using AppleScript, JXA, and PyXA so your agent can carry out app tasks instead of only drafting them.

40 stars3 forksPythonUpdated 26d ago
Who it's for

Builders who use Claude Code and want their agent to drive Mac apps, spreadsheets, mail, notes, and presentations.

What it delivers

You can turn natural-language requests into Mac app actions without manually clicking through each app.

What it does

App-specific automation skills

Includes skills for Calendar, Notes, Mail, Keynote, Numbers, Excel, Reminders, Contacts, Messages, Chrome, and browser automation.

Slash commands for common workflows

Provides commands such as `/csv-to-numbers`, `/csv-to-excel`, `/doc-to-deck`, `/meeting-setup`, `/meeting-start`, and `/meeting-end`.

Agent layer for multi-step work

Adds automation agents that combine several skills for workflows like meeting setup and document-to-deck creation.

Apple Events automation stack

Uses AppleScript for discovery, JXA for legacy support, and PyXA/Python as the preferred path.

Permission setup scripts

Includes per-app setup scripts to trigger macOS Automation permission prompts before running automations.

How to get it

  1. 1Run
    /plugin marketplace add SpillwaveSolutions/automating-mac-apps-plugin
  2. 2Once the plugin is available as a Claude Code marketplace
    claude plugins install automating-mac-apps-plugin
  3. 3Copy the plugins/automating-mac-apps-plugin/ folder to ~/.claude/skills/
    cp -r plugins/automating-mac-apps-plugin ~/.claude/skills/
  4. 4After installation, verify the plugin is recognized
    # List installed plugins
    claude plugins list
    
    # Or check the skills directory
    ls ~/.claude/skills/
  5. 5Run
    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.py
  6. 6Once installed, Claude Code automatically loads relevant skills based on context. You…
    # 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

README

Automating Mac Apps Plugin

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.

What is this Plugin?

  • 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

AI-Powered Mac Automation

Cover - AI-Powered Mac Automation

Connect your favorite Mac applications to Claude Code through Apple Events automation. Control Calendar, Notes, Mail, Keynote, Numbers, and more with natural language commands.

Plugin Architecture

Architecture - Three-Layer Design

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

16 Automation Skills

Skills Overview - All 16 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

Automation Workflow

Workflow - From Request to Execution

How automation flows from your request to app control:

  1. Natural language request to Claude Code
  2. Skill selection based on context
  3. Script generation (JXA or PyXA)
  4. Apple Events execution
  5. App responds and returns results

Installation

Adding as a Marketplace

/plugin marketplace add SpillwaveSolutions/automating-mac-apps-plugin  

After adding marketplace then you can add skill

Once the plugin is available as a Claude Code marketplace:

claude plugins install automating-mac-apps-plugin

Option 2: Install from GitHub

Clone 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

Option 3: Manual Installation

  1. Download or clone this repository
  2. Copy the plugins/automating-mac-apps-plugin/ folder to ~/.claude/skills/
cp -r plugins/automating-mac-apps-plugin ~/.claude/skills/

Verify Installation

After installation, verify the plugin is recognized:

# List installed plugins
claude plugins list

# Or check the skills directory
ls ~/.claude/skills/

First-Run Setup (macOS Permissions)

Before using the automation skills, you need to grant macOS Automation permissions. Run the setup scripts to trigger permission prompts:

All Apps at Once

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.py

Per-App Setup

Run individual setup scripts as needed:

AppScript
Calendar./skills/automating-calendar/scripts/set_up_calendar_automation.sh
Notes./skills/automating-notes/scripts/set_up_notes_automation.sh
Mail./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.

Plugin Contents

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

Usage Examples

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"

Development

This workspace includes a test suite for contributors:

# Install test dependencies
poetry install --with test

# Run tests
poetry run pytest

See README-tests.md for detailed testing instructions.

Requirements

  • 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.)

License

MIT License - see LICENSE.

Contributing

Contributions welcome! Please read the development section above and ensure tests pass before submitting PRs.

Files in the repo

Repository payload19 top-level entries
  • .claude-plugin
  • .codex-plugin
  • .cursor
  • .cursor-plugin
  • .grok-plugin
  • .work
  • docs
  • plugins
  • presentation_images
  • tests
  • .gitignore
  • AGENTS.md
  • CHANGELOG.md
  • CLAUDE.md
  • LICENSE
  • plugin.json
  • poetry.lock
  • pyproject.toml
  • README.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More plugins

Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.

138k
1 add

Graphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.

82k
code-yeongyu/
oh-my-openagent

OmO: Just type "mass ulw" keyword with your prompt. Now you are the master of graph engineering.

69k

Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More

94k

Opinionated Oxlint rules for rejecting low-evidence TypeScript and JavaScript patterns

4.3k