feat(cli): make clb web the primary web command

This commit is contained in:
digua committed 2026-08-12 12:47:00 +08:00
1 parent c6db9f0c4c
commit 47299a94cb
64 files changed
+264 -270

No files matched your search

+23 -23
View File
@@ -21,31 +21,31 @@ npx skills add ChatLab/ChatLab --skill chatlab-analyze-cn -g
chatlab-analyze-cn 帮我分析我和小红的聊天记录
```
这个技能会引导 Agent 先执行 `chatlab manifest` 获取机读命令清单,再用安全的 `--format agent/json` 查询聊天记录。
这个技能会引导 Agent 先执行 `clb manifest` 获取机读命令清单,再用安全的 `--format agent/json` 查询聊天记录。
`chatlab-analyze-cn` 始终只读。如果你希望 Agent 导入新的聊天导出文件,请改用独立的 `chatlab-import-cn` Skill;它会先预览导入计划,再自动新建或增量导入,详见[导入聊天记录指南](/cn/usage/how-to-import)。
## 命令总览
```bash
chatlab sessions list # 列出已导入的会话
chatlab sessions show # 查看单个会话详情
chatlab members list # 会话成员列表
chatlab members history # 成员改名历史
chatlab messages list # 按时间窗口列消息
chatlab messages search <关键词...> # 关键词搜索(支持多词、上下文、翻页)
chatlab messages context --id <id> # 查看某条消息前后现场
chatlab messages between # 两个成员之间的对话
chatlab stats overview # 会话概览统计
chatlab stats activity # 成员活跃度排行
chatlab stats time --by day # 时间分布(hour/weekday/day/month)
chatlab stats keywords # 高频词(已过隐私过滤)
chatlab stats response # 回复速度排行
chatlab topics list # AI 分段摘要列表
chatlab topics show --id <id> # 某个分段的原始消息
chatlab sql "<SELECT ...>" # 只读 SQL 兜底(字符串默认脱敏)
chatlab schema # 查看数据库表结构
chatlab manifest # 机读命令清单(给 Agent 一次读全)
clb sessions list # 列出已导入的会话
clb sessions show # 查看单个会话详情
clb members list # 会话成员列表
clb members history # 成员改名历史
clb messages list # 按时间窗口列消息
clb messages search <关键词...> # 关键词搜索(支持多词、上下文、翻页)
clb messages context --id <id> # 查看某条消息前后现场
clb messages between # 两个成员之间的对话
clb stats overview # 会话概览统计
clb stats activity # 成员活跃度排行
clb stats time --by day # 时间分布(hour/weekday/day/month)
clb stats keywords # 高频词(已过隐私过滤)
clb stats response # 回复速度排行
clb topics list # AI 分段摘要列表
clb topics show --id <id> # 某个分段的原始消息
clb sql "<SELECT ...>" # 只读 SQL 兜底(字符串默认脱敏)
clb schema # 查看数据库表结构
clb manifest # 机读命令清单(给 Agent 一次读全)
```
只有一个会话时可省略 `--session`;多个会话时命令会返回候选列表提示消歧。
@@ -81,15 +81,15 @@ agent/json 模式下 stdout 只包含一个 JSON 响应信封,日志一律走
## 隐私边界
- 所有查询命令默认应用你在 ChatLab 设置中的脱敏规则与黑名单,包括 `stats keywords` 的词表、`topics list` 的摘要和 `sql` 结果中的字符串字段;`sql` 读取消息 `content` 列需要显式 `--raw`。
- `--raw`(绕过预处理)默认禁用,仅当你显式执行 `chatlab config set cli.allow_raw true` 或设置 `CHATLAB_CLI_ALLOW_RAW=1` 后可用。
- 不需要 SQL 兜底能力时,可用 `chatlab config set cli.allow_sql false` 关闭 `sql` 命令。
- `--raw`(绕过预处理)默认禁用,仅当你显式执行 `clb config set cli.allow_raw true` 或设置 `CHATLAB_CLI_ALLOW_RAW=1` 后可用。
- 不需要 SQL 兜底能力时,可用 `clb config set cli.allow_sql false` 关闭 `sql` 命令。
## 查询示例
典型配方——"谁最早提到某个问题?查看现场":
```bash
chatlab messages search "服务器迁移" --sort asc --limit 5 --context 3 --format agent
clb messages search "服务器迁移" --sort asc --limit 5 --context 3 --format agent
# 从返回文本的单条消息标记 [#1021*] 拿到消息 id,再深挖现场:
chatlab messages context --id 1021 --window 10 --format agent
clb messages context --id 1021 --window 10 --format agent
```
+1 -1
View File
@@ -45,7 +45,7 @@ pnpm install
## 平台术语
- **CLI Web**:由 `chatlab start` 运行,包含 Node.js 后端和 Web UI。
- **CLI Web**:由 `clb web` 运行,包含 Node.js 后端和 Web UI。
- **Web WASM**:无 Node.js 后端,解析、存储和查询均在浏览器内运行。
- “Web”是两者的上位概念。上下文无法区分时,默认指 **Web WASM**。
- “后端”或“API Server”只指 Node.js 进程,不等于完整的 CLI Web。
+2 -2
View File
@@ -53,8 +53,8 @@ Skill 会自动选择电脑上已有的 Node.js、Python 或 Shell 工具,完
转换完成前,Agent 必须依次执行:
```bash
chatlab validate "/转换后的文件.jsonl" --json
chatlab import "/转换后的文件.jsonl" --dry-run --json
clb validate "/转换后的文件.jsonl" --json
clb import "/转换后的文件.jsonl" --dry-run --json
```
只有严格验证和导入预览都成功,并且源消息数与输出消息数核对一致,才会报告转换成功。转换脚本和输出文件都会保留,方便以后重新转换更新后的聊天记录。
+2 -2
View File
@@ -386,10 +386,10 @@ JSONL(JSON Lines)格式适用于**超大规模聊天记录**(>100 万条
ChatLab CLI 可以在不导入、不写入数据库的情况下严格验证 JSON/JSONL。它会检查坏行、协议版本、必填字段、秒级时间戳、成员引用、消息类型、消息 ID 和回复关系,并且不会输出消息正文:
```bash
chatlab validate "/转换后的文件.jsonl" --json
clb validate "/转换后的文件.jsonl" --json
```
验证通过后,再使用 `chatlab import <file> --dry-run --json` 确认 ChatLab 能够完整识别该文件。
验证通过后,再使用 `clb import <file> --dry-run --json` 确认 ChatLab 能够完整识别该文件。
## 版本历史
+2 -2
View File
@@ -92,10 +92,10 @@ docker run --name chatlab \
容器的默认命令是:
```bash
chatlab start --no-open --host 0.0.0.0
clb web --no-open --host 0.0.0.0
```
`chatlab start` 按 CLI 中的声明顺序支持以下选项:
`clb web` 按 CLI 中的声明顺序支持以下选项:
| 选项 | 说明 |
| --- | --- |
+2 -2
View File
@@ -45,7 +45,7 @@ npm install -g chatlab-cli
最简单的用法是直接导入一个文件:
```bash
chatlab import "/absolute/path/to/chat-export.json"
clb import "/absolute/path/to/chat-export.json"
```
### 指定已有会话
@@ -53,7 +53,7 @@ chatlab import "/absolute/path/to/chat-export.json"
需要明确追加到某个会话时,使用 `--session-id`:
```bash
chatlab import "/absolute/path/to/chat-export.json" --session-id <session-id>
clb import "/absolute/path/to/chat-export.json" --session-id <session-id>
```
## 自动化:使用 API 或自动同步
+7 -7
View File
@@ -23,9 +23,9 @@ npm install --global chatlab-cli
安装后运行:
```bash
chatlab start # 启动 API + Web UI,并在浏览器中打开
chatlab start --no-open # 启动 API + Web UI,但不自动打开浏览器
chatlab start --headless # 仅启动 API,不提供 Web UI(供脚本 / AI Agent 调用)
clb web # 启动 API + Web UI,并在浏览器中打开
clb web --no-open # 启动 API + Web UI,但不自动打开浏览器
clb web --headless # 仅启动 API,不提供 Web UI(供脚本 / AI Agent 调用)
```
常用选项:`--port <端口>`(默认 `3110`)、`--host <地址>`、`--token <令牌>`。
@@ -33,13 +33,13 @@ chatlab start --headless # 仅启动 API,不提供 Web UI(供脚本 / AI Ag
如果希望服务常驻后台,可以使用:
```bash
chatlab start --daemon # 注册为系统服务,开机自启(macOS / Linux)
chatlab status # 查看常驻状态
chatlab stop # 停止并取消常驻
clb web --daemon # 注册为系统服务,开机自启(macOS / Linux)
clb status # 查看常驻状态
clb stop # 停止并取消常驻
```
::: tip
`clb` 是 `chatlab` 的简写,两者完全等价。
推荐使用 `clb`。旧的 `chatlab` 命令仍会保留,以兼容已有脚本和使用习惯。
:::
## Docker