|

要让纯命令行的Claude Code 播放声音有两种方式。 一种是官方文档中的给的,在任务完成时启用声音警报,借助的是命令行工具本身自带的声音播放功能。 claudeconfigset--globalpreferredNotifChannelterminal_bell macOS用户记得在系统设置 → 通知 → [终端应用]中启用通知权限,不然即使设置了 也不会有任何的声音。 iTerm 2在任务完成时的警报,打开iTerm 2偏好设置,导航到配置文件 → 终端,启用”静音铃声”和过滤警报 → “发送转义序列生成的警报”,设置偏好的通知延迟,具体的设置路径如下图所示: 
另外我们也可以自定义声音,使用Claude Code Hooks。 自定义的好处是可以在不同的阶段定义不同的声音,比如严格在“任务完成/等待你输入”时播放指定音效,其他阶段的也可以按照自己的想法进行自由的定制。 在 Claude Code 输入 /hooks,选择事件 1.Stop=Claude回复结束 2.Notification=Claude等待你的操作/权限)。 
选择 Stop 事件 → 新增 Hook → 命令填写如下的播放指令,这条指令在命令行中也可以直接播放声音,其实也就是在事件发生之后 调用这段命令来播放指定的内容。 有关于claude Code 更多高级使用,可以看这个合集:AI编程高效开发指南 afplay/System/Library/Sounds/Glass.aiff 保存到用户设置后,Claude 每次完成响应都会播放音效。你也可以换成: osascript-e'beep'#系统蜂鸣
say"Claude任务完成"#语音播报 Windows的话,用下面这个,我没有测试。 powershell-c"(New-ObjectMedia.SoundPlayer'C:\Windows\Media\WindowsNotifySystemGeneric.wav').PlaySync()" /System/Library/Sounds/Glass.aiff是系统声音,我们也可以玩一点花的,比如下载游戏音乐的声音,梦回彩铃时代。 如果将aiff的音频格式太难找了,也可以将mp3转成aiff,一行Mac自带的命令行就可。 afconvert-fAIFF-dBEI16@44100input.mp3output.aiff 之后修改hooks中的播放路径,比如我这里就使用了一段悠远的音乐: |