chat-heimerdinger 0.1.2 → 0.1.4

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.
Files changed (4) hide show
  1. package/README.md +146 -52
  2. package/dist/cli.js +99527 -38124
  3. package/dist/daemon-entry.js +99388 -38095
  4. package/package.json +2 -1
package/README.md CHANGED
@@ -2,36 +2,55 @@
2
2
 
3
3
  [![npm version](https://badge.fury.io/js/chat-heimerdinger.svg)](https://www.npmjs.com/package/chat-heimerdinger)
4
4
 
5
- Slack 与 Claude Code 的桥接工具,让你在 Slack 中直接与 Claude Code 进行对话式编程。
5
+ IM 与 Claude Code 的桥接工具,让你在 Slack 或飞书中直接与 Claude Code 进行对话式编程。
6
6
 
7
7
  ## 功能特性
8
8
 
9
- - **Slack 集成**:通过 Slack Bot 对话与 Claude Code 交互
9
+ - **多平台支持**:支持 Slack 和飞书(Feishu/Lark)
10
10
  - **项目管理**:支持多项目切换,自动记忆每个频道的项目上下文
11
11
  - **会话持久化**:自动恢复上次对话,保持编程上下文连续性
12
- - **语音消息**:支持 Slack 语音消息,自动转写为文字发送给 Claude Code
12
+ - **语音消息**:支持语音消息,自动转写为文字发送给 Claude Code
13
13
  - **实时反馈**:流式输出 Claude 的响应,实时显示代码修改
14
14
  - **权限控制**:支持权限审批流程,安全执行敏感操作
15
15
 
16
- ## 快速开始
16
+ ## 前置准备
17
+
18
+ ### 1. Node.js 环境
19
+
20
+ 需要 Node.js 18.0.0 或更高版本:
17
21
 
18
22
  ```bash
19
- # 初始化配置
20
- npx chat-heimerdinger init
23
+ node -v # 确认版本 >= 18.0.0
24
+ ```
21
25
 
22
- # 启动服务
23
- npx chat-heimerdinger start
26
+ ### 2. 安装 Claude Code
27
+
28
+ 确保本机已安装并配置好 [Claude Code](https://docs.anthropic.com/en/docs/claude-code):
29
+
30
+ ```bash
31
+ # 安装 Claude Code
32
+ npm install -g @anthropic-ai/claude-code
33
+
34
+ # 验证安装
35
+ claude --version
24
36
  ```
25
37
 
26
- ## 配置
38
+ ### 3. 创建 IM Bot
39
+
40
+ 根据你要使用的平台,选择对应的配置方式:
27
41
 
28
- ### 1. 创建 Slack App
42
+ <details>
43
+ <summary><b>Slack 配置</b></summary>
29
44
 
30
45
  1. 访问 [Slack API](https://api.slack.com/apps) 创建新应用
31
- 2. 选择 **From an app manifest**,粘贴 [slack-bot-demo.yaml](./slack-bot-demo.yaml) 的内容
32
- 3. 安装应用到你的 Workspace
46
+ 2. 选择 **From an app manifest**
47
+ 3. 导入本仓库的 [slack-bot-demo.json](https://github.com/a1245582339/chat-heimerdinger/blob/main/slack-bot-demo.json) 文件
48
+ 4. 安装应用到你的 Workspace
49
+ 5. **重要配置**:进入 **App Home** -> **Show Tabs**:
50
+ - 开启 **Messages Tab**
51
+ - 勾选 **"Allow users to send Slash commands and messages from the messages tab"**(必须勾选,否则无法私聊 Bot)
33
52
 
34
- ### 2. 获取 Token
53
+ **获取 Token:**
35
54
 
36
55
  | Token | 位置 |
37
56
  |-------|------|
@@ -39,13 +58,44 @@ npx chat-heimerdinger start
39
58
  | App Token (xapp-) | Basic Information > App-Level Tokens (需创建,scope 选 `connections:write`) |
40
59
  | Signing Secret | Basic Information > App Credentials |
41
60
 
42
- ### 3. 初始化配置
61
+ </details>
62
+
63
+ <details>
64
+ <summary><b>飞书配置</b></summary>
65
+
66
+ 1. 访问[飞书开放平台](https://open.feishu.cn/app)创建新应用
67
+ 2. 在 **凭证与基础信息** 中获取 App ID 和 App Secret
68
+ 3. 在 **事件与回调** 中:
69
+ - 订阅方式选择 **使用长连接接收事件**(推荐,无需公网 IP)
70
+ - 或选择 Webhook 方式(需要公网 URL)
71
+ - 添加事件 `im.message.receive_v1`
72
+ 4. 在 **权限管理** 中添加以下权限:
73
+ - `im:message` - 获取与发送单聊、群组消息
74
+ - `im:message:send_as_bot` - 以应用的身份发送消息
75
+ - `im:resource` - 获取与上传图片或文件资源
76
+ - `im:chat:readonly` - 获取群组信息
77
+ 5. 启用机器人能力并发布应用
78
+
79
+ **获取凭证:**
80
+
81
+ | 凭证 | 位置 |
82
+ |------|------|
83
+ | App ID | 凭证与基础信息 > App ID |
84
+ | App Secret | 凭证与基础信息 > App Secret |
85
+ | Encrypt Key (Webhook 模式) | 事件与回调 > Encrypt Key |
86
+ | Verification Token (Webhook 模式) | 事件与回调 > Verification Token |
87
+
88
+ </details>
89
+
90
+ ## 快速开始
43
91
 
44
92
  ```bash
93
+ # 初始化配置(交互式选择 Slack 或飞书)
45
94
  npx chat-heimerdinger init
46
- ```
47
95
 
48
- 按提示输入上述 Token 即可。
96
+ # 启动服务
97
+ npx chat-heimerdinger start
98
+ ```
49
99
 
50
100
  ## 使用
51
101
 
@@ -68,48 +118,32 @@ npx chat-heimerdinger logs
68
118
  npx chat-heimerdinger stop
69
119
  ```
70
120
 
71
- ### Slack 命令
72
-
73
- | 命令 | 说明 |
74
- |------|------|
75
- | `/project` | 切换项目 |
76
- | `/stop` | 停止当前执行 |
77
- | `/clear` | 清除会话,开始新对话 |
78
-
79
121
  ### 交互方式
80
122
 
81
- - **DM**:直接私信机器人
82
- - **@mention**:在频道中 @机器人
83
- - **语音**:发送语音消息(需安装 whisper-cli)
123
+ **Slack:**
124
+ - 直接私信机器人
125
+ - 在频道中 @机器人
126
+ - 发送语音消息
84
127
 
85
- ## 语音转文字(可选)
128
+ **飞书:**
129
+ - 直接私信机器人
130
+ - 在群组中 @机器人
86
131
 
87
- 需要安装 [whisper.cpp](https://github.com/ggerganov/whisper.cpp):
132
+ ### 命令
88
133
 
89
- ```bash
90
- # 编译 whisper.cpp
91
- git clone https://github.com/ggerganov/whisper.cpp
92
- cd whisper.cpp && make
134
+ | 命令 | 说明 | 平台 |
135
+ |------|------|------|
136
+ | `/project` | 切换项目 | Slack |
137
+ | `/stop` | 停止当前执行 | Slack |
138
+ | `/clear` | 清除会话,开始新对话 | Slack |
93
139
 
94
- # 安装到系统
95
- sudo cp build/bin/whisper-cli /usr/local/bin/
96
-
97
- # 下载模型
98
- mkdir -p ~/.local/share/whisper
99
- bash models/download-ggml-model.sh small ~/.local/share/whisper
100
- ```
101
-
102
- 还需要 `ffmpeg` 进行音频格式转换:
103
-
104
- ```bash
105
- sudo apt install ffmpeg # Ubuntu/Debian
106
- brew install ffmpeg # macOS
107
- ```
140
+ > 飞书暂不支持斜杠命令,可以直接发送 "切换项目"、"停止" 等文字指令。
108
141
 
109
142
  ## 配置文件
110
143
 
111
144
  配置文件位于 `~/.heimerdinger/config.json`:
112
145
 
146
+ **Slack 配置示例:**
113
147
  ```json
114
148
  {
115
149
  "activeAdapter": "slack",
@@ -130,6 +164,27 @@ brew install ffmpeg # macOS
130
164
  }
131
165
  ```
132
166
 
167
+ **飞书配置示例:**
168
+ ```json
169
+ {
170
+ "activeAdapter": "feishu",
171
+ "adapters": {
172
+ "feishu": {
173
+ "appId": "cli_xxx",
174
+ "appSecret": "xxx",
175
+ "connectionMode": "websocket",
176
+ "domain": "feishu"
177
+ }
178
+ },
179
+ "server": {
180
+ "port": 3150
181
+ },
182
+ "claude": {
183
+ "permissionMode": "acceptEdits"
184
+ }
185
+ }
186
+ ```
187
+
133
188
  ### 权限模式
134
189
 
135
190
  | 模式 | 说明 |
@@ -138,6 +193,44 @@ brew install ffmpeg # macOS
138
193
  | `acceptEdits` | 自动接受文件编辑 |
139
194
  | `bypassPermissions` | 跳过所有权限检查(危险) |
140
195
 
196
+ ### 飞书连接模式
197
+
198
+ | 模式 | 说明 |
199
+ |------|------|
200
+ | `websocket` | 长连接模式(推荐),无需公网 IP |
201
+ | `webhook` | Webhook 模式,需要公网 URL |
202
+
203
+ ### 飞书域名
204
+
205
+ | 域名 | 说明 |
206
+ |------|------|
207
+ | `feishu` | feishu.cn(中国区) |
208
+ | `lark` | larksuite.com(国际区) |
209
+
210
+ ## 语音转文字(可选)
211
+
212
+ 需要安装 [whisper.cpp](https://github.com/ggerganov/whisper.cpp):
213
+
214
+ ```bash
215
+ # 编译 whisper.cpp
216
+ git clone https://github.com/ggerganov/whisper.cpp
217
+ cd whisper.cpp && make
218
+
219
+ # 安装到系统
220
+ sudo cp build/bin/whisper-cli /usr/local/bin/
221
+
222
+ # 下载模型
223
+ mkdir -p ~/.local/share/whisper
224
+ bash models/download-ggml-model.sh small ~/.local/share/whisper
225
+ ```
226
+
227
+ 还需要 `ffmpeg` 进行音频格式转换:
228
+
229
+ ```bash
230
+ sudo apt install ffmpeg # Ubuntu/Debian
231
+ brew install ffmpeg # macOS
232
+ ```
233
+
141
234
  ## 全局安装(可选)
142
235
 
143
236
  如果你经常使用,可以全局安装以省去 `npx` 前缀:
@@ -170,11 +263,12 @@ pnpm link --global
170
263
 
171
264
  ## 注意事项
172
265
 
173
- 1. **Claude Code 必须已安装**:确保本机已安装并配置好 [Claude Code](https://claude.ai/code)
174
- 2. **项目必须已初始化**:需要先在项目目录中使用过 Claude Code,才能在 Slack 中选择该项目
175
- 3. **Slack App 权限**:确保 Slack App 已添加所有必要的 OAuth Scopes
176
- 4. **语音功能可选**:如不需要语音转文字,可跳过 whisper.cpp 安装
177
- 5. **网络要求**:服务需要能访问 Slack API(Socket Mode 使用 WebSocket)
266
+ 1. **项目必须已初始化**:需要先在项目目录中使用过 Claude Code,才能在 IM 中选择该项目
267
+ 2. **权限配置**:确保 Bot 已添加所有必要的权限
268
+ 3. **语音功能可选**:如不需要语音转文字,可跳过 whisper.cpp 安装
269
+ 4. **网络要求**:
270
+ - Slack:需要能访问 Slack API(Socket Mode 使用 WebSocket)
271
+ - 飞书:WebSocket 模式需要能访问飞书开放平台;Webhook 模式需要公网可访问的 URL
178
272
 
179
273
  ## 开发
180
274