5.5 KiB
ChatLab 是一个专注于聊天记录分析的本地化应用。通过 AI Agent和灵活的 SQL 引擎,你可以自由地分析你的聊天记录数据。
目前已支持:WhatsApp、LINE、QQ、Discord、Instagram、Telegram、iMessage、Google Chat。即将支持:Messenger、KakaoTalk。
首次安装?从这里开始:快速开始
核心特性
- 🚀 极致性能:使用流式计算与多线程并行架构,就算是百万条级别的聊天记录,依然拥有丝滑交互和响应。
- 🔒 保护隐私:聊天记录和配置都存在你的本地数据库,所有分析都在本地进行(AI 功能例外)。
- 🤖 智能 AI Agent:集成 24+ Function Calling 工具,支持动态调度,深度挖掘聊天记录中的更多有趣。
- 📊 多维数据可视化:提供活跃度趋势、时间规律分布、成员排行等多个维度的直观分析图表。
- 🧩 格式标准化:通过强大的数据抽象层,抹平不同聊天软件的格式差异,即使是再小众的聊天软件,也能分析。
安装
桌面端
前往官网或 GitHub Releases 下载对应操作系统的安装包,双击安装即可。
CLI
需要 Node.js ≥ 20。
npm i chatlab-cli -g
启动 ChatLab:
clb web # 启动 API + Web UI,并在浏览器中打开
clb web --no-open # 启动 API + Web UI,但不自动打开浏览器
clb web --headless # 仅启动 API,不挂载 Web UI(供脚本 / AI Agent 调用)
常用选项:--port <端口>(默认 3110)、--host <地址>、--token <令牌>。
如果希望服务常驻后台(开机自启 + 崩溃自动重启):
clb web --daemon # 注册为系统服务(macOS / Linux)
clb status # 查看常驻状态
clb stop # 停止并取消常驻
完整使用说明请见快速开始指南。
使用指南
预览界面
预览更多请前往官网 chatlab.fun
架构概览
ChatLab 是一个基于 pnpm monorepo 的工程,桌面端使用 Electron + Vue 3 + Nuxt UI + Tailwind CSS,核心业务逻辑沉淀在共享包(@openchatlab/core、@openchatlab/node-runtime、@openchatlab/tools),桌面端与 CLI 服务端复用同一份逻辑,保持功能同步。
数据流分五个阶段:格式嗅探 → 流式解析 → 本地落盘 → SQL + AI 查询 → 可视化呈现。
详细架构请参考项目文档。
架构原则
- Local-first by default:原始聊天记录、索引与配置默认留在本地,优先保护隐私边界。
- Streaming over buffering:以流式解析和增量处理为核心,面向大体量导出文件保持稳定吞吐。
- Composable intelligence:AI 能力通过 Agent + Tool Calling 组合,避免将业务逻辑硬编码到单一模型。
- Schema-first evolution:围绕统一数据结构构建导入、查询、分析与可视化,降低演进成本。
本地开发
完整协作者说明见开发指南。
环境要求
- Node.js >= 24 < 25
- pnpm >= 11 < 12
启动步骤
# 安装依赖
pnpm install
# 启动开发模式 — 会提示选择要启动的目标
pnpm dev
也可以直接启动指定目标:
pnpm dev:desktop # Electron 桌面端
pnpm dev:cli-web # CLI Web 前端 + 本地服务
pnpm dev:web-wasm # 纯浏览器 Web WASM
pnpm dev:serve # 仅 CLI 服务端
pnpm docs:dev # 文档站
若 Electron 在启动时异常,可尝试使用 electron-fix:
npm install electron-fix -g
electron-fix start
隐私政策与用户协议
使用本软件前,请阅读 隐私政策与用户协议
社区
提交 Pull Request 前请遵循以下原则:
- 明显的 Bug 修复可直接提交
- 对于新功能,请先提交 Issue 进行讨论,未经讨论直接提交的 PR 会被关闭
- 一个 PR 尽量只做一件事,若改动较大,请考虑拆分为多个独立的 PR
- 本地运行、目录职责、测试检查和 AI 协作说明见开发指南
感谢所有为 ChatLab 做出贡献的人!
License
AGPL-3.0 License
