name: mac-automation description: “此技能应在用户请求通过AppleScript进行Mac自动化时使用,包括:邮件操作、提醒事项/日历管理、Safari控制、Finder操作、系统控制(音量、亮度、通知、应用启动)、第三方应用(开发工具、任务管理、媒体播放器),或提及“AppleScript”或“自动化Mac”。” author: 7Sageer, Claude version: 0.0.5
通过AppleScript实现Mac自动化
此技能可通过osascript命令执行AppleScript来控制macOS应用程序和系统功能。
核心原理
使用Bash工具通过osascript执行AppleScript命令:
osascript -e '此处为AppleScript代码'
对于多行脚本:
osascript <<'EOF'
tell application "应用名称"
-- 此处为命令
end tell
EOF
支持的应用程序和功能
1. 邮件
- 发送带有主题、正文、收件人的电子邮件
- 读取未读邮件
- 搜索邮件
- 创建草稿
2. 提醒事项
- 创建带有截止日期的提醒
- 按列表列出提醒事项
- 完成/删除提醒
- 创建提醒列表
3. 日历
- 创建带有时间、地点、备注的事件
- 列出今天/即将发生的事件
- 删除事件
- 创建日历
4. 通知中心
- 显示系统通知
- 自定义标题、副标题、消息
- 声音提醒
5. Safari
- 打开URL
- 获取当前页面信息
- 执行JavaScript
- 管理标签页和窗口
6. Finder
- 打开文件夹
- 获取/设置文件信息
- 移动、复制、删除文件
- 创建文件夹
- 显示文件
7. 系统控制
- 音量控制(静音、设置级别)
- 亮度(通过外部工具)
- 打开应用程序
- 系统信息查询
- 睡眠/重启/关机(谨慎使用)
8. 第三方应用程序
许多第三方应用支持AppleScript。常见类别包括开发工具(iTerm2、VS Code)、任务管理(OmniFocus、Things)、媒体播放器(Spotify)、浏览器(Chrome)和通信工具。要检查应用是否支持AppleScript,可打开“脚本编辑器”浏览其字典,或尝试基本命令如tell application "应用名称" to get name。
执行指南
安全注意事项
-
权限提示:首次使用某些应用会触发macOS权限对话框。如果自动化因权限问题失败,请告知用户。
-
敏感操作:对于破坏性操作(删除、关机),在执行前需与用户确认。
-
隐私敏感数据:读取邮件或日历事件时,仅显示用户明确请求的内容。
错误处理
常见错误及解决方案:
"Application not found"→ 检查应用名称拼写"Not authorized"→ 引导用户前往“系统偏好设置”>“隐私与安全性”"Can't get..."→ 资源不存在,优雅处理
最佳实践
- 使用确切的应用名称:“Mail”、“Reminders”、“Calendar”、“Safari”、“Finder”
- 转义特殊字符:在字符串中使用
\"表示引号 - 处理Unicode:AppleScript原生支持中文/Unicode
- 检查应用状态:某些操作要求应用正在运行
快速参考
通知
osascript -e 'display notification "消息内容" with title "标题"'
打开应用
osascript -e 'tell application "应用名称" to activate'
音量控制
# 获取音量
osascript -e 'output volume of (get volume settings)'
# 设置音量 (0-100)
osascript -e 'set volume output volume 50'
# 静音
osascript -e 'set volume output muted true'
系统命令
# 获取剪贴板内容
osascript -e 'the clipboard'
# 设置剪贴板内容
osascript -e 'set the clipboard to "文本"'
附加资源
参考文件
有关按应用程序分类的详细AppleScript模式,请查阅:
references/mail-applescript.md- 邮件操作:发送、读取、搜索、草稿references/reminders-applescript.md- 提醒事项操作:创建、列表、完成references/calendar-applescript.md- 日历操作:事件、日历references/safari-applescript.md- Safari操作:URL、标签页、JavaScriptreferences/finder-applescript.md- Finder操作:文件、文件夹references/system-applescript.md- 系统控制:音量、应用、剪贴板
示例文件
examples/目录中的工作示例:
daily-briefing.applescript- 获取今日日历和未读邮件quick-note.applescript- 从剪贴板创建提醒
实用脚本
scripts/目录中的脚本:
run-applescript.sh- 安全执行AppleScript的包装器
工作流模式
模式1:信息检索
- 执行AppleScript查询数据
- 解析输出
- 向用户呈现格式化结果
模式2:操作执行
- 如果是破坏性操作,与用户确认
- 执行AppleScript
- 验证成功
- 报告结果
模式3:多应用自动化
- 链接多个AppleScript调用
- 使用Shell变量在调用间传递数据
- 在每个步骤处理错误
常见用户请求
| 用户请求 | 操作 |
|---|---|
| “发送邮件给xxx” | 使用邮件应用创建并发送 |
| “提醒我明天…” | 创建带有截止日期的提醒事项 |
| “添加日历事件” | 创建日历事件 |
| “打开xxx网站” | Safari打开URL |
| “调低音量” | 降低音量 |
| “显示通知” | 显示通知 |
| “打开文件夹” | Finder显示 |
故障排除
如果AppleScript失败:
- 检查应用是否已安装
- 在“系统偏好设置”中验证权限
- 确保应用名称准确无误
- 先尝试手动运行应用
- 检查脚本中的语法错误
对于权限问题,引导用户前往: 系统偏好设置 > 隐私与安全性 > 自动化
自我改进协议
当AppleScript执行失败或产生意外结果时,请遵循此协议来改进技能的参考文档:
1. 错误分析
- 识别失败的根本原因
- 确定是代码问题、权限问题还是概念误解
- 检查错误是否可重现
2. 参考文件审查
- 在
references/目录中找到相关参考文件 - 查看类似模式的现有示例
- 确定错误是否源于不正确或不完整的示例
3. 文档更新
当您识别出参考文档中可修复的问题时:
对于不正确的示例:
- 使用正确的实现更新示例代码
- 添加内联注释解释修复内容
- 测试更正后的代码以验证其工作
对于缺失的边缘情况:
- 添加新示例演示正确方法
- 包含解释性注释说明为何需要此方法
对于常见陷阱:
- 添加“常见陷阱”或“重要说明”部分
- 记录用户可能遇到的错误消息
- 解释正确的解决方案
4. 更新指南
使用编辑工具修改参考文件:
编辑工具:references/{应用}-applescript.md
- 修复不正确的代码示例
- 为已知问题添加警告说明
- 包含错误消息和解决方案
5. 文档标准
更新参考文件时,请保持:
- 清晰、可工作的代码示例
- 复杂逻辑的内联注释
- 错误消息及其解决方案
- 重大修复的日期戳注释
6. 版本跟踪
重大改进后:
- 更新SKILL.md前言中的版本号
- 考虑在变更日志中记录主要修复
此协议确保技能根据实际使用情况和遇到的错误持续改进。