March 19, 2026

图源:https://www.ageofempires.com/news/visual-look-at-aoe2de/
本文总计 1.31k 字, 阅读约需要 3 分钟
前阵子突然流行起了利用 claude code 的 hooks 系统播放自定义音效的风潮。毕竟现在 agentic vibe coding 已经很大程度上替代了手写代码,但都是 async 的流程,总要 context switch 和一直盯着 agent 非常影响时间利用和摸鱼心情。因此有个提示音让 coding agent 在背景里工作,任务结束、需要人类注意、批准和 review 的时候播放音效,能让人更放心地去摸鱼。今天突发剩余时间,终于晚了 N 久追上了热点给自己的工作电脑也设置好了,此处分享我的音效包。(没想到本博客负隅顽抗良久也有 AI 工具相关内容了,但跟 AI 本身没有太大关系,且听我狡辩)
狡辩理由 #
- 讲道理 claude code(至少是 opus 4.5 之后?)现在变得质量足够好之后确实一定程度缓解了我的厌班,就本来嘛它很擅长那种想清楚了怎么做之后执行 tedious 任务,而我们用的 java microservices 里全是这种东西,这也是之前开始上班一大阻碍。就每次都得鼓起勇气才能开始去吃这一坨屎。先前 model 不够好的时候给它耐心教会准确吃屎的冷启动时间太长了,错误也太多,不是玩工具本身的话更浪费时间,就很抵触,而抵触上班的时候显然是最厌班的时候。但现在足够好了基本你给个 recipe 它就能把饭做出来,美美验收就行,中间空档还能去干点别的杂活儿,适应了之后启动阻力真的小了很多……(当然也可能是我现在这个 service 架起来了它照抄部分比较多所以才比较顺手)然后有极少数特别简单自己一看就能改一两行的问题它要自己绕半天,偶尔碰到的时候自己改掉就行。
- 本篇其实也不能算是啥教程毕竟延时跟风都过去好多个月了…… 就是刚好今天搞了之后分享一下我用的音效包。跟当年提过的用 power mode 差不多,都是给不得不做的工作稍微加点 gamify 元素和 QOL 提升而已。还是坚信这跟动不动折腾工具就能造出第二大脑提升几个数量级生产力的 AI bro 不是一个物种。
狡辩完毕。为什么推迟跟风呢,其实早先久想设置了但之前工作比较烦自然提不起性子,最近稍微闲点,刚好工作群里摸鱼的时候有人分享放「魔兽争霸3」音效的 setup,然后有人给了 peon ping 这个插件,支持多款 coding agent,省去安装和 setting change,brew install 就能用。我不是魔兽粉,没有很能被 peon 激励到,于是随便在网上搜其它音效。
音效选择 #
看到了这篇教程里用的是「帝国时代」,甚合我意。虽然其实没有玩得多精,但毕竟是童年的入坑游戏之一,早年第一个博客甚至还用了好长一段时间 AOE2 的菜单音效做背景音乐,感情很深。
于是光速在网上搜了 AOE 音效下载,自己裁切了一下自己想用的部分,修改了设置。这里放出我的 setup 供大家参考。
| Event | Sound | Why |
|---|---|---|
| SessionStart | 游戏里的战号声 | |
| Notification | 战号声提醒有需要批准的活动 | |
| Stop | 收到攻击时候的警铃。Agent 做完事之后的提醒 | |
| PreCompact | 用 compact 把之前的废话压扁方便重建 |
原版教程还有个接到指令后村民的"yes",个人觉得有点太烦/频繁了大可不必,就只放了这三个。
设置 #
下载音效后解压缩到自己的 ~/.claude/sounds 里,然后编辑 ~/.claude/setting.json 加入下面的 setting (记得 validate json, /doctor 也可以看 setting 是否 valid):
"hooks": {
"SessionStart": [
{
"matcher": "startup|clear",
"hooks": [
{
"type": "command",
"command": "afplay ~/.claude/sounds/age_of_empire_horn.mp3 &"
}
]
}
],
"Notification": [
{
"matcher": "permission_prompt",
"hooks": [
{
"type": "command",
"command": "afplay ~/.claude/sounds/age_of_empire_horn.mp3 &"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "afplay ~/.claude/sounds/age_of_empire_bell_underattack.m4a &"
}
]
}
],
"PreCompact": [
{
"hooks": [
{
"type": "command",
"command": "afplay ~/.claude/sounds/age_of_empire_destruct.m4a &"
}
]
}
]
}
教程中提到一个需要注意的地方: 文件结尾的 & 是 mac 自带的音频播放命令 afplay 的背景播放指令,确保播放音频不会打乱 Claude 的其它操作。
抛砖引玉一下,大家有自己好玩的音效包也可以在评论中分享。
类似文章
- 静态博客两周年 & Hugo 装修小记之四
tutorial
hugo
code
- 给 Hugo 博客的代码区块更换主题
tutorial
hugo
code
- 静态博客一年啦!Hugo 装修小记之三
tutorial
hugo
code
- 用 Notion Calendar 打造高效 daily quest 系统
productivity
tutorial
patreon
- 一些低门槛的实用上网小技巧
tech
tutorial
productivity
如果您觉得本文对您有帮助,想支持我的博客创作,或者有特定的内容想要看到,或者想约 coffee chat 等,欢迎:订阅 Patreon 参与博客选题和定制服务在 Kofi 上给我买杯奶茶
❤️ 🤣 🤔 🤯


























