给 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. 把修改后的完整配置给你过目

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

相关推荐
xiezhr几秒前
现在的豆包跟以前不一样了
人工智能·ai·agent·ai agent·豆包
聚搜云——JuSouClouD7 分钟前
重庆华为云代理商:GPU加速云服务器和普通ECS有什么区别?AI、渲染和计算场景怎么选
服务器·人工智能·华为云
渡我白衣1 小时前
深入理解 Transformer:Transformer 究竟是什么?
java·linux·开发语言·c++·人工智能·深度学习·transformer
咖啡星人k2 小时前
2026 AI 自动化测试:让 AI 帮你写用例、跑测试、修 Bug(MonkeyCode 云端实战)
人工智能·功能测试·单元测试·测试用例·bug·集成测试
Elastic 中国社区官方博客8 小时前
搜索倍增器:推动收入、生产力和 AI 实现规模化
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
wjkjpcba8 小时前
机器人控制板PCBA怎么加工?从SMT贴片到BGA焊接解析机器人电子制造工艺
大数据·人工智能
青 春 记 忆8 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
小猪妈咪爱学法8 小时前
欧盟最新发布《AI数字综合法案(Digital Omnibus‑on‑AI,AI综合修订法案)
人工智能·网络安全
ZGIAI8 小时前
ZGI Workflow 变量池:接住节点输出
人工智能·架构
梵构广告8 小时前
提升品牌识别度有哪些方法?
人工智能