applescript 是 macos 原生自动化工具,可直接触发弹窗、横幅或语音提示;轻量提醒用 display notification,强制响应用 display dialog,搭配 say 或 sound 实现多感官提醒,并通过 osascript 从终端调用。

AppleScript 是 macOS 原生支持的自动化工具,处理系统通知提醒非常直接——它不依赖第三方库,也不需要网络权限,只需几行代码就能触发弹窗、横幅或语音提示。关键在于选对方式:轻量提醒用 display notification,强制响应用 display dialog,需要声音或语音则搭配 say 或系统音效。
发送不打断操作的横幅通知
适合状态更新、任务完成等低干扰场景。通知自动出现 3–5 秒后消失,不会抢占焦点。
- 基础写法:
display notification "备份已完成" with title "Time Machine" - 可加副标题增强信息:
with subtitle "2.4 GB 已归档" - 支持自定义图标(需提供 .icns 文件路径):
sound name "Pop"可附加提示音 - 注意:图标路径必须是绝对路径,相对路径会失败;若图标不存在,系统静默忽略
触发必须人工确认的对话框
适用于错误、关键确认或需中断当前流程的提醒,用户必须点击按钮才能继续。
将 iPhone 的 Apple Health 数据同步到 OpenClaw。只需扫描一次二维码,无需手动配置。支持 Mac、Linux 和 VPS。
- 带警告图标的写法:
display dialog "磁盘空间不足" with title "⚠️ 紧急提醒" with icon caution buttons {"清理空间", "稍后处理"} default button "清理空间" - 返回值可捕获用户选择:
if button returned of result is "清理空间" then ... - 避免空按钮名或含特殊字符(如中文顿号、全角符号),否则脚本可能编译失败
组合语音 + 文字 + 音效提升感知度
当用户不在屏幕前,或需要多重感官提醒时,三者叠加效果更可靠。
- 先语音播报:
say "会议将在五分钟开始" using "Ting-Ting" - 再发横幅:
display notification "会议倒计时" with title "日程提醒" sound name "Glass" - 语音引擎名可用
say "hello" using "Alex"查看系统支持列表;推荐用轻量发音人如 "Ting-Ting" 或 "Sam",启动更快 - 注意:
say默认阻塞执行,如需并行,加without waiting for reply
从终端或定时任务中调用 AppleScript 通知
很多自动化流程(如 launchd、cron、zsh 脚本)本身不运行 AppleScript,需通过 osascript 命令桥接。
- 单行调用:
osascript -e 'display notification "脚本执行完毕"' - 多行逻辑建议写入 .scpt 文件再调用:
osascript ~/Scripts/notify.scpt - 在 shell 脚本中嵌入 AppleScript 片段时,用
- 权限提示仅首次出现,但需确保“终端”或对应进程已在「系统设置 > 隐私与安全性 > 自动化」中被授权










