mac-automation
This skill should be used when the user requests Mac automation via AppleScript, including: Mail operations, Reminders/Calendar management, Safari control, Finder operations, system controls (volume, brightness, notifications, app launching), third-party apps (development tools, task management, media players), or mentions "AppleScript" or "automate Mac".
Best use case
mac-automation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
This skill should be used when the user requests Mac automation via AppleScript, including: Mail operations, Reminders/Calendar management, Safari control, Finder operations, system controls (volume, brightness, notifications, app launching), third-party apps (development tools, task management, media players), or mentions "AppleScript" or "automate Mac".
Teams using mac-automation should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/mac-automation/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How mac-automation Compares
| Feature / Agent | mac-automation | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
This skill should be used when the user requests Mac automation via AppleScript, including: Mail operations, Reminders/Calendar management, Safari control, Finder operations, system controls (volume, brightness, notifications, app launching), third-party apps (development tools, task management, media players), or mentions "AppleScript" or "automate Mac".
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# Mac Automation via AppleScript
This skill enables control of macOS applications and system functions through AppleScript execution via the `osascript` command.
## Core Principle
Execute AppleScript commands using the Bash tool with `osascript`:
```bash
osascript -e 'AppleScript code here'
```
For multi-line scripts:
```bash
osascript <<'EOF'
tell application "App Name"
-- commands here
end tell
EOF
```
## Supported Applications & Functions
### 1. Mail (邮件)
- Send emails with subject, body, recipients
- Read unread emails
- Search emails
- Create drafts
### 2. Reminders (提醒事项)
- Create reminders with due dates
- List reminders by list
- Complete/delete reminders
- Create reminder lists
### 3. Calendar (日历)
- Create events with time, location, notes
- List today's/upcoming events
- Delete events
- Create calendars
### 4. Notification Center (通知中心)
- Display system notifications
- Custom title, subtitle, message
- Sound alerts
### 5. Safari
- Open URLs
- Get current page info
- Execute JavaScript
- Manage tabs and windows
### 6. Finder
- Open folders
- Get/set file info
- Move, copy, delete files
- Create folders
- Reveal files
### 7. System Controls (系统控制)
- Volume control (mute, set level)
- Brightness (via external tools)
- Open applications
- System info queries
- Sleep/restart/shutdown (with care)
### 8. Third-Party Applications
Many third-party apps support AppleScript. Common categories include development tools (iTerm2, VS Code), task management (OmniFocus, Things), media players (Spotify), browsers (Chrome), and communication tools. To check if an app supports AppleScript, open Script Editor to browse its dictionary, or try basic commands like `tell application "AppName" to get name`.
## Execution Guidelines
### Security Considerations
1. **Permission Prompts**: First-time use of certain apps triggers macOS permission dialogs. Inform user if automation fails due to permissions.
2. **Sensitive Operations**: For destructive operations (delete, shutdown), confirm with user before executing.
3. **Privacy-Sensitive Data**: When reading emails or calendar events, only display what user explicitly requests.
### Error Handling
Common errors and solutions:
- `"Application not found"` → Check app name spelling
- `"Not authorized"` → Guide user to System Preferences > Privacy & Security
- `"Can't get..."` → Resource doesn't exist, handle gracefully
### Best Practices
1. **Use exact app names**: "Mail", "Reminders", "Calendar", "Safari", "Finder"
2. **Escape special characters**: Use `\"` for quotes in strings
3. **Handle Unicode**: AppleScript handles Chinese/Unicode natively
4. **Check app state**: Some operations require app to be running
## Quick Reference
### Notifications
```bash
osascript -e 'display notification "消息内容" with title "标题"'
```
### Open Application
```bash
osascript -e 'tell application "AppName" to activate'
```
### Volume Control
```bash
# Get volume
osascript -e 'output volume of (get volume settings)'
# Set volume (0-100)
osascript -e 'set volume output volume 50'
# Mute
osascript -e 'set volume output muted true'
```
### System Commands
```bash
# Get clipboard
osascript -e 'the clipboard'
# Set clipboard
osascript -e 'set the clipboard to "text"'
```
## Additional Resources
### Reference Files
For detailed AppleScript patterns by application, consult:
- **`references/mail-applescript.md`** - Email operations: send, read, search, drafts
- **`references/reminders-applescript.md`** - Reminder operations: create, list, complete
- **`references/calendar-applescript.md`** - Calendar operations: events, calendars
- **`references/safari-applescript.md`** - Safari operations: URLs, tabs, JavaScript
- **`references/finder-applescript.md`** - Finder operations: files, folders
- **`references/system-applescript.md`** - System controls: volume, apps, clipboard
### Example Files
Working examples in `examples/`:
- **`daily-briefing.applescript`** - Get today's calendar and unread emails
- **`quick-note.applescript`** - Create reminder from clipboard
### Utility Scripts
Scripts in `scripts/`:
- **`run-applescript.sh`** - Wrapper for safe AppleScript execution
## Workflow Patterns
### Pattern 1: Information Retrieval
1. Execute AppleScript to query data
2. Parse output
3. Present formatted results to user
### Pattern 2: Action Execution
1. Confirm action with user if destructive
2. Execute AppleScript
3. Verify success
4. Report result
### Pattern 3: Multi-App Automation
1. Chain multiple AppleScript calls
2. Pass data between calls using shell variables
3. Handle errors at each step
## Common User Requests
| User Request | Action |
|-------------|--------|
| "发送邮件给xxx" | Use Mail to create and send |
| "提醒我明天..." | Create Reminder with due date |
| "添加日历事件" | Create Calendar event |
| "打开xxx网站" | Safari open URL |
| "调低音量" | Set volume lower |
| "显示通知" | Display notification |
| "打开文件夹" | Finder reveal |
## Troubleshooting
If AppleScript fails:
1. Check app is installed
2. Verify permissions in System Preferences
3. Ensure app name is exact
4. Try running app manually first
5. Check for syntax errors in script
For permission issues, guide user to:
**System Preferences > Privacy & Security > Automation**
## Self-Improvement Protocol
When an AppleScript execution fails or produces unexpected results, follow this protocol to improve the skill's reference documentation:
### 1. Error Analysis
- Identify the root cause of the failure
- Determine if it's a code issue, permission issue, or conceptual misunderstanding
- Check if the error is reproducible
### 2. Reference File Review
- Locate the relevant reference file in `references/` directory
- Review existing examples for similar patterns
- Identify if the error stems from incorrect or incomplete examples
### 3. Documentation Update
When you identify a fixable issue in the reference documentation:
**For incorrect examples:**
- Update the example code with the correct implementation
- Add inline comments explaining the fix
- Test the corrected code to verify it works
**For missing edge cases:**
- Add a new example demonstrating the correct approach
- Include explanatory comments about why this approach is needed
**For common pitfalls:**
- Add a "Common Pitfalls" or "Important Notes" section
- Document the error message users might encounter
- Explain the correct solution
### 4. Update Guidelines
Use the Edit tool to modify reference files:
```
Edit tool on: references/{app}-applescript.md
- Fix incorrect code examples
- Add warning notes for known issues
- Include error messages and solutions
```
### 5. Documentation Standards
When updating reference files, maintain:
- Clear, working code examples
- Inline comments for complex logic
- Error messages and their solutions
- Date-stamped notes for significant fixes
### 6. Version Tracking
After significant improvements:
- Update the version number in SKILL.md frontmatter
- Consider documenting major fixes in a changelog
This protocol ensures the skill continuously improves based on real-world usage and errors encountered.Related Skills
playwright-automation-fill-in-form
Automate filling in a form using Playwright MCP
deployment-automation
Automate application deployment to cloud platforms and servers. Use when setting up CI/CD pipelines, deploying to Docker/Kubernetes, or configuring cloud infrastructure. Handles GitHub Actions, Docker, Kubernetes, AWS, Vercel, and deployment best practices.
zoom-automation
Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.
zoho-crm-automation
Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.
zendesk-automation
Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.
youtube-automation
Automate YouTube tasks via Rube MCP (Composio): upload videos, manage playlists, search content, get analytics, and handle comments. Always search tools first for current schemas.
wrike-automation
Automate Wrike project management via Rube MCP (Composio): create tasks/folders, manage projects, assign work, and track progress. Always search tools first for current schemas.
workflow-automation
Workflow automation is the infrastructure that makes AI agents reliable. Without durable execution, a network hiccup during a 10-step payment flow means lost money and angry customers. With it, workflows resume exactly where they left off. This skill covers the platforms (n8n, Temporal, Inngest) and patterns (sequential, parallel, orchestrator-worker) that turn brittle scripts into production-grade automation. Key insight: The platforms make different tradeoffs. n8n optimizes for accessibility
whatsapp-automation
Automate WhatsApp Business tasks via Rube MCP (Composio): send messages, manage templates, upload media, and handle contacts. Always search tools first for current schemas.
webflow-automation
Automate Webflow CMS collections, site publishing, page management, asset uploads, and ecommerce orders via Rube MCP (Composio). Always search tools first for current schemas.
vercel-automation
Automate Vercel tasks via Rube MCP (Composio): manage deployments, domains, DNS, env vars, projects, and teams. Always search tools first for current schemas.
trello-automation
Automate Trello boards, cards, and workflows via Rube MCP (Composio). Create cards, manage lists, assign members, and search across boards programmatically.