claude-notify-hub 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +191 -0
- package/README.zh-CN.md +191 -0
- package/bin/claude-notify.js +60 -0
- package/package.json +76 -0
- package/src/cli/config.js +8 -0
- package/src/cli/init.js +257 -0
- package/src/cli/send.js +67 -0
- package/src/cli/test.js +119 -0
- package/src/hooks/generator.js +121 -0
- package/src/index.js +74 -0
- package/src/notifiers/email.js +194 -0
- package/src/notifiers/voice.js +157 -0
- package/src/templates/email.json +22 -0
- package/src/templates/feishu.json +26 -0
- package/src/templates/voice.json +22 -0
- package/src/utils/config.js +180 -0
- package/src/utils/display.js +226 -0
- package/src/utils/logger.js +115 -0
- package/src/utils/system.js +88 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Claude Notify Hub Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# Claude Code Notify Hub
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
Get notified instantly when Claude Code needs you
|
|
6
|
+
|
|
7
|
+
[中文文档](./README.zh-CN.md) | English
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/claude-notify-hub)
|
|
10
|
+
[](https://opensource.org/licenses/MIT)
|
|
11
|
+
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
## What is this?
|
|
15
|
+
|
|
16
|
+
Claude Code Notify Hub is a notification system that alerts you instantly when Claude Code needs your attention.
|
|
17
|
+
|
|
18
|
+
**Use Cases:**
|
|
19
|
+
- 🔔 Claude encounters an issue and needs your help
|
|
20
|
+
- ✅ Claude completes the task you assigned
|
|
21
|
+
- ⚠️ An error occurs during execution
|
|
22
|
+
|
|
23
|
+
**Supported Notification Methods:**
|
|
24
|
+
- 🗣️ **Voice Notifications** - Desktop alerts + text-to-speech (macOS/Windows/Linux)
|
|
25
|
+
- 📧 **Email Notifications** - Send to your email (Gmail, Outlook, QQ Mail, etc.)
|
|
26
|
+
|
|
27
|
+
## Quick Start
|
|
28
|
+
|
|
29
|
+
### Step 1: Installation
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm install -g claude-notify-hub
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Step 2: Configuration
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
claude-notify init
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Follow the prompts:
|
|
42
|
+
|
|
43
|
+
1. **Select notification methods** (you can choose both):
|
|
44
|
+
- Voice notifications
|
|
45
|
+
- Email notifications
|
|
46
|
+
|
|
47
|
+
2. **If you selected Voice notifications**:
|
|
48
|
+
- System will auto-detect your OS
|
|
49
|
+
- Choose whether to customize voice messages (optional)
|
|
50
|
+
|
|
51
|
+
3. **If you selected Email notifications**:
|
|
52
|
+
- Select **587 (STARTTLS - Recommended for Gmail)**
|
|
53
|
+
- Enter your email address
|
|
54
|
+
- Enter password (Gmail requires app-specific password, see below)
|
|
55
|
+
|
|
56
|
+
### Step 3: Test
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Test all notifications
|
|
60
|
+
claude-notify test
|
|
61
|
+
|
|
62
|
+
# Or test individually
|
|
63
|
+
claude-notify test --voice
|
|
64
|
+
claude-notify test --email
|
|
65
|
+
|
|
66
|
+
# Test all four notification types (hear different sounds)
|
|
67
|
+
claude-notify test --voice --all-types
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**`--all-types` option:**
|
|
71
|
+
|
|
72
|
+
This option tests all four notification types sequentially with 1.5 second intervals:
|
|
73
|
+
|
|
74
|
+
1. 🔔 **intervention** (needs help) → Ping sound (clear chime)
|
|
75
|
+
2. ✅ **complete** (task done) → Glass sound (crisp glass)
|
|
76
|
+
3. ⚠️ **error** (error occurred) → Basso sound (deep warning)
|
|
77
|
+
4. 🎉 **subagent_complete** (subtask done) → Glass sound (crisp glass)
|
|
78
|
+
|
|
79
|
+
### Step 4: Start Using
|
|
80
|
+
|
|
81
|
+
Once configured, **you don't need to do anything**!
|
|
82
|
+
|
|
83
|
+
When Claude Code runs:
|
|
84
|
+
- Needs your help → Auto notification
|
|
85
|
+
- Task completed → Auto notification
|
|
86
|
+
- Error occurs → Auto notification
|
|
87
|
+
|
|
88
|
+
## Gmail Configuration
|
|
89
|
+
|
|
90
|
+
**Important: Gmail requires an app-specific password, not your regular login password!**
|
|
91
|
+
|
|
92
|
+
### Get Gmail App-Specific Password:
|
|
93
|
+
|
|
94
|
+
1. Go to [Google Account Settings](https://myaccount.google.com/)
|
|
95
|
+
2. Click "Security"
|
|
96
|
+
3. Enable "2-Step Verification" (if not already enabled)
|
|
97
|
+
4. Find "App passwords" under "2-Step Verification"
|
|
98
|
+
5. Select "Mail" and your device
|
|
99
|
+
6. Copy the generated 16-character password
|
|
100
|
+
|
|
101
|
+
### When configuring, select:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
? Select SMTP port and security:
|
|
105
|
+
❯ 587 (STARTTLS - Recommended for Gmail) ← Select this!
|
|
106
|
+
465 (SSL/TLS)
|
|
107
|
+
25 (No encryption - Not recommended)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Other Email Services
|
|
111
|
+
|
|
112
|
+
### QQ Mail
|
|
113
|
+
|
|
114
|
+
- Login to QQ Mail → Settings → Account → Enable SMTP service
|
|
115
|
+
- Get authorization code (not your QQ password)
|
|
116
|
+
- Select `587 (STARTTLS)` when configuring
|
|
117
|
+
|
|
118
|
+
### Outlook
|
|
119
|
+
|
|
120
|
+
- Use your Outlook password directly
|
|
121
|
+
- Select `587 (STARTTLS)` when configuring
|
|
122
|
+
|
|
123
|
+
## Common Commands
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# Reconfigure
|
|
127
|
+
claude-notify config
|
|
128
|
+
|
|
129
|
+
# Temporarily disable notifications
|
|
130
|
+
claude-notify disable
|
|
131
|
+
|
|
132
|
+
# Re-enable notifications
|
|
133
|
+
claude-notify enable
|
|
134
|
+
|
|
135
|
+
# Test notifications
|
|
136
|
+
claude-notify test
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Configuration File
|
|
140
|
+
|
|
141
|
+
Manual configuration if needed: `~/.config/claude-notify/config.json`
|
|
142
|
+
|
|
143
|
+
## Troubleshooting
|
|
144
|
+
|
|
145
|
+
### Voice notifications not working?
|
|
146
|
+
|
|
147
|
+
**Linux users** need to install TTS tools first:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Ubuntu/Debian
|
|
151
|
+
sudo apt-get install espeak
|
|
152
|
+
|
|
153
|
+
# Or
|
|
154
|
+
sudo apt-get install festival
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Email sending fails?
|
|
158
|
+
|
|
159
|
+
1. Confirm you're using **app-specific password** (not login password)
|
|
160
|
+
2. Confirm you selected the correct port (587 for Gmail)
|
|
161
|
+
3. Check network connection
|
|
162
|
+
|
|
163
|
+
### How to temporarily disable notifications?
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
claude-notify disable
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Re-enable when needed:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
claude-notify enable
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Feedback
|
|
176
|
+
|
|
177
|
+
Have issues? [Submit an Issue](https://github.com/knightnemo/claude-notify-hub/issues)
|
|
178
|
+
|
|
179
|
+
## License
|
|
180
|
+
|
|
181
|
+
MIT License
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
<div align="center">
|
|
186
|
+
|
|
187
|
+
If this tool helps you, please give it a ⭐️
|
|
188
|
+
|
|
189
|
+
Made with ❤️ for Claude Code users
|
|
190
|
+
|
|
191
|
+
</div>
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# Claude Code Notify Hub
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
让 Claude Code 在需要你时第一时间通知你
|
|
6
|
+
|
|
7
|
+
[English](./README.md) | 简体中文
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/claude-notify-hub)
|
|
10
|
+
[](https://opensource.org/licenses/MIT)
|
|
11
|
+
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
## 这是什么?
|
|
15
|
+
|
|
16
|
+
Claude Code Notify Hub 是一个通知系统,让你在 Claude Code 需要你的时候能立即收到提醒。
|
|
17
|
+
|
|
18
|
+
**适用场景:**
|
|
19
|
+
- 🔔 Claude 遇到问题需要你的帮助
|
|
20
|
+
- ✅ Claude 完成了你交给它的任务
|
|
21
|
+
- ⚠️ 执行过程中发生错误
|
|
22
|
+
|
|
23
|
+
**支持的通知方式:**
|
|
24
|
+
- 🗣️ **语音通知** - 电脑弹窗 + 语音播报(支持 macOS/Windows/Linux)
|
|
25
|
+
- 📧 **邮件通知** - 发送到你的邮箱(支持 Gmail、Outlook、QQ 邮箱等)
|
|
26
|
+
|
|
27
|
+
## 你需要做什么?
|
|
28
|
+
|
|
29
|
+
### 第一步:安装
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm install -g claude-notify-hub
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 第二步:配置
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
claude-notify init
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
跟着提示操作即可。你需要:
|
|
42
|
+
|
|
43
|
+
1. **选择通知方式**(可以都选):
|
|
44
|
+
- 语音通知
|
|
45
|
+
- 邮件通知
|
|
46
|
+
|
|
47
|
+
2. **如果选了语音通知**:
|
|
48
|
+
- 系统会自动检测你的操作系统
|
|
49
|
+
- 选择是否自定义语音内容(可选,默认即可)
|
|
50
|
+
|
|
51
|
+
3. **如果选了邮件通知**:
|
|
52
|
+
- 选择 **587 (STARTTLS - Recommended for Gmail)**
|
|
53
|
+
- 输入你的邮箱地址
|
|
54
|
+
- 输入密码(Gmail 需要使用应用专用密码,见下方说明)
|
|
55
|
+
|
|
56
|
+
### 第三步:测试
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# 测试所有通知
|
|
60
|
+
claude-notify test
|
|
61
|
+
|
|
62
|
+
# 或者单独测试
|
|
63
|
+
claude-notify test --voice
|
|
64
|
+
claude-notify test --email
|
|
65
|
+
|
|
66
|
+
# 测试所有四种通知类型(听到不同的音效)
|
|
67
|
+
claude-notify test --voice --all-types
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**`--all-types` 选项说明:**
|
|
71
|
+
|
|
72
|
+
使用这个选项可以依次测试所有四种通知类型,每种间隔 1.5 秒,你会听到不同的音效:
|
|
73
|
+
|
|
74
|
+
1. 🔔 **intervention**(需要干预)→ Ping 音效(清脆的叮咚声)
|
|
75
|
+
2. ✅ **complete**(任务完成)→ Glass 音效(轻快的玻璃声)
|
|
76
|
+
3. ⚠️ **error**(发生错误)→ Basso 音效(低沉的警告声)
|
|
77
|
+
4. 🎉 **subagent_complete**(子任务完成)→ Glass 音效(轻快的玻璃声)
|
|
78
|
+
|
|
79
|
+
### 第四步:开始使用
|
|
80
|
+
|
|
81
|
+
配置完成后,**不需要做任何事情**!
|
|
82
|
+
|
|
83
|
+
当 Claude Code 运行时:
|
|
84
|
+
- 需要你帮助时 → 自动发通知
|
|
85
|
+
- 任务完成时 → 自动发通知
|
|
86
|
+
- 出错时 → 自动发通知
|
|
87
|
+
|
|
88
|
+
## Gmail 邮件配置说明
|
|
89
|
+
|
|
90
|
+
**重要:Gmail 需要应用专用密码,不能直接用登录密码!**
|
|
91
|
+
|
|
92
|
+
### 获取 Gmail 应用专用密码:
|
|
93
|
+
|
|
94
|
+
1. 前往 [Google 账户设置](https://myaccount.google.com/)
|
|
95
|
+
2. 点击「安全性」
|
|
96
|
+
3. 开启「两步验证」(如果还没开启)
|
|
97
|
+
4. 在「两步验证」下方找到「应用专用密码」
|
|
98
|
+
5. 选择「邮件」和你的设备
|
|
99
|
+
6. 复制生成的 16 位密码
|
|
100
|
+
|
|
101
|
+
### 配置时选择:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
? Select SMTP port and security:
|
|
105
|
+
❯ 587 (STARTTLS - Recommended for Gmail) ← 选这个!
|
|
106
|
+
465 (SSL/TLS)
|
|
107
|
+
25 (No encryption - Not recommended)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## 其他邮件服务
|
|
111
|
+
|
|
112
|
+
### QQ 邮箱
|
|
113
|
+
|
|
114
|
+
- 登录 QQ 邮箱 → 设置 → 账户 → 开启 SMTP 服务
|
|
115
|
+
- 获取授权码(不是 QQ 密码)
|
|
116
|
+
- 配置时选择 `587 (STARTTLS)`
|
|
117
|
+
|
|
118
|
+
### Outlook
|
|
119
|
+
|
|
120
|
+
- 直接使用你的 Outlook 密码
|
|
121
|
+
- 配置时选择 `587 (STARTTLS)`
|
|
122
|
+
|
|
123
|
+
## 常用命令
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# 重新配置
|
|
127
|
+
claude-notify config
|
|
128
|
+
|
|
129
|
+
# 临时关闭通知
|
|
130
|
+
claude-notify disable
|
|
131
|
+
|
|
132
|
+
# 重新开启通知
|
|
133
|
+
claude-notify enable
|
|
134
|
+
|
|
135
|
+
# 测试通知
|
|
136
|
+
claude-notify test
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## 配置文件位置
|
|
140
|
+
|
|
141
|
+
如果需要手动修改配置:`~/.config/claude-notify/config.json`
|
|
142
|
+
|
|
143
|
+
## 常见问题
|
|
144
|
+
|
|
145
|
+
### 语音通知不工作?
|
|
146
|
+
|
|
147
|
+
**Linux 用户**需要先安装语音合成工具:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Ubuntu/Debian
|
|
151
|
+
sudo apt-get install espeak
|
|
152
|
+
|
|
153
|
+
# 或者
|
|
154
|
+
sudo apt-get install festival
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### 邮件发送失败?
|
|
158
|
+
|
|
159
|
+
1. 确认你使用的是**应用专用密码**(不是登录密码)
|
|
160
|
+
2. 确认选择了正确的端口(Gmail 用 587)
|
|
161
|
+
3. 检查网络连接
|
|
162
|
+
|
|
163
|
+
### 如何临时关闭通知?
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
claude-notify disable
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
需要时再开启:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
claude-notify enable
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## 问题反馈
|
|
176
|
+
|
|
177
|
+
遇到问题?[提交 Issue](https://github.com/knightnemo/claude-notify-hub/issues)
|
|
178
|
+
|
|
179
|
+
## 开源协议
|
|
180
|
+
|
|
181
|
+
MIT License
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
<div align="center">
|
|
186
|
+
|
|
187
|
+
如果这个工具对你有帮助,请给它一个 ⭐️
|
|
188
|
+
|
|
189
|
+
Made with ❤️ for Claude Code users
|
|
190
|
+
|
|
191
|
+
</div>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { program } = require('commander');
|
|
4
|
+
const packageJson = require('../package.json');
|
|
5
|
+
const init = require('../src/cli/init');
|
|
6
|
+
const test = require('../src/cli/test');
|
|
7
|
+
const config = require('../src/cli/config');
|
|
8
|
+
const send = require('../src/cli/send');
|
|
9
|
+
|
|
10
|
+
program
|
|
11
|
+
.name('claude-notify')
|
|
12
|
+
.description('An out-of-the-box notification system for Claude Code')
|
|
13
|
+
.version(packageJson.version);
|
|
14
|
+
|
|
15
|
+
program
|
|
16
|
+
.command('init')
|
|
17
|
+
.description('Initialize and configure Claude Code notifications')
|
|
18
|
+
.action(init);
|
|
19
|
+
|
|
20
|
+
program
|
|
21
|
+
.command('test')
|
|
22
|
+
.description('Test all enabled notification methods')
|
|
23
|
+
.option('-v, --voice', 'Test voice notification only')
|
|
24
|
+
.option('-e, --email', 'Test email notification only')
|
|
25
|
+
.option('-a, --all-types', 'Test all notification types (intervention, complete, error, subagent_complete)')
|
|
26
|
+
.action(test);
|
|
27
|
+
|
|
28
|
+
program
|
|
29
|
+
.command('config')
|
|
30
|
+
.description('Reconfigure notification settings')
|
|
31
|
+
.action(config);
|
|
32
|
+
|
|
33
|
+
program
|
|
34
|
+
.command('send')
|
|
35
|
+
.description('Send a notification (used by Claude Code hooks)')
|
|
36
|
+
.requiredOption('-t, --type <type>', 'Notification type (intervention|complete|error|subagent_complete)')
|
|
37
|
+
.option('-n, --notifier <notifier>', 'Specific notifier to use (voice|email)')
|
|
38
|
+
.option('-m, --message <message>', 'Custom message')
|
|
39
|
+
.option('-c, --context <context>', 'Additional context (JSON string)')
|
|
40
|
+
.action(send);
|
|
41
|
+
|
|
42
|
+
program
|
|
43
|
+
.command('enable')
|
|
44
|
+
.description('Enable Claude Code notifications')
|
|
45
|
+
.action(() => {
|
|
46
|
+
const configManager = require('../src/utils/config');
|
|
47
|
+
configManager.setEnabled(true);
|
|
48
|
+
console.log('✓ Claude Code notifications enabled');
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
program
|
|
52
|
+
.command('disable')
|
|
53
|
+
.description('Disable Claude Code notifications')
|
|
54
|
+
.action(() => {
|
|
55
|
+
const configManager = require('../src/utils/config');
|
|
56
|
+
configManager.setEnabled(false);
|
|
57
|
+
console.log('✓ Claude Code notifications disabled');
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
program.parse(process.argv);
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-notify-hub",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Get notified instantly when Claude Code needs you - Voice and Email notifications",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"claude-notify": "./bin/claude-notify.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/",
|
|
11
|
+
"src/",
|
|
12
|
+
"README.md",
|
|
13
|
+
"README.zh-CN.md",
|
|
14
|
+
"LICENSE"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"start": "node bin/claude-notify.js",
|
|
18
|
+
"test": "jest",
|
|
19
|
+
"test:watch": "jest --watch",
|
|
20
|
+
"test:coverage": "jest --coverage",
|
|
21
|
+
"lint": "eslint src/**/*.js bin/**/*.js",
|
|
22
|
+
"lint:fix": "eslint src/**/*.js bin/**/*.js --fix",
|
|
23
|
+
"format": "prettier --write \"**/*.{js,json,md}\"",
|
|
24
|
+
"prepare": "husky install"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"claude",
|
|
28
|
+
"claude-code",
|
|
29
|
+
"notification",
|
|
30
|
+
"voice",
|
|
31
|
+
"email",
|
|
32
|
+
"cli",
|
|
33
|
+
"hooks",
|
|
34
|
+
"desktop-notification",
|
|
35
|
+
"tts",
|
|
36
|
+
"text-to-speech",
|
|
37
|
+
"smtp",
|
|
38
|
+
"gmail",
|
|
39
|
+
"alerts"
|
|
40
|
+
],
|
|
41
|
+
"author": "knightnemo",
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"repository": {
|
|
44
|
+
"type": "git",
|
|
45
|
+
"url": "git+https://github.com/knightnemo/claude-notify-hub.git"
|
|
46
|
+
},
|
|
47
|
+
"bugs": {
|
|
48
|
+
"url": "https://github.com/knightnemo/claude-notify-hub/issues"
|
|
49
|
+
},
|
|
50
|
+
"homepage": "https://github.com/knightnemo/claude-notify-hub#readme",
|
|
51
|
+
"engines": {
|
|
52
|
+
"node": ">=14.0.0"
|
|
53
|
+
},
|
|
54
|
+
"dependencies": {
|
|
55
|
+
"axios": "^1.6.0",
|
|
56
|
+
"boxen": "^5.1.2",
|
|
57
|
+
"chalk": "^4.1.2",
|
|
58
|
+
"cli-table3": "^0.6.3",
|
|
59
|
+
"commander": "^11.1.0",
|
|
60
|
+
"figures": "^3.2.0",
|
|
61
|
+
"inquirer": "^8.2.5",
|
|
62
|
+
"nodemailer": "^6.9.0",
|
|
63
|
+
"ora": "^5.4.1"
|
|
64
|
+
},
|
|
65
|
+
"devDependencies": {
|
|
66
|
+
"eslint": "^8.50.0",
|
|
67
|
+
"eslint-config-prettier": "^9.0.0",
|
|
68
|
+
"eslint-plugin-node": "^11.1.0",
|
|
69
|
+
"husky": "^8.0.3",
|
|
70
|
+
"jest": "^29.7.0",
|
|
71
|
+
"prettier": "^3.0.3"
|
|
72
|
+
},
|
|
73
|
+
"publishConfig": {
|
|
74
|
+
"access": "public"
|
|
75
|
+
}
|
|
76
|
+
}
|