Claude Code

关注公众号 jb51net

关闭
AI > Claude Code >

Claude Code桌面消息通知配置全攻略

搬码侠

适用场景:Claude Code 在后台跑任务时,你不想盯着终端;当它需要授权需要你回答问题、或任务结束时,让系统直接弹出桌面通知提醒你回来处理即可。
本文仅包含桌面通知,不含钉钉/企业微信等第三方通知。

Claude Code桌面消息通知配置全攻略

1. 前言:为什么要给 Claude Code 加“消息提醒”?

Claude Code 在实际使用中经常出现这些“你离开就错过”的节点:

解决思路很简单:利用 Claude Code 的 hooks 机制,在特定事件发生时自动执行一条命令,去调用一个 Python 脚本发送桌面通知

2. 效果展示

配置完成后,你会在以下时机收到系统通知(Windows 通知中心):

3. 环境准备:Python + plyer

3.1 准备 Python(建议虚拟环境)

确保你能在本机正常运行 Python。建议为脚本建一个独立目录并创建 venv:

python -m venv .venv 

3.2 安装桌面通知库 plyer

pip install plyer 

4. 通知脚本详解:send_notification.py(完整代码 + 说明)

下面是一个“够用且干净”的桌面通知脚本:从命令行接收消息内容,可选 --title 自定义标题。

import sys
import argparse
from plyer import notification
def send_notify(title: str, message: str) -> None:
    notification.notify(
        title=title,
        message=message,
        timeout=3,  # 通知停留时间(秒),可按需调整
    )
def main() -> None:
    parser = argparse.ArgumentParser(description="Send desktop notification.")
    parser.add_argument("message", nargs="+", help="Notification message")
    parser.add_argument("--title", default="Claude Code 通知", help="Notification title")
    args = parser.parse_args()
    message = " ".join(args.message)
    send_notify(args.title, message)
if __name__ == "__main__":
    main()

4.1 先手动验证脚本是否能弹通知

在命令行执行:

python send_notification.py 任务完成啦 --title Claude 

能正常弹出桌面通知后,再进入下一步(hooks 配置)。

5. Claude Code 配置详解:settings.json(结构 + 关键点)

Claude Code 的 settings.json 里,我们主要用两部分:

6. hooks 触发点怎么选?(三类足够覆盖大多数场景)

你现有配置的思路非常实用,基本分三类:

  1. PermissionRequest:需要授权时提醒(最重要)
  2. Notification:状态类提醒(认证成功、空闲等待、需要你补充信息)
  3. Stop:任务结束提醒

hooks 的执行方式是 type: "command",本质就是“跑一条命令”,我们把命令写成调用 Python 脚本即可。

7. 可直接复用的配置模板

把下面模板按需替换路径即可(重点替换两处:你的 python.exe 路径与 send_notification.py 路径)。

注意:JSON 字符串中 Windows 路径需要写双反斜杠 \\

{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "***",
    "ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic",
    "API_TIMEOUT_MS": "3000000",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
  },
  "hooks": {
    "PermissionRequest": {
      "0": {
        "matcher": "Task|TaskOutput|Bash|Glob|Grep|ExitPlanMode|Read|Edit|Write|NotebookEdit|WebFetch|TodoWrite|WebSearch|KillShell|AskUserQuestion|Skill|EnterPlanMode",
        "hooks": {
          "0": {
            "type": "command",
            "command": "D:\\\\MyCodes\\\\ClaudeScript\\\\.venv\\\\Scripts\\\\python.exe D:\\\\MyCodes\\\\ClaudeScript\\\\send_notification.py 需要授权..."
          }
        }
      }
    },
    "Notification": {
      "0": {
        "matcher": "permission_prompt|idle_prompt|auth_success|elicitation_dialog",
        "hooks": {
          "0": {
            "type": "command",
            "command": "D:\\\\MyCodes\\\\ClaudeScript\\\\.venv\\\\Scripts\\\\python.exe D:\\\\MyCodes\\\\ClaudeScript\\\\send_notification.py Claude Code 有新状态..."
          }
        }
      }
    },
    "Stop": {
      "0": {
        "matcher": "",
        "hooks": {
          "0": {
            "type": "command",
            "command": "D:\\\\MyCodes\\\\ClaudeScript\\\\.venv\\\\Scripts\\\\python.exe D:\\\\MyCodes\\\\ClaudeScript\\\\send_notification.py 任务完成..."
          }
        }
      }
    }
  }
}

7.1 我建议你这样改得更“可读”

你可以把三条命令的文案改得更直观,例如:

8. 常见问题 FAQ(踩坑集中区)

Q1:不弹通知,但脚本手动运行是好的?

Q2:弹了通知,但内容不对/中文乱码?

Q3:PermissionRequest 为什么匹配这么多?

Q4:通知太快消失?

9. 结语:这套配置带来的真实价值

配置好桌面通知后,你就不需要一直盯着 Claude Code 的输出:

对日常写代码、跑脚本、生成文档、长任务迭代非常省心。

以上就是Claude Code桌面消息通知配置全攻略的详细内容,更多关于Claude Code桌面消息通知配置的资料请关注脚本之家其它相关文章!