跳到正文
claudemods

Claude Code 通知插件:提示、声音与提醒

Claude Code 通知插件会在长回合结束、额度将满或出现失败时提醒你,方式包括应用内提示、简短提示音或可选的桌面通知。

完成提示 在 Claude Code 中运行

完成提示

Claude 较长的一轮结束时弹出「Done in 2m 14s」提示并播放短促提示音,还可选发送桌面通知。

  • 弹出通知
  • 执行命令
  • 修改界面
  • 播放声音

已在 v2.1.291 实测

Claude Code 通知插件会在你看向别处时告诉你发生了什么:一个很长的回合结束了、上下文窗口快满了、某条命令被拦截了,或者测试运行失败了。它们使用 Claude Code 内的简短提示(toast)、可选的提示音,有时还会发出系统通知,让你在其他窗口里也能注意到。

Claude Code 通知插件是如何工作的?

大多数通知插件都会监听 turn.complete。这个事件在 Claude 完成一个回合时触发,携带回合时长、是否被中止、停止原因,以及子代理回合的 agentId。插件随后调用 $.ui.toast('...') 显示应用内消息,并调用 $.audio.play(...) 播放随插件打包的音效。额度相关的警告通常来自回合结束后读取的 $.session.usage();安全类插件在其 tool.call 钩子中拒绝某条命令时,也可能弹出提示。

mods API 中没有专门的桌面通知调用。想使用 macOS 通知中心或 Linux libnotify 弹窗的插件,会通过 $.process.run 运行 osascript 或 notify-send。以 argv 数组而不是 shell 字符串传递参数,可以避免 Claude 回答文本中的引号造成问题。

安装前应该检查什么?

只显示应用内提示的插件应当带有 修改界面 标记,可能还有 播放声音。如果你同时看到 执行命令,请确认它只调用通知程序,并且只在你开启了系统通知时才调用。如果插件会把 Claude 回答的一部分放进通知里,请记住这些文字随后会留在操作系统的通知历史中。

接着看触发阈值。好的通知插件会对短回合、被中断的回合和子代理回合保持安静,并允许你在 /config 中修改最短时长。

应用内提示、声音还是系统通知?

如果你本来就在终端里,用应用内提示就够了。如果长回合期间你会切到浏览器,再加上提示音。如果你在多个桌面或全屏应用之间工作、根本看不到终端,就开启系统通知。大多数人只保留前两种。

常见问题

Claude Code 插件有桌面通知 API 吗?
没有。插件 API 提供 $.ui.toast 用于应用内提示,$.audio 用于播放声音。需要弹出 macOS 或 Linux 系统通知的插件会通过 $.process.run 运行 osascript 或 notify-send,这也是它会显示“执行命令”标记的原因。
一条提示会在屏幕上停留多久?
默认大约四秒。提示适合传达“用时 2 分 14 秒完成”这类简短信息,不适合需要反复阅读的内容。
通知插件会为子代理的回合触发吗?
只有在插件被写成这样时才会。turn.complete 事件会为子代理回合附带 agentId,好的通知插件会跳过这些回合,让你每个回答只收到一次提醒,而不是每个子代理都提醒一次。