
📑车友投稿:如何为 Claude Code 实现 Windows 通知系统:让 AI 助手主动提醒你任务完成
前言
在使用 Claude Code 进行开发时,我经常会让它执行一些耗时较长的任务,比如重构代码、实现新功能或修复复杂的 bug。问题是,我经常需要切换到其他工作(其实是刷剧/打游戏),导致忘记检查 Claude Code 是否已经完成任务,或者过了很久才发现它已经完成任务了,导致浪费了一些AI产出的时间。
今天,我想分享一个实用的解决方案:为 Claude Code 添加 Windows 通知功能。当任务完成时,你会在 Windows 右下角收到一个气泡通知,再也不用担心错过 AI 助手的完成提醒了。

开发环境
- Windows 11/10
- WSL2 (Ubuntu)
- Cursor (VS Code) with Remote WSL
- Claude Code CLI
实现原理
WSL 虽然是 Linux 环境,但它可以直接调用 Windows 的可执行文件。我们利用这个特性,通过 PowerShell 调用 Windows Forms API 来显示通知。
实现步骤
1. 创建全局通知脚本
作用:创建一个 Python 通知脚本并安装到系统路径,这样在任何项目中都可以用一个简短的命令发送通知。Python 脚本也更易于维护和扩展。
创建 claude-notify.py
脚本:
#!/usr/bin/env python3
"""
Claude Code 通知脚本
用于在 Claude Code 完成任务后发送 Windows 通知
"""
import sys
import subprocess
import os
from datetime import datetime
def send_windows_notification(title="✅ Claude Code 任务完成", message="任务已完成,请查看结果"):
"""
通过 PowerShell 发送 Windows 通知
"""
powershell_script = f'''
Add-Type -AssemblyName System.Windows.Forms
$notify = New-Object System.Windows.Forms.NotifyIcon
$notify.Icon = [System.Drawing.SystemIcons]::Information
$notify.Visible = $true
$notify.ShowBalloonTip(10000, '{title}', '{message}', 'Info')
Start-Sleep -Seconds 3
$notify.Dispose()
'''
try:
subprocess.run(
['powershell.exe', '-Command', powershell_script],
capture_output=True,
text=True,
check=False
)
except Exception as e:
print(f"[{title}] {message}")
print(f"通知发送失败: {e}")
def main():
"""
主函数:解析参数并发送通知
"""
# 获取命令行参数
if len(sys.argv) > 2:
title = sys.argv[1]
message = sys.argv[2]
elif len(sys.argv) > 1:
title = sys.argv[1]
message = "任务已完成,请查看结果"
else:
# 默认参数,可以包含项目名称
project_name = os.path.basename(os.getcwd())
title = "✅ Claude Code 任务完成"
message = f"项目: {project_name}\n时间: {datetime.now().strftime('%H:%M:%S')}"
# 发送通知
send_windows_notification(title, message)
if __name__ == "__main__":
main()
使用方法:
# 默认通知(自动包含项目名称和时间,显示5秒)
claude-notify
# 自定义标题
claude-notify "构建完成"
# 自定义标题和消息
claude-notify "❌ 测试失败" "单元测试未通过,请检查代码"
# 自定义标题、消息和显示时长(秒,最大7秒)
claude-notify "🚀 部署成功" "生产环境部署完成" 7
# 注意:由于 Windows 系统限制,通知最多显示7秒
# 通知会保留在通知中心(Win+A),可以随时查看历史
安装到全局路径:
# 创建本地 bin 目录(如果不存在)
mkdir -p ~/.local/bin
# 复制脚本并添加执行权限
cp claude-notify.py ~/.local/bin/claude-notify
chmod +x ~/.local/bin/claude-notify
# 确保 PATH 包含 ~/.local/bin(如果还没有)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

2. 配置 Claude Code 自动通知
作用:通过在项目中创建 CLAUDE.md 文件,让 Claude Code 在完成任务后自动调用我们的通知脚本。
在项目根目录创建 CLAUDE.md
文件,添加自动通知规则:
* 每次完成任务后,使用以下命令发送Windows通知给我,标题包含项目名称,消息中简要说明完成了什么任务:
bash
claude-notify “✅ [项目名] 项目任务完成” “完成内容:[简要描述本次完成的任务]”

所有工作已经做完了,现在自己让Claude Code正常执行AI任务,他就会自动概括本次的任务结果并推送到Windows桌面给你。

扩展思路
如果你需要在其他场景接收通知,可以考虑:
- Webhook 通知:通过企业微信、飞书、Slack 等工具的机器人 Webhook
- Telegram 通知:通过 Bot API 发送到手机
- 邮件通知:通过 SMTP 发送邮件提醒
使用体验
实际使用中,这个通知系统带来了以下好处:
- 专注力提升:不用频繁检查任务状态,可以专心做其他事情
- 效率提高:任务完成立即知晓,减少等待时间
- 错误快速响应:任务失败时立即收到通知,可以快速处理
- 进度可视化:通过通知了解任务执行时间,优化工作流程
故障排除
通知不显示?
- 检查 Windows 通知设置是否开启
- 测试 PowerShell 命令是否正常:
powershell.exe -Command "Write-Host 'Hello from PowerShell'"
- 确认 Windows Forms 可用:
powershell.exe -Command "
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show('测试')
"
WSL 相关问题
- 确保使用 WSL2(性能更好)
- 检查 WSL 是否能访问 Windows 程序:
which powershell.exe
总结
通过这个简单的通知系统,我们成功地让 Claude Code 变得更加”主动”。它不仅提高了开发效率,还让 AI 辅助编程的体验更加流畅。
这个方案的优点:
- ✅ 实现简单,无需安装额外软件
- ✅ 跨项目通用,每个项目配置 CLAUDE.md 即可
- ✅ 可扩展性强,支持多种通知方式
- ✅ 与 Cursor (VS Code) 完美集成
希望这个分享能帮助到同样使用 Claude Code 的开发者们。如果你有更好的实现方式或建议,欢迎交流讨论!
相关链接
本文基于实际项目经验编写,代码已在 Windows 11 + WSL2 Ubuntu 环境下测试通过。