我用codex编程的时候,交给它一个任务后,不想一直盯着屏幕。我希望它需要我交互时,或者是它执行完了当前任务时,能有个提示音或播放歌曲来告知我。该怎么实现?
我用codex编程的时候,交给它一个任务后,不想一直盯着屏幕。我希望它需要我交互时,也就是说我不反馈,它不往下执行了时(包括但不限于需要我确认,授权,输入第),或者是它执行完了当前任务时,能有个提示音或播放歌曲来告知我。该怎么实现?
主人,结论先行:能实现,就用 Codex 自己的 hooks 机制,不装任何新东西。 你本机代码码已经清到 0.149.1,而且 ~/.codex/hooks.json 里已经在跑 UserPromptSubmit / Stop 两个 hook,说明
这套机制你已经在用了——只需要再挂两个事件来放声音。
我核实了官方源码(openai/codex 仓库 codex-rs/hooks 与 config),event 清单和触发时机如下,正好覆盖你说的三种情形:

## 具体配置(填进 C:\Users\yfx\.codex\config.toml)
[hooks]
# 停下等你时:任务完成提示音
[[hooks.Stop]]
hooks = [
{ type = "command", command = "powershell -NoProfile -Command \"[System.Media.SystemSounds]::Asterisk.Play()\"", timeout = 10 },
]
# 需要你授权/确认时:另一种提示音
[[hooks.PermissionRequest]]
hooks = [
{ type = "command", command = "powershell -NoProfile -Command \"[System.Media.SystemSounds]::Hand.Play()\"", timeout = 10 },
]
说明几点:
- 声音不用额外文件:上面的 SystemSounds 是 Windows 系统自带提示音(Asterisk / Hand / Exclamation / Question 可选),零依赖。想要自定义歌曲/旋律,把命令里的声音换成自己的 .wav,
例如 (New-Object Media.SoundPlayer 'C:\Users\yfx\.codex\notify.wav').Play() (注意用 .Play() 异步返回,别用 .PlaySync(),否则会卡住 hook 超时)。
- 两个场景用不同声音:Hand 提示「需要你批」,Asterisk 提示「干完了」。
- 别同时再加 notify 选项:notify 其实和 Stop 都在「turn 完成」时触发,两个都配会双响。用 hooks 就足够,且 PermissionRequest 只能靠 hooks 实现。
- 改完要重启 Codex 让配置生效;首次运行新 hook 时 Codex 可能弹一次信任确认,同意即可(你项目已 trust,一般直接过)。
补充一个不写文件也能用来验证的思路:你自己可以先在 PowerShell 里跑 [System.Media.SystemSounds]::Asterisk.Play() 确认声音正常,再写进配置。
要不要我直接帮你把这 6 行写进 C:\Users\yfx\.codex\config.toml?改动在你主目录的全局配置、不在当前项目内,需要你点头我才动手。你也可以先告诉我想要用哪个系统提示音、或者指定某
个 .wav/歌曲路径,我按你的选择配。
葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。
更多推荐

所有评论(0)