Codex 跑长任务时,最尴尬的是——你去喝了杯咖啡回来,发现它卡在一个需要授权的步骤等了两个小时。本期教你用 Hooks(钩子) 给 Codex 装上语音提醒,让它任务开始、需要审批、执行结束时自动说话告诉你,全程不用盯屏幕。
原理:Codex Hooks 是什么
Hooks 是 Codex 任务生命周期中的关键节点。你可以在每个节点绑一个脚本,让 Codex 自动执行。本次实战用到三个节点:
| Hook 名称 | 触发时机 |
|---|---|
session_start |
收到你的指令,开始执行任务 |
permission_request |
需要用户授权(删文件、写文件等) |
stop |
任务执行完毕 |
第一步:准备音频文件
我们需要三个音频提示音,格式不限(mp3/wav 均可)。可以从免费音效库下载,也可以自己录:
start.mp3—— 任务开始的提示音(轻松「叮」一声)confirm.mp3—— 等待授权的提示音(稍长,引起注意)done.mp3—— 任务完成的提示音(愉悦的上扬音)
把三个音频放进项目的 .codex/audio/ 目录。
第二步:创建 hooks.json
在项目根目录新建 .codex/hooks.json,内容如下:
{
"hooks": {
"session_start": {
"type": "command",
"command": ["sh", "-c", "scripts/speak.sh start"],
"timeout": 5
},
"permission_request": {
"type": "command",
"command": ["sh", "-c", "scripts/speak.sh confirm"],
"timeout": 5
},
"stop": {
"type": "command",
"command": ["sh", "-c", "scripts/speak.sh done"],
"timeout": 5
}
}
}
第三步:创建播放脚本
在项目根目录新建 .codex/scripts/speak.sh(Mac/Linux)或 speak.bat(Windows)。
Mac 版本(speak.sh):
#!/bin/bash
AUDIO_DIR="$(dirname "$0")/../audio"
case "$1" in
start) afplay "$AUDIO_DIR/start.mp3" ;;
confirm) afplay "$AUDIO_DIR/confirm.mp3" ;;
done) afplay "$AUDIO_DIR/done.mp3" ;;
esac
Windows 版本(speak.bat):
@echo off
set AUDIO_DIR=%~dp0..\audio
if "%1%"=="start" powershell -Command "(New-Object Media.PlayState).SoundLocation='%AUDIO_DIR%\start.mp3'"
if "%1%"=="confirm" Start-Process powershell -ArgumentList '-Command,[console]::beep(800,200)'
if "%1%"=="done" powershell -Command "Add-Type -AssemblyName System.Windows.Forms; [System.Media.SystemSounds]::Hand.Play()"
然后给脚本加执行权限(Mac/Linux):
chmod +x .codex/scripts/speak.sh
第四步:在 Codex 中信任 Hooks
配置完成后,打开 Codex,会弹出信任提示。点击 Review Hooks,确认三个 Hook 后点击 Trust(信任)。
第五步:测试
随便给 Codex 发一个会触发权限请求的任务,比如:
删除桌面上的 test.txt 文件
观察效果: 1. 任务开始时听到 start 提示音 2. 需要删文件时听到 confirm 提示音(此时你可以去喝咖啡) 3. 完成后听到 done 提示音
💡 进阶用法:Hooks 不只是播放声音,它可以运行任意脚本。你可以让它同时发飞书/邮件通知、推送手机消息,甚至调摄像头拍一张当前屏幕状态留档。
来源:抖音 @jack_dprt《Codex Hooks 长任务语音提醒配置教程》
资料最后核对日期:2026-09-05 · 内容整理自 CodexGuide 社区公开教程