xiaozhi-client 1.6.3-beta.0 → 1.6.3-beta.2

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/docs/CLI.md CHANGED
@@ -1,195 +1,928 @@
1
- # Xiaozhi CLI 使用文档
2
-
3
- `xiaozhi` 是小智AI客户端的命令行工具,提供配置管理和服务管理功能。
1
+ # Xiaozhi CLI 使用手册
2
+
3
+ `xiaozhi` 是小智 AI 客户端的命令行工具,提供完整的 MCP (Model Context Protocol) 服务管理、配置管理和项目创建功能。
4
+
5
+ ## 目录
6
+
7
+ - [概述](#概述)
8
+ - [安装](#安装)
9
+ - [快速开始](#快速开始)
10
+ - [全局选项](#全局选项)
11
+ - [命令详解](#命令详解)
12
+ - [服务管理命令](#服务管理命令)
13
+ - [配置管理命令](#配置管理命令)
14
+ - [项目管理命令](#项目管理命令)
15
+ - [MCP 管理命令](#mcp-管理命令)
16
+ - [端点管理命令](#端点管理命令)
17
+ - [UI 管理命令](#ui-管理命令)
18
+ - [快速参考](#快速参考)
19
+ - [故障排除](#故障排除)
20
+ - [环境变量](#环境变量)
4
21
 
5
22
  ## 概述
6
23
 
7
- 小智的架构比较特别:它将您的个人电脑作为AI服务端,远端的小智服务器实际上是客户端。当您启动小智服务后,您的电脑就成为了AI的"大脑",为远端提供各种工具和能力。
24
+ 小智的架构比较特别:它将您的个人电脑作为 AI 服务端,远端的小智服务器实际上是客户端。当您启动小智服务后,您的电脑就成为了 AI 的"大脑",为远端提供各种工具和能力。
25
+
26
+ xiaozhi-client 支持多种运行模式:
27
+
28
+ - **传统模式**: 连接到小智官方服务器
29
+ - **MCP Server 模式**: 作为标准 MCP 服务器供其他客户端使用
30
+ - **Web UI 模式**: 提供可视化配置界面
31
+ - **项目模式**: 基于模板快速创建项目
8
32
 
9
33
  ## 安装
10
34
 
11
- 在项目根目录下运行:
35
+ ### 全局安装(推荐)
36
+
37
+ ```bash
38
+ npm install -g xiaozhi-client
39
+ ```
40
+
41
+ ### 通过 npx 使用
42
+
43
+ ```bash
44
+ npx xiaozhi-client --help
45
+ ```
46
+
47
+ ### 本地开发
12
48
 
13
49
  ```bash
50
+ git clone <repository>
51
+ cd xiaozhi-client
14
52
  npm install
53
+ npm run build
54
+ ```
55
+
56
+ ## 快速开始
57
+
58
+ 1. **创建项目**:
59
+
60
+ ```bash
61
+ xiaozhi create my-app --template hello-world
62
+ cd my-app
63
+ npm install
64
+ ```
65
+
66
+ 2. **初始化配置**:
67
+
68
+ ```bash
69
+ xiaozhi config init
70
+ ```
71
+
72
+ 3. **设置端点**:
73
+
74
+ ```bash
75
+ xiaozhi config set mcpEndpoint "your-endpoint-url"
15
76
  ```
16
77
 
17
- ## 使用方法
78
+ 4. **启动服务**:
18
79
 
19
- ### 基本命令
80
+ ```bash
81
+ xiaozhi start
82
+ ```
83
+
84
+ ## 全局选项
85
+
86
+ | 选项 | 描述 | 示例 |
87
+ | ---------------- | ---------------- | ------------------------ |
88
+ | `--info` | 显示详细系统信息 | `xiaozhi --info` |
89
+ | `-v, --version` | 显示版本信息 | `xiaozhi -v` |
90
+ | `--version-info` | 显示详细版本信息 | `xiaozhi --version-info` |
91
+ | `-h, --help` | 显示帮助信息 | `xiaozhi -h` |
92
+
93
+ ### 示例输出
20
94
 
21
95
  ```bash
22
- xiaozhi --help # 显示帮助信息
23
- xiaozhi --version # 显示版本信息
96
+ $ xiaozhi --info
97
+ 🤖 小智 MCP 客户端 - 详细信息
98
+
99
+ 版本信息:
100
+ 名称: xiaozhi-client
101
+ 版本: 1.6.2
102
+ 描述: 小智 AI 客户端 命令行工具
103
+
104
+ 系统信息:
105
+ Node.js: v18.17.0
106
+ 平台: darwin arm64
107
+
108
+ 配置信息:
109
+ 配置文件: /path/to/xiaozhi.config.json
110
+ MCP 端点: 1 个
24
111
  ```
25
112
 
26
- ### 服务管理
113
+ ## 命令详解
114
+
115
+ ### 服务管理命令
116
+
117
+ 服务管理命令用于控制 xiaozhi 服务的生命周期。支持前台运行、后台运行、MCP Server 模式等多种运行方式。
27
118
 
28
- #### 启动服务
119
+ #### `xiaozhi start` - 启动服务
120
+
121
+ **语法**:
29
122
 
30
123
  ```bash
31
- xiaozhi start # 在前台启动服务
32
- xiaozhi start -d # 在后台启动服务(守护进程模式)
33
- xiaozhi start --daemon # 同上,完整参数形式
124
+ xiaozhi start [选项]
125
+ xiaozhi service start [选项] # 完整命令形式
34
126
  ```
35
127
 
36
- **示例:**
128
+ **选项**:
129
+
130
+ - `-d, --daemon` - 在后台运行服务
131
+ - `-u, --ui` - 同时启动 Web UI 服务
132
+ - `-s, --server [port]` - 以 MCP Server 模式启动(可选指定端口,默认 3000)
133
+ - `--stdio` - 以 stdio 模式运行 MCP Server(用于 Cursor 等客户端)
134
+
135
+ **使用示例**:
37
136
 
38
137
  ```bash
39
- # 前台启动(按 Ctrl+C 停止)
138
+ # 前台启动(开发调试)
40
139
  xiaozhi start
41
140
 
42
- # 后台启动
141
+ # 后台启动(生产环境)
43
142
  xiaozhi start -d
143
+
144
+ # 启动并打开 Web UI
145
+ xiaozhi start -u
146
+
147
+ # 以 MCP Server 模式启动,监听 3000 端口
148
+ xiaozhi start -s 3000
149
+
150
+ # 以 stdio 模式启动(用于 Cursor 集成)
151
+ xiaozhi start --stdio
44
152
  ```
45
153
 
46
- #### 停止服务
154
+ **预期输出**:
47
155
 
48
156
  ```bash
49
- xiaozhi stop # 停止后台运行的服务
157
+ $ xiaozhi start
158
+ 🤖 小智 MCP 客户端正在启动...
159
+ ✅ 配置文件已加载: xiaozhi.config.json
160
+ ✅ MCP 服务已启动: calculator, datetime
161
+ 🌐 连接到端点: ws://localhost:8080
162
+ ✅ 服务启动成功,按 Ctrl+C 停止
163
+
164
+ $ xiaozhi start -d
165
+ 🤖 小智 MCP 客户端正在启动...
166
+ ✅ 服务已在后台启动 (PID: 12345)
167
+ 💡 使用 'xiaozhi status' 查看状态
168
+ 💡 使用 'xiaozhi attach' 查看日志
50
169
  ```
51
170
 
52
- #### 查看服务状态
171
+ **使用场景**:
172
+
173
+ - **开发调试**: 使用前台模式,可以实时查看日志
174
+ - **生产部署**: 使用后台模式,服务持续运行
175
+ - **客户端集成**: 使用 stdio 模式集成到 Cursor、Claude Desktop 等
176
+ - **Web 管理**: 使用 `-u` 选项同时启动 Web 界面
177
+
178
+ #### `xiaozhi stop` - 停止服务
179
+
180
+ **语法**:
53
181
 
54
182
  ```bash
55
- xiaozhi status # 查看服务运行状态和配置信息
183
+ xiaozhi stop
184
+ xiaozhi service stop # 完整命令形式
56
185
  ```
57
186
 
58
- #### 重启服务
187
+ **使用示例**:
59
188
 
60
189
  ```bash
61
- xiaozhi restart # 重启服务(前台模式)
62
- xiaozhi restart -d # 重启服务(后台模式)
190
+ xiaozhi stop
63
191
  ```
64
192
 
65
- #### 前台/后台切换
193
+ **预期输出**:
66
194
 
67
195
  ```bash
68
- xiaozhi attach # 将后台服务转到前台运行
196
+ $ xiaozhi stop
197
+ 🛑 正在停止服务...
198
+ ✅ 服务已停止 (PID: 12345)
69
199
  ```
70
200
 
71
- **注意:** `attach` 命令会先停止后台服务,然后在前台重新启动。
201
+ **注意事项**:
202
+
203
+ - 只能停止后台运行的服务
204
+ - 前台运行的服务请使用 `Ctrl+C` 停止
205
+
206
+ #### `xiaozhi status` - 查看服务状态
72
207
 
73
- ### 配置管理
208
+ **语法**:
209
+
210
+ ```bash
211
+ xiaozhi status
212
+ xiaozhi service status # 完整命令形式
213
+ ```
214
+
215
+ **使用示例**:
216
+
217
+ ```bash
218
+ xiaozhi status
219
+ ```
74
220
 
75
- #### 设置配置项
221
+ **预期输出**:
76
222
 
77
223
  ```bash
78
- xiaozhi set-config <key>=<value>
224
+ $ xiaozhi status
225
+ ✅ 服务正在运行 (PID: 12345)
226
+ ⏱️ 运行时间: 2小时30分钟
227
+ 🔧 运行模式: 后台模式
228
+
229
+ $ xiaozhi status # 服务未运行时
230
+ ❌ 服务未运行
79
231
  ```
80
232
 
81
- **示例:**
233
+ #### `xiaozhi restart` - 重启服务
234
+
235
+ **语法**:
82
236
 
83
237
  ```bash
84
- # 设置小智API端点
85
- xiaozhi set-config xiaozhi.endpoint=wss://api.xiaozhi.me/mcp
238
+ xiaozhi restart [选项]
239
+ xiaozhi service restart [选项] # 完整命令形式
240
+ ```
241
+
242
+ **选项**:
243
+
244
+ - `-d, --daemon` - 在后台运行服务
245
+ - `-u, --ui` - 同时启动 Web UI 服务
86
246
 
87
- # 设置嵌套配置
88
- xiaozhi set-config mcpServers.myserver.command=node
247
+ **使用示例**:
89
248
 
90
- # 包含特殊字符的值需要用引号包围
91
- xiaozhi set-config "xiaozhi.endpoint=wss://api.xiaozhi.me/mcp/?token=abc123"
249
+ ```bash
250
+ # 重启为前台模式
251
+ xiaozhi restart
252
+
253
+ # 重启为后台模式
254
+ xiaozhi restart -d
92
255
  ```
93
256
 
94
- #### 获取配置项
257
+ #### `xiaozhi attach` - 连接后台服务查看日志
258
+
259
+ **语法**:
95
260
 
96
261
  ```bash
97
- xiaozhi get-config [key]
262
+ xiaozhi attach
263
+ xiaozhi service attach # 完整命令形式
98
264
  ```
99
265
 
100
- **示例:**
266
+ **使用示例**:
101
267
 
102
268
  ```bash
103
- # 获取特定配置项
104
- xiaozhi get-config xiaozhi.endpoint
269
+ xiaozhi attach
270
+ ```
271
+
272
+ **预期输出**:
273
+
274
+ ```bash
275
+ $ xiaozhi attach
276
+ 🔗 连接到后台服务 (PID: 12345)
277
+ 📋 显示实时日志...
278
+ [2025-08-19 10:30:15] INFO: MCP 连接已建立
279
+ [2025-08-19 10:30:16] INFO: 工具调用: calculator.add
280
+ ```
281
+
282
+ **注意事项**:
283
+
284
+ - 按 `Ctrl+C` 可以断开连接,但不会停止后台服务
285
+ - 只能连接到后台运行的服务
286
+
287
+ ### 配置管理命令
288
+
289
+ 配置管理命令用于初始化、查看和修改 xiaozhi 的配置文件。支持 JSON、JSON5、JSONC 三种配置格式。
290
+
291
+ #### `xiaozhi config init` - 初始化配置文件
292
+
293
+ **语法**:
294
+
295
+ ```bash
296
+ xiaozhi config init [选项]
297
+ ```
298
+
299
+ **选项**:
300
+
301
+ - `-f, --format <format>` - 配置文件格式(json/json5/jsonc),默认为 json
302
+
303
+ **使用示例**:
304
+
305
+ ```bash
306
+ # 创建 JSON 格式配置文件
307
+ xiaozhi config init
308
+
309
+ # 创建 JSON5 格式配置文件(支持注释)
310
+ xiaozhi config init -f json5
105
311
 
106
- # 获取所有配置
107
- xiaozhi get-config
312
+ # 创建 JSONC 格式配置文件(VS Code 风格)
313
+ xiaozhi config init -f jsonc
108
314
  ```
109
315
 
110
- ## 配置文件
316
+ **预期输出**:
111
317
 
112
- 配置文件位于 `.xiaozhi/settings.json`,支持嵌套结构:
318
+ ```bash
319
+ $ xiaozhi config init
320
+ ✅ 配置文件已创建: xiaozhi.config.json
321
+ 📝 请编辑配置文件设置你的 MCP 端点:
322
+ 配置文件路径: /path/to/xiaozhi.config.json
323
+ 💡 或者使用命令设置:
324
+ xiaozhi config set mcpEndpoint <your-endpoint-url>
325
+ ```
326
+
327
+ **生成的配置文件示例**:
113
328
 
114
329
  ```json
115
330
  {
116
- "xiaozhi": {
117
- "endpoint": "wss://api.xiaozhi.me/mcp/?token=..."
118
- },
331
+ "mcpEndpoint": "<请填写你的接入点地址(获取地址在 xiaozhi.me)>",
119
332
  "mcpServers": {
120
- "amap-maps": {
121
- "command": "npx",
122
- "args": ["-y", "@amap/amap-maps-mcp-server"],
123
- "env": {
124
- "AMAP_MAPS_API_KEY": "your-api-key"
125
- }
333
+ "calculator": {
334
+ "command": "node",
335
+ "args": ["./mcpServers/calculator.js"]
126
336
  }
337
+ },
338
+ "connection": {
339
+ "heartbeatInterval": 30000,
340
+ "heartbeatTimeout": 10000,
341
+ "reconnectInterval": 5000
342
+ },
343
+ "webUI": {
344
+ "port": 9999
127
345
  }
128
346
  }
129
347
  ```
130
348
 
131
- ## 支持的配置键
349
+ #### `xiaozhi config get` - 查看配置值
350
+
351
+ **语法**:
352
+
353
+ ```bash
354
+ xiaozhi config get <key>
355
+ ```
356
+
357
+ **支持的配置键**:
132
358
 
133
- - `xiaozhi.endpoint` - 小智API WebSocket端点地址
134
- - `mcpServers.*` - MCP服务器配置
359
+ - `mcpEndpoint` - MCP 端点地址
360
+ - `mcpServers` - MCP 服务配置
361
+ - `connection` - 连接配置
362
+ - `heartbeatInterval` - 心跳检测间隔
363
+ - `heartbeatTimeout` - 心跳超时时间
364
+ - `reconnectInterval` - 重连间隔
135
365
 
136
- ## 服务管理详解
366
+ **使用示例**:
137
367
 
138
- ### 前台 vs 后台模式
368
+ ```bash
369
+ # 查看 MCP 端点
370
+ xiaozhi config get mcpEndpoint
371
+
372
+ # 查看所有 MCP 服务
373
+ xiaozhi config get mcpServers
139
374
 
140
- - **前台模式**: 服务在当前终端窗口运行,可以看到实时日志,按 `Ctrl+C` 停止
141
- - **后台模式**: 服务在后台运行,不占用终端,需要使用 `xiaozhi stop` 停止
375
+ # 查看连接配置
376
+ xiaozhi config get connection
377
+ ```
142
378
 
143
- ### 进程管理
379
+ **预期输出**:
144
380
 
145
- 小智使用 PID 文件(`.xiaozhi/xiaozhi.pid`)来跟踪后台进程:
381
+ ```bash
382
+ $ xiaozhi config get mcpEndpoint
383
+ MCP 端点: ws://localhost:8080
384
+
385
+ $ xiaozhi config get mcpServers
386
+ MCP 服务:
387
+ calculator: node ./mcpServers/calculator.js
388
+ datetime: node ./mcpServers/datetime.js
389
+
390
+ $ xiaozhi config get connection
391
+ 连接配置:
392
+ 心跳检测间隔: 30000ms
393
+ 心跳超时时间: 10000ms
394
+ 重连间隔: 5000ms
395
+ ```
146
396
 
147
- - 启动服务时会检查是否已有服务在运行,防止重复启动
148
- - 停止服务时会清理 PID 文件
149
- - 如果进程异常退出,下次启动时会自动清理无效的 PID 文件
397
+ #### `xiaozhi config set` - 设置配置值
150
398
 
151
- ### 常见使用场景
399
+ **语法**:
152
400
 
153
401
  ```bash
154
- # 开发调试:前台启动,查看实时日志
155
- xiaozhi start
402
+ xiaozhi config set <key> <value>
403
+ ```
404
+
405
+ **支持设置的配置键**:
406
+
407
+ - `mcpEndpoint` - MCP 端点地址
408
+ - `heartbeatInterval` - 心跳检测间隔(毫秒)
409
+ - `heartbeatTimeout` - 心跳超时时间(毫秒)
410
+ - `reconnectInterval` - 重连间隔(毫秒)
411
+
412
+ **使用示例**:
413
+
414
+ ```bash
415
+ # 设置 MCP 端点
416
+ xiaozhi config set mcpEndpoint "ws://localhost:8080"
417
+
418
+ # 设置心跳间隔为 60 秒
419
+ xiaozhi config set heartbeatInterval 60000
420
+
421
+ # 设置超时时间为 15 秒
422
+ xiaozhi config set heartbeatTimeout 15000
423
+ ```
424
+
425
+ **预期输出**:
426
+
427
+ ```bash
428
+ $ xiaozhi config set mcpEndpoint "ws://localhost:8080"
429
+ ✅ MCP 端点已设置为: ws://localhost:8080
430
+
431
+ $ xiaozhi config set heartbeatInterval 60000
432
+ ✅ 心跳检测间隔已设置为: 60000ms
433
+ ```
434
+
435
+ **注意事项**:
436
+
437
+ - 配置更改会立即保存到配置文件
438
+ - 如果配置文件不存在,会提示先运行 `xiaozhi config init`
439
+ - 数值类型的配置项会进行有效性验证
440
+
441
+ ### 项目管理命令
442
+
443
+ 项目管理命令用于基于模板快速创建 xiaozhi 项目。
444
+
445
+ #### `xiaozhi create` - 创建项目
446
+
447
+ **语法**:
448
+
449
+ ```bash
450
+ xiaozhi create <projectName> [选项]
451
+ ```
452
+
453
+ **选项**:
454
+
455
+ - `-t, --template <templateName>` - 使用指定模板创建项目
456
+
457
+ **可用模板**:
458
+
459
+ - `default` - 默认模板,包含基本配置
460
+ - `hello-world` - Hello World 示例,包含计算器和日期时间服务
461
+ - `docker` - Docker 配置模板,适用于容器化部署
462
+ - `json5` - JSON5 配置格式模板,支持注释
463
+ - `jsonc` - JSONC 配置格式模板,VS Code 风格
464
+ - `modelscope` - ModelScope 集成模板,支持 AI 模型服务
465
+
466
+ **使用示例**:
467
+
468
+ ```bash
469
+ # 创建基础项目
470
+ xiaozhi create my-app
471
+
472
+ # 使用 Hello World 模板创建项目
473
+ xiaozhi create my-hello-app -t hello-world
474
+
475
+ # 使用 Docker 模板创建项目
476
+ xiaozhi create my-docker-app -t docker
477
+
478
+ # 使用 ModelScope 模板创建 AI 项目
479
+ xiaozhi create my-ai-app -t modelscope
480
+ ```
481
+
482
+ **预期输出**:
483
+
484
+ ```bash
485
+ $ xiaozhi create my-app -t hello-world
486
+ ✅ 项目 "my-app" 创建成功
487
+
488
+ ✅ 项目创建完成!
489
+ 📝 接下来的步骤:
490
+ cd my-app
491
+ pnpm install # 安装依赖
492
+ # 编辑 xiaozhi.config.json 设置你的 MCP 端点
493
+ xiaozhi start # 启动服务
494
+ ```
495
+
496
+ **项目结构**:
497
+
498
+ ```
499
+ my-app/
500
+ ├── xiaozhi.config.json # 配置文件
501
+ ├── package.json # 项目依赖
502
+ ├── mcpServers/ # MCP 服务目录
503
+ │ ├── calculator.js # 计算器服务
504
+ │ └── datetime.js # 日期时间服务
505
+ └── README.md # 项目说明
506
+ ```
507
+
508
+ ### MCP 管理命令
509
+
510
+ MCP 管理命令用于查看和管理 MCP 服务及其工具。
511
+
512
+ #### `xiaozhi mcp list` - 列出 MCP 服务
513
+
514
+ **语法**:
515
+
516
+ ```bash
517
+ xiaozhi mcp list [选项]
518
+ ```
519
+
520
+ **选项**:
521
+
522
+ - `--tools` - 显示所有服务的工具列表
523
+
524
+ **使用示例**:
525
+
526
+ ```bash
527
+ # 列出所有 MCP 服务
528
+ xiaozhi mcp list
529
+
530
+ # 列出服务及其工具
531
+ xiaozhi mcp list --tools
532
+ ```
533
+
534
+ #### `xiaozhi mcp server` - 管理指定 MCP 服务
535
+
536
+ **语法**:
537
+
538
+ ```bash
539
+ xiaozhi mcp server <serverName>
540
+ ```
541
+
542
+ **使用示例**:
543
+
544
+ ```bash
545
+ # 查看 calculator 服务详情
546
+ xiaozhi mcp server calculator
547
+ ```
548
+
549
+ #### `xiaozhi mcp tool` - 启用/禁用工具
550
+
551
+ **语法**:
552
+
553
+ ```bash
554
+ xiaozhi mcp tool <serverName> <toolName> <action>
555
+ ```
156
556
 
157
- # 生产使用:后台启动,持续运行
557
+ **参数**:
558
+
559
+ - `<serverName>` - 服务名称
560
+ - `<toolName>` - 工具名称
561
+ - `<action>` - 操作(enable/disable)
562
+
563
+ **使用示例**:
564
+
565
+ ```bash
566
+ # 启用 calculator 服务的 add 工具
567
+ xiaozhi mcp tool calculator add enable
568
+
569
+ # 禁用 calculator 服务的 subtract 工具
570
+ xiaozhi mcp tool calculator subtract disable
571
+ ```
572
+
573
+ ### 端点管理命令
574
+
575
+ 端点管理命令用于管理 MCP 端点地址,支持单端点和多端点配置。
576
+
577
+ #### `xiaozhi endpoint list` - 列出所有端点
578
+
579
+ **语法**:
580
+
581
+ ```bash
582
+ xiaozhi endpoint list
583
+ ```
584
+
585
+ **使用示例**:
586
+
587
+ ```bash
588
+ xiaozhi endpoint list
589
+ ```
590
+
591
+ **预期输出**:
592
+
593
+ ```bash
594
+ $ xiaozhi endpoint list
595
+ 共 2 个端点:
596
+ 1. ws://localhost:8080
597
+ 2. ws://server.example.com:8080
598
+ ```
599
+
600
+ #### `xiaozhi endpoint add` - 添加端点
601
+
602
+ **语法**:
603
+
604
+ ```bash
605
+ xiaozhi endpoint add <url>
606
+ ```
607
+
608
+ **使用示例**:
609
+
610
+ ```bash
611
+ xiaozhi endpoint add "ws://new-server:8080"
612
+ ```
613
+
614
+ #### `xiaozhi endpoint remove` - 移除端点
615
+
616
+ **语法**:
617
+
618
+ ```bash
619
+ xiaozhi endpoint remove <url>
620
+ ```
621
+
622
+ **使用示例**:
623
+
624
+ ```bash
625
+ xiaozhi endpoint remove "ws://old-server:8080"
626
+ ```
627
+
628
+ #### `xiaozhi endpoint set` - 设置端点
629
+
630
+ **语法**:
631
+
632
+ ```bash
633
+ xiaozhi endpoint set <url>
634
+ ```
635
+
636
+ **使用示例**:
637
+
638
+ ```bash
639
+ # 设置单个端点
640
+ xiaozhi endpoint set "ws://localhost:8080"
641
+ ```
642
+
643
+ ### UI 管理命令
644
+
645
+ UI 管理命令用于启动 Web 配置界面。
646
+
647
+ #### `xiaozhi ui` - 启动 Web UI
648
+
649
+ **语法**:
650
+
651
+ ```bash
652
+ xiaozhi ui
653
+ ```
654
+
655
+ **使用示例**:
656
+
657
+ ```bash
658
+ xiaozhi ui
659
+ ```
660
+
661
+ **预期输出**:
662
+
663
+ ```bash
664
+ $ xiaozhi ui
665
+ ✅ 配置管理网页已启动,可通过以下地址访问:
666
+ 本地访问: http://localhost:9999
667
+ 网络访问: http://<你的IP地址>:9999
668
+ 💡 提示: 按 Ctrl+C 停止服务
669
+ ```
670
+
671
+ **功能特性**:
672
+
673
+ - 可视化配置编辑
674
+ - 实时配置验证
675
+ - 服务状态监控
676
+ - 日志查看
677
+
678
+ ## 快速参考
679
+
680
+ ### 常用命令速查表
681
+
682
+ | 功能 | 命令 | 说明 |
683
+ | -------------- | ------------------------------------------------------ | --------------------- |
684
+ | **项目创建** | `xiaozhi create my-app -t hello-world` | 创建 Hello World 项目 |
685
+ | **配置初始化** | `xiaozhi config init` | 初始化配置文件 |
686
+ | **设置端点** | `xiaozhi config set mcpEndpoint "ws://localhost:8080"` | 设置 MCP 端点 |
687
+ | **前台启动** | `xiaozhi start` | 前台启动服务 |
688
+ | **后台启动** | `xiaozhi start -d` | 后台启动服务 |
689
+ | **启动 + UI** | `xiaozhi start -u` | 启动服务并打开 Web UI |
690
+ | **查看状态** | `xiaozhi status` | 查看服务运行状态 |
691
+ | **停止服务** | `xiaozhi stop` | 停止后台服务 |
692
+ | **查看日志** | `xiaozhi attach` | 连接后台服务查看日志 |
693
+ | **重启服务** | `xiaozhi restart -d` | 重启为后台模式 |
694
+ | **启动 UI** | `xiaozhi ui` | 启动 Web 配置界面 |
695
+ | **查看配置** | `xiaozhi config get mcpEndpoint` | 查看端点配置 |
696
+ | **列出服务** | `xiaozhi mcp list` | 列出所有 MCP 服务 |
697
+
698
+ ### 典型使用流程
699
+
700
+ #### 1. 新项目开发流程
701
+
702
+ ```bash
703
+ # 1. 创建项目
704
+ xiaozhi create my-project -t hello-world
705
+ cd my-project
706
+ npm install
707
+
708
+ # 2. 配置端点
709
+ xiaozhi config set mcpEndpoint "your-endpoint-url"
710
+
711
+ # 3. 启动开发
712
+ xiaozhi start # 前台模式,便于调试
713
+ ```
714
+
715
+ #### 2. 生产部署流程
716
+
717
+ ```bash
718
+ # 1. 后台启动
158
719
  xiaozhi start -d
159
720
 
160
- # 检查服务状态
721
+ # 2. 检查状态
161
722
  xiaozhi status
162
723
 
163
- # 查看后台日志(需要转到前台)
164
- xiaozhi attach
724
+ # 3. 配置监控(可选)
725
+ xiaozhi ui # 启动 Web 界面监控
726
+ ```
165
727
 
166
- # 重启服务(比如更新配置后)
167
- xiaozhi restart -d
728
+ #### 3. 客户端集成流程
729
+
730
+ ```bash
731
+ # 1. 配置 Cursor/Claude Desktop
732
+ xiaozhi start --stdio
733
+
734
+ # 2. 或者启动 HTTP Server
735
+ xiaozhi start -s 3000
168
736
  ```
169
737
 
170
- ## 注意事项
738
+ ## 故障排除
171
739
 
172
- 1. **引号使用**: 当配置值包含特殊字符(如 `?`, `&`, `=` 等)时,需要用引号包围整个参数
173
- 2. **嵌套键**: 使用点号分隔嵌套键,如 `xiaozhi.endpoint`
174
- 3. **自动保存**: 配置更改会立即保存到文件
175
- 4. **错误处理**: 命令会提供清晰的错误信息和使用示例
176
- 5. **服务检查**: 启动前会检查必要的配置项(endpoint 和 mcpServers)
177
- 6. **进程安全**: 防止重复启动,确保同时只有一个服务实例运行
740
+ ### 常见问题及解决方案
178
741
 
179
- ## 开发
742
+ #### 1. 配置文件相关问题
180
743
 
181
- 如果你想在开发环境中直接运行CLI工具:
744
+ **问题**: `配置文件不存在`
182
745
 
183
746
  ```bash
184
- # 直接运行
185
- node bin/xiaozhi --help
747
+ 配置文件不存在
748
+ 💡 提示: 请先运行 "xiaozhi config init" 初始化配置
749
+ ```
750
+
751
+ **解决方案**:
186
752
 
187
- # 或者使用src中的文件
188
- node src/cli.js --help
753
+ ```bash
754
+ xiaozhi config init
755
+ ```
756
+
757
+ **问题**: `配置格式错误`
758
+
759
+ **解决方案**:
760
+
761
+ ```bash
762
+ # 备份现有配置
763
+ cp xiaozhi.config.json xiaozhi.config.json.backup
764
+
765
+ # 重新初始化
766
+ xiaozhi config init
767
+
768
+ # 手动恢复配置内容
769
+ ```
770
+
771
+ #### 2. 服务启动问题
772
+
773
+ **问题**: `端口被占用`
774
+
775
+ ```bash
776
+ ❌ 启动失败: 端口 9999 已被占用
777
+ ```
778
+
779
+ **解决方案**:
780
+
781
+ ```bash
782
+ # 查找占用端口的进程
783
+ lsof -i :9999
784
+
785
+ # 或者修改配置使用其他端口
786
+ xiaozhi config set webUI.port 8888
787
+ ```
788
+
789
+ **问题**: `MCP 端点连接失败`
790
+
791
+ ```bash
792
+ ❌ 连接失败: 无法连接到 ws://localhost:8080
793
+ ```
794
+
795
+ **解决方案**:
796
+
797
+ ```bash
798
+ # 1. 检查端点地址是否正确
799
+ xiaozhi config get mcpEndpoint
800
+
801
+ # 2. 检查网络连接
802
+ ping localhost
803
+
804
+ # 3. 重新设置端点
805
+ xiaozhi config set mcpEndpoint "correct-endpoint-url"
806
+ ```
807
+
808
+ #### 3. 服务管理问题
809
+
810
+ **问题**: `无法停止服务`
811
+
812
+ ```bash
813
+ ❌ 停止失败: 找不到运行中的服务
814
+ ```
815
+
816
+ **解决方案**:
817
+
818
+ ```bash
819
+ # 1. 检查服务状态
820
+ xiaozhi status
821
+
822
+ # 2. 强制清理(如果进程已死但 PID 文件仍存在)
823
+ rm -f .xiaozhi/xiaozhi.pid
824
+
825
+ # 3. 查找并手动终止进程
826
+ ps aux | grep xiaozhi
827
+ kill <PID>
828
+ ```
829
+
830
+ #### 4. 权限问题
831
+
832
+ **问题**: `权限不足`
833
+
834
+ ```bash
835
+ ❌ 启动失败: 权限不足
836
+ ```
837
+
838
+ **解决方案**:
839
+
840
+ ```bash
841
+ # 检查文件权限
842
+ ls -la xiaozhi.config.json
843
+
844
+ # 修复权限
845
+ chmod 644 xiaozhi.config.json
846
+ chmod 755 mcpServers/
847
+ ```
848
+
849
+ ### 调试技巧
850
+
851
+ #### 1. 查看详细信息
852
+
853
+ ```bash
854
+ # 查看系统信息
855
+ xiaozhi --info
856
+
857
+ # 查看详细版本信息
858
+ xiaozhi --version-info
189
859
  ```
190
860
 
861
+ #### 2. 日志分析
862
+
863
+ ```bash
864
+ # 前台模式查看实时日志
865
+ xiaozhi start
866
+
867
+ # 后台模式查看日志
868
+ xiaozhi attach
869
+ ```
870
+
871
+ #### 3. 配置验证
872
+
873
+ ```bash
874
+ # 检查配置完整性
875
+ xiaozhi config get mcpEndpoint
876
+ xiaozhi config get mcpServers
877
+ xiaozhi config get connection
878
+ ```
879
+
880
+ #### 4. 网络诊断
881
+
882
+ ```bash
883
+ # 测试端点连接
884
+ curl -I http://your-endpoint-host
885
+
886
+ # 检查端口监听
887
+ netstat -an | grep :9999
888
+ ```
889
+
890
+ ### 获取帮助
891
+
892
+ 如果遇到问题无法解决,可以:
893
+
894
+ 1. **查看帮助信息**:
895
+
896
+ ```bash
897
+ xiaozhi --help
898
+ xiaozhi <command> --help
899
+ ```
900
+
901
+ 2. **查看项目文档**: 访问项目 GitHub 仓库的 docs 目录
902
+
903
+ 3. **提交问题**: 在 GitHub Issues 中描述问题,包含:
904
+ - 操作系统信息
905
+ - Node.js 版本
906
+ - xiaozhi 版本 (`xiaozhi --version`)
907
+ - 完整的错误信息
908
+ - 复现步骤
909
+
191
910
  ## 环境变量
192
911
 
193
- - `MCP_SERVER_PROXY_PATH`: 指定 `mcpServerProxy.js` 文件的完整路径,主要用于测试环境
194
- - `XIAOZHI_CONFIG_DIR`: 指定配置文件目录,默认为当前工作目录
195
- - `XIAOZHI_DAEMON`: 标记进程是否以守护进程模式运行
912
+ xiaozhi 支持以下环境变量:
913
+
914
+ | 变量名 | 描述 | 默认值 | 示例 |
915
+ | ----------------------- | ---------------- | ------------ | ---------------------------- |
916
+ | `XIAOZHI_CONFIG_DIR` | 配置文件目录 | 当前工作目录 | `/path/to/config` |
917
+ | `XIAOZHI_DAEMON` | 标记守护进程模式 | 无 | `true` |
918
+ | `MCP_SERVER_PROXY_PATH` | MCP 代理文件路径 | 自动检测 | `/path/to/mcpServerProxy.js` |
919
+
920
+ **使用示例**:
921
+
922
+ ```bash
923
+ # 指定配置目录
924
+ XIAOZHI_CONFIG_DIR=/etc/xiaozhi xiaozhi start
925
+
926
+ # 在 Docker 中使用
927
+ docker run -e XIAOZHI_CONFIG_DIR=/app/config xiaozhi-client
928
+ ```