Claude Code人工确认与任务结束提醒配置
1. Claude Code人工确认与任务结束提醒配置(Windows)
1.1. 概述
Claude Code 支持 hook 机制,可利用其 Stop 与 Notification 事件实现桌面提醒功能。配置后,无需持续关注 Claude Code 的执行过程:当任务结束或需要用户确认时,系统会以声音与弹窗的方式即时提醒。
1.2. 提醒的作用
- 任务结束提醒:任务执行完成时弹出"任务完成"窗口并通过声音提醒。
- 需要确认提醒:Claude Code 需要用户授权时(如执行需权限的命令),弹出"需要确认"窗口,正文显示具体待确认内容,并通过声音提醒。
弹窗以独立进程弹出,不阻塞 Claude Code 的执行。
1.3. 环境要求
仅支持 Windows。推荐 Windows 10 / 11;Windows 7 / 8 / 8.1 也可运行,但需注意:
- 弹窗(
WScript.Shell.Popup)自 Win7 起均可用。 - 声音(
[console]::Beep):Win10+ 经默认音频设备播放,可靠有声;Win7/8/8.1 经 PC 喇叭播放,无喇叭的机器可能无声。 - "需要确认"弹窗的具体内容依赖
ConvertFrom-Json,需 PowerShell 3.0+。Win8+ 自带;Win7 默认为 PowerShell 2.0,需安装 Windows Management Framework 5.1。未安装时弹窗仍可弹出但不显示具体内容,不会报错。
依赖:系统自带 powershell.exe、已安装 Claude Code。
1.4. 配置方式
编辑 Claude Code 用户配置文件 ~/.claude/settings.json(路径为 C:\Users\<用户名>\.claude\settings.json),将以下 hooks 字段合并至其中(若已存在 env、mcpServers 等字段,予以保留,仅增改 hooks):
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"[console]::Beep(800,250);Start-Sleep -Milliseconds 80;[console]::Beep(1000,250);Start-Sleep -Milliseconds 80;[console]::Beep(1200,400);[Environment]::SetEnvironmentVariable('CCT','Claude Code - 需要确认','Process');[Environment]::SetEnvironmentVariable('CCX',('Claude 需要你的确认:'+[char]13+[char]10+[char]13+[char]10+(& { if ([Console]::IsInputRedirected){try{[string]((ConvertFrom-Json([Console]::In.ReadToEnd())).message)}catch{''}}else{''}})),'Process');Start-Process powershell -ArgumentList '-NoProfile','-Command','(New-Object -ComObject WScript.Shell).Popup([Environment]::GetEnvironmentVariable(''CCX''),0,[Environment]::GetEnvironmentVariable(''CCT''),48)|Out-Null' -WindowStyle Hidden\""
}
]
}
],
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"[console]::Beep(523,280);Start-Sleep -Milliseconds 180;[console]::Beep(784,280);Start-Sleep -Milliseconds 180;[console]::Beep(1047,280);Start-Sleep -Milliseconds 180;[console]::Beep(1568,420);[Environment]::SetEnvironmentVariable('CCT','Claude Code - 任务完成','Process');[Environment]::SetEnvironmentVariable('CCX','Claude 已完成任务,请查看结果。','Process');Start-Process powershell -ArgumentList '-NoProfile','-Command','(New-Object -ComObject WScript.Shell).Popup([Environment]::GetEnvironmentVariable(''CCX''),15,[Environment]::GetEnvironmentVariable(''CCT''),64)|Out-Null' -WindowStyle Hidden\""
}
]
}
]
}
command为单行 JSON 字符串,复制时请保持原样,勿折行;其中\"为 JSON 转义引号,''为 PowerShell 内嵌单引号,均为必要字符。
保存后重启 Claude Code,hook 于启动时加载。重启后令 Claude Code 完成一个任务或执行一个需授权的命令,即可触发对应提醒。
1.5. 提醒效果
任务结束(Stop 事件),于 Claude Code 回复结束时触发:
- 声音:C5 → G5 → C6 → G6(523 / 784 / 1047 / 1568 Hz),四声升调,每声 280ms、间隔 180ms、末声 420ms。
- 弹窗:标题
Claude Code - 任务完成,正文Claude 已完成任务,请查看结果。,15 秒后自动关闭。
需要确认(Notification 事件),于 Claude Code 需要授权时触发:
- 声音:800 → 1000 → 1200 Hz,三声升调。
- 弹窗:标题
Claude Code - 需要确认,正文动态拼接实际待确认内容(取自 hook 传入 JSON 的message字段),常驻直至用户点击 OK。
1.6. 自定义提醒方式
声音、弹窗文案、停留时长、图标等均可调整。可直接以自然语言向 Claude Code 提出修改要求,例如:
- “把任务完成的声音改成 3 声下行音调”
- “需要确认的弹窗 10 秒后自动关闭”
- “弹窗正文改成英文”
- “只保留声音,去掉弹窗的系统提示音”
- “任务完成改用《欢乐颂》开头几个音”
Claude Code 将直接修改 settings.json 中对应脚本,并当场播放或触发以确认效果。
更多推荐



所有评论(0)