AI Common Notify:统一 AI 编程工具通知的小工具,TaoToken 场景下的配置实践

发布时间:2026/10/2 6:26:52
AI Common Notify:统一 AI 编程工具通知的小工具,TaoToken 场景下的配置实践 1. 多款 AI 编程工具通知分散漏提醒到底怎么破如果你同时开着 Claude Code、Cursor、Windsurf、Trae 这几个窗口跑任务大概率遇到过这种场景切到浏览器查个文档回来发现 Claude Code 早就把重构跑完了Cursor 那边文档生成也结束了但屏幕上一点动静都没有。你只能挨个窗口点进去看状态运气不好某个任务卡在权限确认上白白等了十几分钟。AI Common Notify 就是冲着这个痛点来的。它是一个开源的通知聚合工具核心能力是把不同 AI 编程工具的任务完成事件统一转成系统级通知弹出来。支持 Windows、macOS、Linux安装方式走 npm 全局包配置上提供 Hook、MCP、REST API 三种接入模式。适合谁用我自己的判断是同时使用两个以上 AI 编程工具、经常跑长任务、又不想一直盯着终端的开发者。它不替代任何编辑器只是在你和工具之间加了一层“任务完成喊你一声”的通道。这篇文章我会按实际配置顺序走一遍先装工具、再配 TaoToken 统一 Key 通道、然后给出 Claude Code 和 Cursor 两套可复制的配置片段、接着验证通知是否真的触发、最后把几个高频报错对照着排一遍。全程命令和 JSON 都能直接抄。2. TaoToken 统一 Key 与 API 通道的前置准备在配通知之前得先把 AI 编程工具本身的模型调用通道理顺。我试过在多个工具里分别填不同的 Key结果就是哪个工具额度用完了、哪个 Key 过期了排查起来特别乱。TaoToken 在这里的作用是提供一个统一的 API 入口让 Claude Code、Cursor 这些工具都走同一个 Base URL 和 Key通知工具只管通知模型调用的事交给统一通道。先拿 Key。打开 https://taotoken.net/api-keys 登录后创建一个 API Key复制出来存好。这个 Key 后面会同时填进 Claude Code 的配置和 Cursor 的模型设置里。Base URL 统一用https://taotoken.net/api注意这个地址不带任何查询参数直接填在工具的 API 配置项里就行。Model ID 根据你用的工具选Claude Code 走 Anthropic 协议的话填claude-sonnet-4-20250514这类模型标识Cursor 里如果走 OpenAI 兼容协议就填对应的模型名。三个要素记牢Base URL、API Key、Model ID后面每个工具的配置都围绕这三件套展开。TaoToken 的接入文档在 https://taotoken.net/doc 里面有各工具的具体填法遇到不确定的字段可以去对一下。配置通道这一步做完再装 AI Common Notify整个链路就是AI 工具通过 TaoToken 调模型 → 任务完成触发通知 → AI Common Notify 弹系统通知。3. 可复制配置Claude Code Hook 与 Cursor MCP 接入先装 AI Common Notify。本地需要有 Node.js建议 v18 以上。全局安装命令npm install -g ai-common-notifymacOS 或 Linux 下如果报权限错误前面加 sudosudo npm install -g ai-common-notify装完验证一下ai-common-notify --version ai-common-notify test第二条命令会弹一个系统通知看到弹窗就说明工具本身没问题。3.1 Claude Code 的 Hook 配置Claude Code 通过 Hook 系统在任务停止时触发通知。配置文件路径是~/.claude/settings.json全局或项目里的.claude/settings.json。写入以下内容{ hooks: { Stop: [ { matcher: .*, hooks: [ { type: command, command: ai-common-notify hook } ] } ] } }这段配置的意思是当 Claude Code 的 Stop 事件触发时也就是任务结束执行ai-common-notify hook命令发送通知。matcher 用.*匹配所有情况。同时别忘了在 Claude Code 里把模型通道指向 TaoToken。在 settings.json 里加上环境变量配置{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: 你的TaoToken Key } }这样 Claude Code 的模型调用走 TaoToken任务完成通知走 AI Common Notify两条线互不干扰。3.2 Cursor 的 MCP 配置Cursor、Windsurf、Trae 这类工具走 MCP 协议接入。在 Cursor 的 MCP 配置文件里写入{ mcpServers: { NotificationServer: { command: ai-common-notify, args: [mcp] } } }配完之后有个使用细节要注意MCP 模式下 AI 不会自动调用通知工具你需要在 prompt 末尾明确要求。比如在 Cursor 里写“最后任务完成时发送通知给我”或者在设置里把这句话加进 Rules这样每次都不用手动输入。Cursor 的模型通道同样在设置里填 TaoToken 的 Base URL 和 KeyModel ID 按你选的模型填。三件套齐了之后Cursor 的任务完成也会通过 MCP 触发 AI Common Notify 弹通知。3.3 全局配置文件AI Common Notify 的全局配置在~/.config/ai-common-notify/config.jsonLinux/macOS或%APPDATA%\ai-common-notify\config.jsonWindows。一个可用的配置示例{ server: { port: 6001, host: localhost, token: generated-secret-token }, notifications: { default_timeout: 0, default_sound: true, default_urgency: normal, title_template: {tool_name} - {project_name}, message_template: {message} }, scripts: { timeout: 30000, notify: [] }, logging: { retentionHours: 168 } }项目级配置放在项目根目录的.ai-notify.json优先级高于全局配置。比如你想让某个项目的通知标为紧急{ notifications: { default_urgency: critical, title_template: [PROJECT] {tool_name} - {project_name} } }4. 验证请求与成功结果确认配置写完之后必须验证不然你以为配好了实际任务跑完还是没通知。第一步单独测通知命令ai-common-notify send --title 测试通知 --message 这是一条验证消息 --urgency normal系统通知栏应该弹出对应内容。没弹的话先检查系统通知权限macOS 在“系统设置 → 通知”里确认终端或 Node 进程有权限。第二步测 API 模式。先启动 API 服务器ai-common-notify api然后用 curl 发一条通知请求curl -X POST http://localhost:6001/api/v1/notify \ -H Content-Type: application/json \ -H Authorization: Bearer your-secret-token \ -d { title: 任务完成, message: 代码重构已完成, urgency: normal, timeout: 0, sound: true }返回 200 且通知弹出说明 API 通道正常。第三步实际跑一个 Claude Code 任务。在项目里让 Claude Code 做一件小事比如“把 README 里的标题改一下”任务结束后看是否弹出通知。如果没弹去查日志ai-common-notify errlog ai-common-notify alllog日志里会记录每次通知的触发情况和错误信息。我实测下来最常见的失败原因是 Hook 配置的 JSON 格式有误比如多了一个逗号或者路径写错。用cat ~/.claude/settings.json | python -m json.tool可以快速校验 JSON 合法性。Cursor 那边验证类似让 Cursor 跑一个生成任务prompt 末尾带上“任务完成时发送通知”看通知是否弹出。如果 MCP 没被调用检查 Cursor 的 MCP 设置里 NotificationServer 是否显示为已连接状态。5. 本篇常见错误排查对照配置过程中容易踩的坑我整理成对照表遇到报错直接查报错/现象可能原因处理方式401 UnauthorizedTaoToken Key 填错或过期去 https://taotoken.net/api-keys 重新生成确认 Base URL 是https://taotoken.net/apilocal proxy failed工具里配了本地代理地址但服务没起检查 Base URL 是否误填成 localhost改回 TaoToken 地址reading choices报错模型返回格式不匹配通常是 Model ID 填错对照接入文档确认 Model IDCursor 里检查是否选了兼容协议OAuth 相关报错Claude Code 走了 OAuth 而非 API Key在 settings.json 的 env 里显式设置ANTHROPIC_API_KEY覆盖 OAuth 流程通知不弹系统通知权限未开macOS 在系统设置里给终端/Node 开通知权限Windows 检查专注助手Hook 不触发settings.json 路径或格式错误用python -m json.tool校验 JSON确认文件在~/.claude/或项目.claude/下MCP 不调用prompt 里没要求发通知在 prompt 末尾加“任务完成时发送通知”或写进 Cursor Rulesai-common-notify: command not foundnpm 全局路径没进 PATH检查npm bin -g输出是否在 PATH 里或重装时加 sudo关于 Codex 的 auth.json如果你也用 Codex配置里同样要写全三件套。auth.json 里填 TaoToken 的 KeyBase URL 指向https://taotoken.net/apiModel ID 按 Codex 支持的模型填。三件套缺一个都会导致调用失败。还有一个容易忽略的点AI Common Notify 的脚本回调功能可以接企业微信或钉钉机器人。配置里scripts.notify数组加一条{ scripts: { timeout: 30000, notify: [ { type: node, path: /path/to/your/notify.js, enabled: true } ] } }脚本里通过process.env.NOTIFY_TITLE、process.env.NOTIFY_MESSAGE等环境变量拿到通知内容再转发到你的 webhook。这样即使不在电脑前手机也能收到任务完成提醒。6. 通知聚合之后的日常使用建议配好之后日常使用有几个小技巧能让它更顺手。一是把 Cursor 的通知要求写进 Rules省得每次手动加。二是在项目级.ai-notify.json里给不同项目设不同 urgency比如生产环境相关的任务设 critical文档生成设 low这样通知优先级一目了然。三是定期用ai-common-notify alllog看看通知触发情况如果某个工具一直没触发早点发现配置问题。如果你还没配 TaoToken 的统一通道建议先去 https://taotoken.net/api-keys 拿个 Key把 Claude Code 和 Cursor 的模型调用都指过去再回来配通知。通道统一了后面换工具、加工具都省事。接入文档在 https://taotoken.net/doc 配置字段不确定的时候翻一下就行。长期跑编码任务的话Coding Plan 那边有更完整的方案可以参考https://taotoken.net/coding-plan 。