当前位置: 首页 > news >正文

Claude Code + Windows 桌面消息通知配置指南

Claude Code Windows 桌面通知配置指南

让 Claude Code 在完成任务后自动弹出 Windows 桌面通知,不用一直盯着屏幕等。

前置条件

  • Windows 10 或 Windows 11
  • Claude Code CLI 已安装并能正常使用

安装步骤

第一步:创建通知脚本

创建目录%USERPROFILE%\.claude\scripts\,然后在其中新建文件notify.ps1,内容如下:

param([string]$Title="Claude Code",[string]$Message="Task completed!")try{[void][Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime][void][Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom, ContentType = WindowsRuntime]$AppId='{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe'$escapedTitle=[System.Security.SecurityElement]::Escape($Title)$escapedMessage=[System.Security.SecurityElement]::Escape($Message)$Template= @" <toast duration="short"> <visual> <binding template="ToastGeneric"> <text>$escapedTitle</text> <text>$escapedMessage</text> </binding> </visual> <audio src="ms-winsoundevent:Notification.Default"/> </toast> "@$Xml=New-ObjectWindows.Data.Xml.Dom.XmlDocument$Xml.LoadXml($Template)$Toast=[Windows.UI.Notifications.ToastNotification]::new($Xml)[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($AppId).Show($Toast)}catch{Add-Type-AssemblyName System.Windows.Forms$NotifyIcon=New-ObjectSystem.Windows.Forms.NotifyIcon$NotifyIcon.Icon =[System.Drawing.SystemIcons]::Information$NotifyIcon.BalloonTipTitle =$Title$NotifyIcon.BalloonTipText =$Message$NotifyIcon.Visible =$true$NotifyIcon.ShowBalloonTip(10000)Start-Sleep-Seconds 5$NotifyIcon.Dispose()}

第二步:创建自定义命令(可选,支持手动发通知)

创建目录%USERPROFILE%\.claude\commands\,然后在其中新建文件notify.md,内容如下:

Send a Windows desktop toast notification to inform the user. The user typed: $ARGUMENTS If $ARGUMENTS is empty, use the default message: "Claude Code 任务完成!" Run this bash command to send the notification (replace <MESSAGE> with the notification text): ```bash powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$(cygpath -w "$HOME/.claude/scripts/notify.ps1")" -Message "<MESSAGE>"

If cygpath is not available, use the Windows path directly:

powershell.exe-NoProfile-ExecutionPolicyBypass-Command"&\"$env:USERPROFILE\\.claude\\scripts\\notify.ps1\"-Message '<MESSAGE>'"

After sending the notification, briefly tell the user “已发送桌面通知”.

### 第三步:配置 Stop Hook(自动通知) 打开 `%USERPROFILE%\.claude\settings.json`,在 JSON 根对象中添加 `hooks` 字段。 **完整的 settings.json 示例:** ```json { "hooks": { "Stop": [ { "matcher": "", "hooks": [ { "type": "command", "command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:/Users/你的用户名/.claude/scripts/notify.ps1", "async": true } ] } ] } }

注意:把C:/Users/你的用户名/替换为同事的实际用户目录路径。可以用echo %USERPROFILE%在 cmd 中查看。

如果settings.json中已有其他配置(如envenabledPlugins等),只需把hooks字段追加进去即可,不要覆盖原有内容。

第四步:验证

在 Claude Code 中直接输入以下内容让 Claude 发一条测试通知:

请运行 powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:/Users/你的用户名/.claude/scripts/notify.ps1 -Title "测试" -Message "通知功能正常!"

如果右下角弹出 Windows Toast 通知,说明配置成功。

文件结构总览

%USERPROFILE%\.claude\ ├── scripts\ │ └── notify.ps1 ← 通知脚本(必需) ├── commands\ │ └── notify.md ← 手动命令(可选) └── settings.json ← Hook 配置(必需)

使用方式

方式说明
自动通知每次 Claude 完成回复,自动弹出通知
手动通知在 Claude Code 中输入/notify 自定义消息

常见问题

Q: 没有弹出通知?

  • 确认 Windows 通知设置中没有禁用 PowerShell 的通知权限(设置 → 系统 → 通知)
  • 确认文件路径正确,没有中文或特殊字符

Q: 每次回复都弹通知太频繁?

  • settings.json中删除整个hooks字段即可关闭自动通知
  • 只保留/notify手动命令,需要时再用

Q: 通知内容能自定义吗?

  • 可以。手动通知通过/notify 消息内容自定义
  • 自动通知的默认消息定义在notify.ps1$Message参数默认值中,直接修改即可

实际效果演示:
在任务完成之后,自动弹窗通知,从此无需盯着命令行窗口,看任务有没有完成

http://www.jsqmd.com/news/847791/

相关文章:

  • PWM调制器小信号模型:从采样延迟到环路稳定性设计
  • 第14章 实践项目开发——智能温控系统14.5(下)
  • 告别Pico TTS!2024年Android离线TTS引擎实测:讯飞、Google、ITRI谁的中文语音更自然?
  • 大石桥宸智雅筑装饰官方联系方式合作电话 官方网站 官网 - 元点智创
  • 【JavaSE全面教学】Java IO流与文件操作Day14(2026年)
  • 转向现代C++——优先选用限定作用域的枚举型别,而非不限作用域的枚举型别
  • 【.NET新特性·第1篇】.NET 8:统一平台的成熟之作
  • AIGC应用工程师证书报考机构多维度实测对比 - 品牌企业推荐师(官方)
  • 26春 日总结22
  • Linux进程信息获取全攻略:从ps、top到/proc与psutil
  • 从链表到队列再到递归:三种C++解法搞定SWUST OJ#956约瑟夫问题(附完整代码)
  • 自己搭一个Java Web框架,你需要解决哪些问题
  • 从“马变斑马”到“卫星图转地图”:用CycleGAN/pix2pix玩转自定义数据集(附制作教程)
  • 告别抓瞎!手把手教你用逻辑分析仪调试SMBus电池管理通信(附BQ4050实战波形)
  • Linux网络数据包处理全流程:从系统调用到网卡驱动的深度解析
  • MySQL 单行函数笔记(日期时间函数)
  • 性价比高生产的重庆轴类加工厂哪家推荐 - 品牌企业推荐师(官方)
  • UVM验证中add_typewide_sequence与add_sequence的区别与实战应用
  • 别再乱定义坐标系了!ArcGIS数据处理中坐标系问题的终极排查手册
  • 信号处理与行为金融视角下的股价波动与量化投资建模方法【附代码】
  • 5分钟极速上手:BOTW-Save-Editor-GUI 塞尔达传说存档编辑器完整指南
  • 测试工程师的代码能力:为什么测试工程师必须会写代码
  • 推荐一款PC复制粘贴增强工具
  • 瑞萨电子2019年中国市场战略与MCU/SoC产品深度解析
  • 医生私下不告诉你的健康查询真相:Perplexity健康科普查询的3个伦理盲区与2种合规替代路径
  • AI驱动的数据库性能优化
  • 实战指南:基于F3-Net与PyTorch搭建你自己的DeepFake检测器(FaceForensics++数据集)
  • Sentinel-3A OLCI 1B 级地球观测降分辨率(ERR)数据,版本 1
  • 加密货币社区 Google 官方邮件钓鱼威胁机理与防御体系研究
  • 利润增长,是设计出来的