请提供原始标题,以便进行优化。
摘要
在ClaudeCode的停止钩子中配置PowerShell命令来播放WAV音频文件,可使任务结束时自动发出提示
Claude Code 任务结束会自己喊你:一个 Stop Hook 搞定提示音
顺便提一嘴,我用小米的 TTS 生成了一个“老铁666”的提示音文件。
最近发现一个特别实用的小技巧:给 Claude Code 加上一个任务结束提示音。操作本身不复杂,但体感提升很明显。以前让 Claude Code 改代码、跑检查、整理资料时,总是习惯性切换到浏览器或者微信,过一会儿才想起来回去看看。现在任务一结束就响一声,再也不用一直盯着终端了。
核心思路其实就一句话:在 Claude Code 的 Stop Hook 里配置一个播放声音的命令。
Claude Code Hooks 是什么
Claude Code 支持在一些关键事件发生时自动执行命令,比如工具调用前、工具调用后、会话开始、会话结束,以及 Claude 回复停止时。这类机制叫 Hooks。官方文档里说明,Hooks 可以配置在这些位置:
~/.claude/settings.json:用户级配置,所有项目生效.claude/settings.json:项目级配置,适合团队共享.claude/settings.local.json:本地项目配置,适合个人偏好
这次用到的是 Stop 事件。它会在 Claude Code 主 Agent 完成回复时触发,所以特别适合做“任务结束提醒”。
本机实现示例
检查本地 Claude Code 配置会发现,~/.claude/hooks/hooks.json 里已经有多组 Stop Hook,比如格式化检查、会话记录、桌面通知等。hook 记录里可以看到之前实际跑过的播放声音命令,大致是这样:
powershell -NoProfile -ExecutionPolicy Bypass -Command "(New-Object Media.SoundPlayer 'C:Users你的用户名.claudesoundslao-tie-666.wa v').PlaySync()"
音频文件建议放在:~/.claude/sounds/lao-tie-666.wa v
Windows 上最直接的播放方式就是用 PowerShell 调用 .NET 的 Media.SoundPlayer。PlaySync() 会同步播放 wa v 文件,声音播完后命令结束。
最小可用配置
如果只想实现“Claude Code 回复结束后响一声”,可以在 ~/.claude/settings.json 里加一段类似配置:
{"hooks": {"Stop": [{"hooks": [{"type": "command","command": "powershell -NoProfile -ExecutionPolicy Bypass -Command "(New-Object Media.SoundPlayer 'C:\Users\你的用户名\.claude\sounds\done.wa v').PlaySync()""}]}]}}
注意几点:
- Windows 建议使用
.wa v文件,Media.SoundPlayer对 wa v 支持最稳。 - JSON 里的 Windows 路径要写成双反斜杠,比如
C:\Users\...。 - 如果已经有
hooks配置,不要直接整段覆盖,应该把Stop里的 hook 合并进去。 - 修改完成后,重启 Claude Code,或者用
/hooks检查 hook 是否注册成功。
输入提示词一键帮你配置
如果不想手动改 JSON,也可以直接把这件事交给 Claude Code。建议不要只说“帮我加一个提示音”——这个描述太宽泛,Claude Code 可能不知道你想加在哪个 hook、音频文件放在哪里、是否需要保留已有配置。更稳妥的方式是把目标、环境、约束一次说清楚。
可以直接复制下面这段提示词:
请帮我给 Claude Code 配置一个任务结束提示音。目标:当 Claude Code 每次完成回复时,通过 Stop Hook 自动播放一个 wa v 音频。我的环境:- 系统是 Windows- Claude Code 配置目录是 ~/.claude- 音频文件希望放在 ~/.claude/sounds/done.wa v请你帮我完成这些事:1. 先检查 ~/.claude/settings.json、~/.claude/settings.local.json,以及 ~/.claude/hooks/hooks.json 里是否已经存在 hooks 配置。2. 如果已经有 hooks,不要覆盖原配置,只合并一个 Stop Hook。3. 如果 ~/.claude/sounds 目录不存在,请创建它。4. 如果 done.wa v 不存在,请提醒我放入 wa v 文件,不要伪造音频文件。5. Windows 播放命令使用 PowerShell 的 Media.SoundPlayer,并使用 PlaySync()。6. 修改前先备份原配置文件。7. 配置完成后,告诉我实际修改了哪个文件,以及如何用 /hooks 或一次简单对话验证。
如果有自己的音频文件——比如上面用的 lao-tie-666.wa v——把提示词里的文件名替换掉就行:
音频文件使用 ~/.claude/sounds/lao-tie-666.wa v
这里有个关键点:一定要强调“不要覆盖原配置,只合并 Stop Hook”。很多人的 Claude Code 里已经有其他 hook,比如格式化、日志、通知、会话记录。直接覆盖 hooks 字段,很容易把原来的自动化弄没。
配置完成后,可以让 Claude Code 再做一次自检:
请检查刚才添加的 Stop Hook 是否满足:1. JSON 格式合法;2. 不影响已有 hooks;3. 音频文件路径存在;4. PowerShell 命令可以独立运行;5. hook 失败时不会阻塞 Claude Code 的正常使用。
这样做的最大好处是:不用记 Claude Code hooks 的完整格式,也不用手动处理 JSON 转义。只需要把需求描述清楚,让 Claude Code 按当前机器上的真实配置来改。
参考
- Anthropic Claude Code Hooks 文档:docs.anthropic.com/en/docs/cla…
来源:互联网
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。