【记录】Claude Code|Windows11给Claude Code新增任务消息提示音

Claude Code 音频提示音配置指南(Windows 版)

文章目录

  • [Claude Code 音频提示音配置指南(Windows 版)](#Claude Code 音频提示音配置指南(Windows 版))
    • 前言
    • 前提条件
    • [1. 打开 Claude Code 配置文件](#1. 打开 Claude Code 配置文件)
    • [2. 添加音频 hooks 配置](#2. 添加音频 hooks 配置)
    • [3. 添加自动权限(避免每次弹确认)](#3. 添加自动权限(避免每次弹确认))
    • [4. 重启 Claude Code](#4. 重启 Claude Code)
    • [5. 验证配置](#5. 验证配置)
    • [6. 音效选择指南](#6. 音效选择指南)
    • 关键说明
      • [为什么推荐 SystemSounds 而不是 WAV 文件?](#为什么推荐 SystemSounds 而不是 WAV 文件?)
      • 多会话注意

前言

使用 Claude Code 时,最烦人的事情之一就是它经常需要你停下来操作------授权命令、确认执行、等待回复。如果你不盯着屏幕,它就一直卡在那里;如果你盯着屏幕,又浪费了宝贵的摸鱼时间。

Claude Code 提供了 hooks(钩子)机制,可以在特定事件发生时自动执行 shell 命令。利用这个机制,我们可以在 Claude 需要你操作时播放一声提示音,在任务完成时再播放一声,这样你完全可以不用盯着屏幕。

本文介绍如何在 Windows 环境下,使用 Claude Code 原生 hooks 配置音频提示音,无需额外安装任何软件。

前提条件

  • Windows 10/11 系统
  • 已安装 Claude Code CLI

可以先验证一下音频播放是否可用:

powershell 复制代码
# 测试播放系统提示音
powershell -Command "[System.Media.SystemSounds]::Asterisk.Play()"

如果能听到提示音,说明环境没问题,可以继续下一步。

1. 打开 Claude Code 配置文件

Claude Code 的全局配置文件位于 ~/.claude/settings.json,所有会话都会读取这个文件中的 hooks 配置。

powershell 复制代码
# 用记事本打开(如果文件不存在会自动创建)
notepad ~/.claude/settings.json

如果你之前没有配置过 hooks,文件中可能只有 permissions 等字段,没有 hooks 字段。如果已经有过其他 hooks 配置,你可以在现有基础上添加音频 hooks,它们会并行触发,互不影响。

2. 添加音频 hooks 配置

hooks 字段中添加 StopNotification 两个事件。这两个事件的含义:

事件 触发时机 作用
Stop Claude 需要你操作时(等待授权、确认命令等) 提醒你回来处理
Notification 任务完成时 告诉你事情做完了

hooks 下添加以下内容:

json 复制代码
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "powershell -ExecutionPolicy Bypass -Command \"[System.Media.SystemSounds]::Hand.Play()\""
          }
        ]
      }
    ],
    "Notification": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "powershell -ExecutionPolicy Bypass -Command \"[System.Media.SystemSounds]::Asterisk.Play()\""
          }
        ]
      }
    ]
  }
}

各字段说明:

  • "type": "command" --- 表示执行一个 shell 命令
  • powershell -ExecutionPolicy Bypass --- 绕过 PowerShell 执行策略,防止脚本被阻止
  • [System.Media.SystemSounds]::Hand.Play() --- 播放 Windows 系统内置音效
  • Hand --- 错误/拒绝提示音,短促醒目,适合 Stop 事件
  • Asterisk --- 信息提示音,柔和轻快,适合 Notification 事件

如果你的配置文件中已经有其他 hooks,只需在 StopNotification 数组中追加新的条目即可,例如:

json 复制代码
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          { "type": "command", "command": "your-existing-hook-command" },
          { "type": "command", "command": "powershell -ExecutionPolicy Bypass -Command \"[System.Media.SystemSounds]::Hand.Play()\"" }
        ]
      }
    ]
  }
}

3. 添加自动权限(避免每次弹确认)

每次触发 hook 时,Claude Code 默认会弹出权限确认框,问你是否允许执行该命令。如果不想每次都手动确认,可以把 PowerShell 命令加入自动允许列表。

编辑 ~/.claude/settings.local.json(如果不存在就创建),在 permissions.allow 数组中加入:

json 复制代码
{
  "permissions": {
    "allow": [
      "Bash(powershell*)"
    ]
  }
}

这个配置的含义是:匹配所有以 powershell 开头的 Bash 命令,自动允许执行,不再弹确认框。

注意settings.local.json 不会被同步到其他设备,只影响本机。如果你在多台机器上使用 Claude Code,每台都需要单独配置。

4. 重启 Claude Code

配置修改后,需要重启 Claude Code 才能生效。关闭当前会话,重新启动即可:

powershell 复制代码
# 在 Claude Code 中输入
/exit

# 然后重新启动
claude

5. 验证配置

启动新的 Claude Code 会话后,可以手动触发一下事件来验证:

  • 在 Claude Code 中输入一个需要授权的命令,当它弹出确认框时,你应该能听到 Hand 的提示音
  • 当 Claude 完成一个较长的任务时,你应该能听到 Asterisk 的完成音

如果没听到声音,检查以下几点:

  1. 手动测试 :在 PowerShell 中运行 powershell -Command "[System.Media.SystemSounds]::Hand.Play()"
  2. 是否重启了 Claude Code:修改配置后必须重启才生效
  3. 音响/耳机是否正常:检查音量和设备连接

6. 音效选择指南

可用音效速查

Windows 内置了 4 种系统音效,无需任何文件路径,不会遇到路径转义问题:

音效 命令 特点 推荐场景
Asterisk [System.Media.SystemSounds]::Asterisk.Play() 柔和信息音 任务完成、普通通知
Hand [System.Media.SystemSounds]::Hand.Play() 短促错误音 操作提醒、权限确认
Exclamation [System.Media.SystemSounds]::Exclamation.Play() 警告音 警告、异常
Beep [System.Media.SystemSounds]::Beep.Play() 基础蜂鸣声 简单提醒

试听方法

在 PowerShell 中逐个试听:

powershell 复制代码
Write-Host "1/4 Asterisk - 柔和信息音"
[System.Media.SystemSounds]::Asterisk.Play()
Start-Sleep -Seconds 2

Write-Host "2/4 Hand - 短促错误音"
[System.Media.SystemSounds]::Hand.Play()
Start-Sleep -Seconds 2

Write-Host "3/4 Exclamation - 警告音"
[System.Media.SystemSounds]::Exclamation.Play()
Start-Sleep -Seconds 2

Write-Host "4/4 Beep - 基础蜂鸣声"
[System.Media.SystemSounds]::Beep.Play()

事件与音效搭配建议

事件 含义 推荐风格 当前配置
Stop Claude 停下来等你操作 短促醒目,提醒你回来 Hand
Notification 任务完成 柔和轻快,表示结束 Asterisk

更换音效

如果想换其他音效,只需修改 settings.json 中的音效名称即可。例如把 Stop 的音效从 Hand 换成 Exclamation

json 复制代码
"command": "powershell -ExecutionPolicy Bypass -Command \"[System.Media.SystemSounds]::Exclamation.Play()\""

使用自定义 WAV 文件

如果系统内置音效不能满足需求,也可以播放自定义的 WAV 文件:

powershell 复制代码
powershell -Command "(New-Object Media.SoundPlayer 'C:/Windows/Media/Windows Ding.wav').Play()"

在 hooks 中使用时,注意路径使用正斜杠/)而非反斜杠(\),避免 JSON 转义问题:

json 复制代码
"command": "powershell -ExecutionPolicy Bypass -Command \"(New-Object Media.SoundPlayer 'C:/Windows/Media/Windows Ding.wav').Play()\""

关键说明

为什么推荐 SystemSounds 而不是 WAV 文件?

对比项 SystemSounds WAV 文件
路径问题 无需路径 需要完整文件路径
转义问题 反斜杠容易被吞掉
依赖 需要文件存在
可用音效 4 种内置音效 任意 WAV 文件

使用 SystemSounds 可以彻底避免路径转义问题,是最简单可靠的方案。

多会话注意

如果你同时运行多个 Claude Code 会话(比如开了多个终端),每个会话完成任务时都会触发 Notification hooks。这意味着你可能会在没有操作的时候听到声音------那是其他会话触发的。

解决办法:关掉不需要的 Claude Code 会话,只保留当前在用的。


本账号所有文章均为原创,欢迎转载,请注明文章出处:https://shandianchengzi.blog.csdn.net/article/details/161746781。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

相关推荐
summer__77771 小时前
“环保科技科普短视频大赛”通知
ai
装不满的克莱因瓶1 小时前
掌握典型卷积神经网络的搭建
人工智能·python·深度学习·神经网络·机器学习·ai·cnn
Mr.朱鹏1 小时前
科技资讯日报 · 2026-06-05
科技·ai·大模型·业界资讯
装不满的克莱因瓶1 小时前
基于 sklearn 工具和鸢尾花数据集,进行逻辑回归实战
人工智能·python·机器学习·ai·逻辑回归·sklearn
财经资讯数据_灵砚智能1 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月5日
大数据·人工智能·python·ai·信息可视化·自然语言处理·灵砚智能
garmin Chen1 小时前
Prompt工程入门:让AI按你的要求工作(2)--Prompt 高阶优化与结构化设计
java·人工智能·python·ai·prompt
yyk的萌2 小时前
创建属于自己的mysql的mcp
mysql·adb·ai·mcp
JaydenAI2 小时前
[MAF预定义Agent中间件-01]LoggingAgent——在Agent调用前后输出日志
ai·c#·agent·maf·agent管道·agent中中间件
JaydenAI2 小时前
[MAF预定义的AIContextProvider-10]TodoProvider——用TodoList驱动Agent的任务执行
ai·c#·agent·maf