想要 Claude Code 在任务完成时自动发出声音提醒吗?本文为你提供两种简单方法,并支持自定义专属提示音效!
核心内容:
- 官方内置的声音提示配置方法
- 通过 Hooks 功能实现个性化自定义音效
- 跨平台兼容方案与音频格式转换技巧

要让纯命令行的 Claude Code 播放声音,目前主要有两条路径。
第一种是官方文档明确推荐的方式:在任务完成时启用声音警报,借助的是终端工具自带的声音播放功能。
claude config set --global preferredNotifChannel terminal_bell
macOS 用户需要额外注意——系统设置中有一道关键权限:请前往「系统设置 → 通知 → [终端应用]」中开启通知权限,否则即使配置了上述命令,声音也无法正常触发。
如果你使用 iTerm2,可以在任务完成时收到警报。打开 iTerm2 偏好设置,导航到「配置文件 → 终端」,勾选“静音铃声”和过滤警报 → “发送转义序列生成的警报”,然后设置一个你偏好的通知延迟。详细设置路径可参考下图:

不过,官方方案只提供固定的系统铃声,略显单调。想要更丰富的体验?那就走第二条路:通过 Claude Code Hooks 自定义声音。
自定义的优势显而易见:你可以在不同阶段使用不同音效。例如,严格在“任务完成/等待你输入”时播放指定提示音,其他环节也能按个人喜好自由定制。
在 Claude Code 中输入 /hooks,选择事件:
- Stop = Claude 回复结束
- Notification = Claude 等待你的操作或权限

选择 Stop 事件 → 新增 Hook → 命令填写下面的播放指令。这条命令可以直接在终端中播放声音,本质上就是在事件触发后调用该命令来播放你指定的音频文件。
afplay /System/Library/Sounds/Glass.aiff
保存到用户设置后,Claude 每次完成响应都会自动播放音效。当然,你也能替换成其他指令:
osascript -e 'beep' # 系统蜂鸣 say "Claude 任务完成" # 语音播报
Windows 用户可以使用下面这条命令(未经全面测试,但理论上应该可行):
powershell -c "(New-Object Media.SoundPlayer 'C:\Windows\Media\Windows Notify System Generic.wav').PlaySync()"
/System/Library/Sounds/Glass.aiff 是 macOS 内置的系统声音。但如果你觉得系统铃声过于乏味,完全可以增加一些趣味——比如下载一段游戏音乐,瞬间回到彩铃时代。
难点在于 .aiff 格式的音频文件不太容易找到。别担心,一行 macOS 自带的命令就能将 mp3 转换为 aiff:
afconvert -f AIFF -d BEI16@44100 input.mp3 output.aiff
转换完成后,修改 hooks 中的播放路径即可。例如,这里就加入了一段悠远的音乐:

