给 Claude Code 加上 Windows 提醒——一个小功能,少操十份心

人和 AI 并行工作,最怕的就是"我让 AI 去做 A,然后自己去忙 B,结果 B 做完了 A 还没消息,不知道它卡在哪了也不知道要不要去管"。

加上 Windows Toast 提醒,就没这个问题了。

原理:Claude Code 的 Hooks 机制

Claude Code 提供了 Hooks------一种在特定事件发生时自动执行脚本的机制。你可以把 Hook 理解为"监听器":当某个事件(比如 AI 停下来、对话结束、需要你审批权限)发生时,Claude Code 自动帮你跑一段代码,这段代码可以弹出一个 Windows 通知,提醒你去关注。

核心流程:

复制代码
用户操作或AI行为 → 触发 Hook 事件 → 执行脚本 → 调用 win11toast → 桌面弹窗通知

你只需要做两件事:

  1. 安装 win11toast
  2. settings.json 里加几行配置

安装前提

1. 安装 Python 通知库

bash 复制代码
pip install win11toast

2. 验证安装成功

安装完成后,先跑一条命令确认 win11toast 能正常工作:

bash 复制代码
python -c "from win11toast import toast; toast('测试', '如果看到这个弹窗,说明安装成功')"

看到弹窗了,再继续往下配置。没看到弹窗,先重新安装:

bash 复制代码
pip install --force-reinstall win11toast

注意 :本文仅适用于 Windows 11 。Mac 用户需要用 osascriptterminal-notifier 等其他方案。

3. 确认配置文件位置

你的 settings.json 在:

makefile 复制代码
C:\Users\singsky\.claude\settings.json

所有 Hook 配置都写在这个文件里。

场景一:AI 停止时提醒我(Stop Hook)

最常用的场景:AI 停止了(可能遇到了问题,或者任务完成),弹个通知告诉你。

settings.jsonhooks 字段里添加:

json 复制代码
"Stop": [
  {
    "hooks": [
      {
        "command": "bash -c 'python -c \"from win11toast import toast; toast(\\\"Claude Code\\\", \\\"AI 已停止,请检查状态\\\")\"'",
        "type": "command"
      }
    ]
  }
]

场景二:会话结束时提醒我(SessionEnd Hook)

对话结束(主动关闭或超时),想确认一下有没有遗漏的任务。

json 复制代码
"SessionEnd": [
  {
    "hooks": [
      {
        "command": "bash -c 'python -c \"from win11toast import toast; toast(\\\"Claude Code\\\", \\\"会话已结束\\\")\"'",
        "type": "command"
      }
    ]
  }
]

场景三:权限请求时提醒我(PermissionRequest Hook)

需要你审批权限时(比如要执行危险命令),弹通知提醒你去看一下。

json 复制代码
"PermissionRequest": [
  {
    "hooks": [
      {
        "command": "bash -c 'python -c \"from win11toast import toast; toast(\\\"Claude Code 权限请求\\\", \\\"需要你批准某个操作\\\")\"'",
        "type": "command"
      }
    ]
  }
]

完整配置示例

下面是一个完整的 Hook 配置,把这几个场景都加进去。注意保留你已有的其他 Hook 配置。

json 复制代码
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "command": "bash -c 'python -c \"from win11toast import toast; toast(\\\"Claude Code\\\", \\\"AI 已停止,请检查状态\\\")\"'",
            "type": "command"
          }
        ]
      }
    ],
    "SessionEnd": [
      {
        "hooks": [
          {
            "command": "bash -c 'python -c \"from win11toast import toast; toast(\\\"Claude Code\\\", \\\"会话已结束\\\")\"'",
            "type": "command"
          }
        ]
      }
    ],
    "PermissionRequest": [
      {
        "hooks": [
          {
            "command": "bash -c 'python -c \"from win11toast import toast; toast(\\\"Claude Code 权限请求\\\", \\\"需要你批准某个操作\\\")\"'",
            "type": "command"
          }
        ]
      }
    ]
  }
}

如何合并到现有配置?StopSessionEndPermissionRequest 这三个块,复制到你现有的 settings.jsonhooks 字段里即可。如果某个事件已经存在,就合并数组,不要覆盖。

常用 Hook 类型一览

Hook 事件 触发时机 典型用途
SessionStart 开始新对话时 加载项目状态
SessionEnd 对话结束时 任务收尾提醒
Stop AI 停止工作时 检查是否卡住
PreToolUse 工具执行前 权限预检
PostToolUse 工具执行后 记录执行结果
PostToolUseFailure 工具执行失败 错误通知
UserPromptSubmit 提交提示词后 记录活动状态
PermissionRequest 请求权限时 提醒你审批

进阶:让提醒更聪明

自定义通知内容

可以把更多上下文信息放进通知里。例如,在 PostToolUseFailure 时显示错误类型:

json 复制代码
"PostToolUseFailure": [
  {
    "hooks": [
      {
        "command": "bash -c 'python -c \"from win11toast import toast; toast(\\\"Claude Code 出错了\\\", \\\"工具执行失败,请查看终端\\\")\"'",
        "type": "command"
      }
    ]
  }
]

多条提醒组合

同一个事件可以触发多条通知,或者同时执行其他操作(比如记录日志):

json 复制代码
"SessionEnd": [
  {
    "hooks": [
      {
        "command": "bash $HOME/.claude/hooks/on-end",
        "type": "command"
      }
    ]
  },
  {
    "hooks": [
      {
        "command": "bash -c 'python -c \"from win11toast import toast; toast(\\\"Claude Code\\\", \\\"会话结束\\\")\"'",
        "type": "command"
      }
    ]
  }
]

定期提醒检查(Bonus)

如果你在并行工作,可以给 AI 留一个任务清单文件,让它在每次 SessionEnd 时检查你有没有遗漏的待办:

python 复制代码
# ~/.claude/hooks/check-reminders.py
import os
from win11toast import toast

reminder_file = os.path.expanduser("~/.claude/reminders.txt")
if os.path.exists(reminder_file):
    with open(reminder_file) as f:
        lines = f.readlines()
    if lines:
        count = len(lines)
        toast("Claude Code 任务提醒", f"你有 {count} 个待办事项")

弹窗没出来?排查步骤

  1. 手动测试 win11toast 是否正常

    bash 复制代码
    python -c "from win11toast import toast; toast('测试', '检查是否能弹窗')"

    没弹 → 重新安装 pip install --force-reinstall win11toast

  2. 确认命令能执行

    bash 复制代码
    bash -c 'python -c "from win11toast import toast; toast(\"Test\", \"Test\")"'

    报错 → 检查 Python 路径,Windows 上可能需要用完整路径

  3. 检查 settings.json 格式是否正确

    • JSON 不能有多余逗号
    • 每个 Hook 数组内的对象结构要完整
    • 可以用在线 JSON 验证工具先过一遍
  4. 重启 Claude Code 配置修改后需要重启才能生效,关闭当前会话再开一个新对话


配好之后,你就再也不用担心"A 我让它去干什么了,现在什么情况"了。桌面通知弹一下,知道了,继续忙自己的。

让 Claude Code 帮你做(你只管验收)

不想自己改 JSON?把下面这条命令发给 Claude Code,它会帮你搞定所有配置,你只需要确认结果。

vbnet 复制代码
帮我把 win11toast 提醒加到 Claude Code 的 hooks 配置里。需要监听三个事件:
1. Stop:AI 停止时弹出"AI 已停止,请检查状态"
2. SessionEnd:会话结束时弹出"会话已结束"
3. PermissionRequest:权限请求时弹出"需要你批准某个操作"

配置文件在 C:\Users\singsky\.claude\settings.json,保留现有所有 hooks 不变,只新增这三个事件。

Claude Code 会:

  1. 读取你现有的 settings.json
  2. 追加 StopSessionEndPermissionRequest 三个 Hook 配置
  3. 保留你原有的所有 Hook 不动
  4. 把修改后的完整配置给你过目

你确认没问题,它再写入文件。整个过程你只需要发出一句话。

相关推荐
牧子川3 小时前
009-Transformer-Architecture
人工智能·深度学习·transformer
covco4 小时前
矩阵管理系统指南:拆解星链引擎的架构设计与全链路落地实践
大数据·人工智能·矩阵
沪漂阿龙4 小时前
AI大模型面试题:支持向量机是什么?间隔最大化、软间隔、核函数、LinearSVC 全面拆解
人工智能·算法·支持向量机
lifewange4 小时前
AI编写测试用例工具介绍
人工智能·测试用例
陕西字符4 小时前
2026 西安 豆包获客优化技术深度解析:企来客科技 AI 全域获客系统测评
大数据·人工智能
掘金安东尼4 小时前
GGUF、GPTQ、AWQ、EXL2、MLX、VMLX...运行大模型,为什么会有这么多格式?
人工智能
新知图书4 小时前
市场分析报告自动化生成(使用千问)
人工智能·ai助手·千问·高效办公
无心水4 小时前
【Hermes:安全、权限与生产环境】38、Hermes Agent 安全四层纵深:最小权限原则从理论到落地的完全指南
人工智能·安全·mcp协议·openclaw·养龙虾·hermes·honcho
旦莫4 小时前
AI驱动的纯视觉自动化测试:知识库里应该积累什么知识内容
人工智能·python·测试开发·pytest·ai测试
dfsj660115 小时前
第四章:深度学习革命
人工智能·深度学习