claude-code-notifier
工作原理 指南 常见问题
◐简体中文
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
开始使用
全部指南

Claude Code 内置通知:terminal bell 与 preferredNotifChannel

更新于 2026年10月31日 · 阅读约 6 分钟
本页内容 01快速解决 02preferredNotifChannel 的所有取值 03内置通知何时触发 04各 terminal 配置 05通过 SSH 和在 tmux 中使用 06内置提醒与 hook 搭配使用 07内置选项的局限 08Claude Code Notifier 的定位 09常见问题

Claude Code 自带通知功能:当 Claude 完成任务或在权限 prompt 处等待、而你似乎不在电脑前时,它会通过 terminal 提醒你。提醒方式由 preferredNotifChannel 设置决定。默认值 "auto" 会在 iTerm2、Ghostty 和 Kitty 中发送桌面通知,在其他大多数 terminal 中则什么都不做。把它设为 "terminal_bell",就能在任何 terminal 中触发响铃字符。可以通过 /config(其中叫 Local notifications)或在 ~/.claude/settings.json 中设置。

01快速解决

如果 Claude 完成时你什么都没听到,把下面的内容加到 ~/.claude/settings.json:

{
  "preferredNotifChannel": "terminal_bell"
}

然后确认你的 terminal 会对响铃做出反应:播放声音、弹跳 Dock 图标、闪烁标签页或弹出通知。这个设置在 terminal 里,而不在 Claude Code 里。在 Mac、Windows 和 Linux 上,大多数 terminal 的偏好设置里都有“bell”或“alert”相关选项。

02preferredNotifChannel 的所有取值

取值Claude Code 的行为
"auto"(默认)在 iTerm2、Ghostty 和 Kitty 中发送桌面通知。在 Apple Terminal 中,仅当该描述文件关闭了声音响铃时才发送响铃字符。其他 terminal 中不做任何事
"terminal_bell"在任何 terminal 中触发响铃字符
"iterm2"发送 iTerm2 桌面通知
"iterm2_with_bell"iTerm2 桌面通知加响铃
"kitty"发送 Kitty 桌面通知
"ghostty"发送 Ghostty 桌面通知
"notifications_disabled"不发送任何通知

该设置可以放在任意 settings 文件中:用户级(~/.claude/settings.json)、项目级(.claude/settings.json)或本地(.claude/settings.local.json)。旧版本把它放在 ~/.claude.json 中,Claude Code 仍会读取留在那里的值。

03内置通知何时触发

根据 Anthropic 的文档,内置提醒与 Notification hook 的触发时机相同。在 terminal 会话中:

  • 权限 prompt:prompt 等待约六秒且没有任何按键后触发。每次按键都会重新计时。
  • 完成:Claude 停止约 60 秒后触发,前提是这期间你没有输入,且没有后台 agent 仍在运行。

所以内置的“完成”提醒是有意延迟的。它的设计目的是在你走开时提醒你,而不是在你盯着屏幕时打扰你。如果想在每轮结束的那一刻就收到提醒,请改用 Stop hook(参见 Stop hook 指南)。

04各 terminal 配置

iTerm2(macOS)

iTerm2 默认会收到桌面通知,但需要你先在 iTerm2 中允许才会显示:

  1. 打开 Settings > Profiles > Terminal。
  2. 勾选 Notification Center Alerts。
  3. 点击 Filter Alerts,启用 Send escape sequence-generated alerts。

同时在 System Settings > Notifications 中确认已允许 iTerm2 显示通知。

Apple Terminal(macOS)

Apple Terminal 不会收到桌面通知。使用 "auto" 时,Claude Code 只有在检测到前台窗口的描述文件关闭了 Audible bell 时,才会发送静音响铃。如果描述文件开启了 Visual bell 或 Dock 弹跳选项,响铃会表现为窗口闪烁,或在 Terminal 处于后台时弹跳 Dock 图标。

注意一个细节:如果你在首次运行时接受了 Claude Code 的 terminal 设置提示,它会运行 /terminal-setup,从而关闭 Apple Terminal 描述文件中的声音响铃。想听到声音,就设置 "terminal_bell",并在 Settings > Profiles > Advanced 中重新开启 Audible bell。

Ghostty 和 Kitty(macOS 与 Linux)

两者无需配置即可收到桌面通知,并会转发到操作系统的通知中心。

其他终端

Windows Terminal、GNOME Terminal、Konsole、Alacritty、WezTerm、Warp 以及 IDE 终端默认都不会收到任何提醒。可以设置 "terminal_bell" 并开启终端自身的响铃处理,或者使用 hook。IDE 终端有各自的特殊情况,详见VS Code、Cursor 和 JetBrains 指南。

05通过 SSH 和在 tmux 中使用

桌面通知是一段由你本机终端解析的转义序列,所以即使 Claude Code 通过 SSH 运行在远程服务器上,通知也能送达。Ghostty 和 Kitty 无需额外配置即可转发。iTerm2 需要上面提到的提醒设置。

在 tmux 中,除非开启 passthrough,否则这段序列会被吞掉。把下面的内容加到 ~/.tmux.conf,然后运行 tmux source-file ~/.tmux.conf:

set -g allow-passthrough on

detach 的会话是另一回事:没有终端连接时,就没有任何东西能显示提醒。参见tmux 指南和通过 SSH 接收通知。

06内置提醒与 hook 搭配使用

Notification hook 与内置提醒同时运行,而不是取代它。Anthropic 的文档明确指出,即使设置为 "notifications_disabled",hook 依然会触发:这个设置只改变 Claude Code 提醒你的方式,不影响 hook 是否运行。这样就能清晰分工:

  • 在电脑前用 "auto" 或 "terminal_bell" 提醒。
  • 其他需求交给 hook,比如播放系统提示音、在收不到通知的终端里显示桌面通知,或者用 ntfy 推送到手机。
  • 如果 hook 已经会显示桌面通知,就设置 "notifications_disabled",避免收到两条。

例如,下面的配置会在 Claude 需要你处理时,在 macOS 上播放提示音,任何终端都适用:

{
  "hooks": {
    "Notification": [
      {
        "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
      }
    ]
  }
}

Linux 和 Windows 下的对应写法见 Linux 指南和 Windows 指南。

07内置选项的局限

  • 只在电脑上生效。响铃或通知来自你屏幕上的终端。走去厨房就会错过。
  • 取决于终端。很多常用终端不改设置就什么都收不到。
  • 无法直接回应。它只告诉你 Claude 在等待,你还是得回到键盘前。

Anthropic 的 Remote Control 搭配 Claude 移动应用,是获取手机推送的官方方式。对比指南将它与其他方案放在一起做了比较。

08Claude Code Notifier 的定位

如果你一直在电脑前工作,内置提醒加上 "terminal_bell" 可能就够了。Claude Code Notifier 适合你不在电脑前的时候。它的命令行工具 ccn 以 Claude Code hook 的形式运行,因此在 Mac、Windows 和 Linux 的任何终端里都能用,不依赖响铃设置。单独使用时,它会在 Claude 完成任务、需要权限或提问时显示桌面通知。配对手机后,你可以在手机上允许或拒绝权限、回答 Claude 的问题并发送下一条指令;如果你在最近 30 秒内打过字,手机上就不会有任何待处理的内容。参见 ccn 页面。

09常见问题

如何关闭 Claude Code 的通知?

设置 "preferredNotifChannel": "notifications_disabled",或者在 /config 的 Local notifications 中选择它。已配置的 Notification hook 仍会运行。

为什么 iTerm2 不显示 Claude Code 的通知?

iTerm2 需要在 Profiles > Terminal > Filter Alerts 下勾选 Notification Center Alerts 并启用 Send escape sequence-generated alerts,同时在 macOS 设置中授予通知权限。在 tmux 中还要设置 allow-passthrough on。

为什么 Apple Terminal 没有响铃?

Claude Code 的终端设置会关闭 Apple Terminal 的声音响铃。设置 "terminal_bell",并在描述文件的 Advanced 标签页中重新打开 Audible bell。

终端响铃在 VS Code 中有效吗?

默认无效。设置 "terminal_bell" 并检查 VS Code 的终端响铃设置,或者使用 hook。详见 IDE 指南。

Claude Code Notifier Claude Code 完成任务或需要你介入时,手机会收到 push,你可以直接在手机上批准、拒绝或回复。ccn 命令行工具在 Mac、Windows 和 Linux 上均可免费使用。
下载 iOS 版 下载 Android 版 安装 ccn

相关指南

  • 在 VS Code、Cursor 和 JetBrains 终端中接收 Claude Code 通知为什么 Claude Code 完成后 IDE 终端毫无动静,以及如何通过设置或 hook 在 VS Code、Cursor 和 JetBrains 中收到提醒。
  • 在 tmux 或 screen 中运行 Claude Code:从 detached 会话接收通知tmux 或 screen 中的 Claude Code 完成任务或需要你处理时及时收到通知:allow-passthrough、bell 提醒、会话命名,以及 detached 时的手机 push。
  • Claude Code Notification hook:何时触发、如何使用Claude Code 的 Notification hook 何时触发,permission_prompt 和 idle_prompt 的含义,它接收的输入,以及为什么会延迟触发。
  • 获取 Claude Code 通知的所有方式对比内置提醒、自己写的 hook、ntfy 和聊天 webhook、Anthropic 的 Remote Control 以及各类通知 app,逐一对比它们能做什么、不能做什么。
claude-code-notifier

Claude Code Notifier 是一款独立的第三方应用,与 Anthropic, PBC 无关联,亦未获其认可或赞助。“Claude”和“Claude Code”是 Anthropic, PBC 的商标。

应用 iOS 应用 Android 应用 适用于 macOS、Windows 和 Linux 的 ccn 全部指南
法律信息 隐私政策 服务条款 其他语言 © 2026 touchtap。保留所有权利。 TouchTap Ltd 注册于英格兰和威尔士,公司编号 13942589。