Claude Code 通知插件,支持在以下事件发生时发送通知到 Bark 等服务:
[项目名 · Plan])/plugin install <path-to-plugin>/claude-notify
/plugin marketplace add https://cnb.cool/nowfun/claude-code-flourish.git
/plugin install claude-notify
在启动 Claude Code 前设置以下环境变量:
| 环境变量 | 必填 | 说明 | 默认值 |
|---|---|---|---|
CLAUDE_NOTIFY_DISABLED | 否 | 设为 true 可完全关闭通知 | false |
CLAUDE_NOTIFY_TYPE | 否 | 通知类型:bark | bark |
BARK_BASE_URL | 否 | Bark 服务基础 URL | https://api.day.app |
BARK_DEVICE_KEY | 是 | Bark 设备密钥 | - |
BARK_AUTH_HEADER | 否 | Authorization 头 | - |
| 环境变量 | 必填 | 说明 | 默认值 |
|---|---|---|---|
CLAUDE_NOTIFY_LOG_ENABLED | 否 | 是否启用日志功能。设为 false 可关闭日志 | true |
日志文件位置: /tmp/claude-notify.log(macOS)/ 系统临时目录(其他系统)
日志轮转策略:
claude-notify.log.0, .1, .2)日志级别:
ERROR: 通知发送失败、配置错误、脚本异常WARN: 网络超时、部分失败、配置警告INFO: 脚本启动、配置加载成功示例:
# 关闭日志
export CLAUDE_NOTIFY_LOG_ENABLED=false
# 启用日志(默认)
export CLAUDE_NOTIFY_LOG_ENABLED=true
# 在 ~/.zshrc 或 ~/.bashrc 中添加
export CLAUDE_NOTIFY_TYPE=bark
export BARK_DEVICE_KEY=your_device_key_here
export BARK_AUTH_HEADER="Basic your_base64_encoded_credentials" # 可选
BARK_DEVICE_KEY 环境变量标题: [项目名] 通知 [Plan] (如果在 Plan 模式)
内容: {message}
类型: {notification_type}
标题: [项目名] 请确认 [Plan]
内容: 工具: Bash
命令: npm test
标题: [项目名] Finished [Plan]
内容: {last_assistant_message 的前 200 字符}
plugins/claude-notify/
├── .claude-plugin/
│ └── plugin.json # 插件元数据
├── hooks/
│ └── hooks.json # Hook 事件配置
├── scripts/
│ ├── handler.js # 主处理脚本
│ └── lib/
│ ├── config.js # 配置管理
│ ├── utils.js # 工具函数
│ └── notifiers/ # 通知器模块
│ ├── base.js # 基础通知器类
│ ├── bark.js # Bark 通知器
│ └── index.js # 通知器工厂
└── README.md
如需添加新的通知服务(如钉钉、企业微信),请按以下步骤:
scripts/lib/notifiers/ 目录创建新的通知器类(如 dingtalk.js)BaseNotifier 类并实现 send() 和 validateConfig() 方法scripts/lib/notifiers/index.js 中添加新的 case 分支scripts/lib/config.js 中添加对应的配置读取逻辑// dingtalk.js
const { BaseNotifier } = require('./base.js');
class DingTalkNotifier extends BaseNotifier {
async send(title, body) {
// 实现钉钉机器人通知逻辑
}
validateConfig() {
return !!this.config.webhook;
}
}
module.exports = { DingTalkNotifier };
MIT License
iGang