# ChatLab
**Repository Path**: bule-lin/ChatLab
## Basic Information
- **Project Name**: ChatLab
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: AGPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-02-02
- **Last Updated**: 2026-02-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

Local-first chat analysis tool: Relive your social memories powered by SQL and AI Agents.
English | [简体中文](./README.md)
[Project Website](https://chatlab.fun/) ·
[Documentation](https://chatlab.fun/usage/) ·
[Roadmap](https://chatlabfun.featurebase.app/roadmap) ·
[Issue Submission](https://github.com/hellodigua/ChatLab/issues)
ChatLab is a free, open-source, and local-first application dedicated to analyzing chat records. Through an AI Agent and a flexible SQL engine, you can freely dissect, query, and even reconstruct your social data.
We refuse to upload your privacy to the cloud; instead, we bring powerful analytics directly to your computer.
Currently supported: Chat record analysis for **LINE, WeChat, QQ, WhatsApp, Instagram and Discord**. Upcoming support: **Messenger, iMessage**.
The project is still in early iteration, so there are many bugs and unfinished features. If you encounter any issues, feel free to provide feedback.
## Core Features
- 🚀 **Ultimate Performance**: Utilizing stream computing and multi-threaded parallel architecture, it maintains fluid interaction and response even with millions of chat records.
- 🔒 **Privacy Protection**: Chat records and configurations are stored in your local database, and all analysis is performed locally (with the exception of AI features).
- 🤖 **Intelligent AI Agent**: Integrated with 10+ Function Calling tools and supporting dynamic scheduling to deeply excavate interesting insights from chat records.
- 📊 **Multi-dimensional Data Visualization**: Provides intuitive analysis charts for activity trends, time distribution patterns, member rankings, and more.
- 🧩 **Format Standardization**: Through a powerful data abstraction layer, it bridges the format differences between various chat applications, allowing any chat records to be analyzed.
## Usage Guides
- [Chat Record Export Guide](https://chatlab.fun/usage/how-to-export.html)
- [Standardized Format Specification](https://chatlab.fun/usage/chatlab-format.html)
- [Troubleshooting Guide](https://chatlab.fun/usage/troubleshooting.html)
## Preview Interface
For more previews, please visit the official website: [chatlab.fun](https://chatlab.fun/)

## System Architecture
### Electron Main Process
- `electron/main/index.ts` handles the application lifecycle, window management, and custom protocol registration.
- `electron/main/ipc/` splits IPC modules by function (Window, Chat, Merge, AI, Cache) to ensure secure and controllable data exchange.
- `electron/main/ai/` integrates multiple LLMs, featuring built-in Agent pipelines, prompt assembly, and Function Calling tool registration.
### Worker and Data Pipeline
- The `workerManager` in `electron/main/worker/` coordinates Worker threads, while `dbWorker` handles message routing.
- `worker/query/*` handles activity, AI search, advanced analysis, and SQL Lab queries.
- `worker/import/streamImport.ts` provides stream importing.
- The `parser/` directory adopts a three-layer "sniff + parse" architecture capable of processing GB-level log files with constant memory usage.
### Rendering Process
- Vue 3 + Nuxt UI + Tailwind CSS manages the visualization pages.
- `src/pages` contains business pages, while `src/components/analysis` and `src/components/charts` provide reusable components.
- `src/stores` manages states like sessions, layout, and AI prompts via Pinia.
- `src/composables/useAIChat.ts` encapsulates the AI conversation workflow.
- The preload script `electron/preload/index.ts` exposes `window.chatApi/mergeApi/aiApi/llmApi`, ensuring secure isolation between the renderer and main processes.
---
## Local Development
### Setup Steps
Node.js environment requirement: v20+
```bash
# Install dependencies
pnpm install
# Start development server
pnpm run dev
```
If Electron encounters exceptions during startup, you can try using `electron-fix`:
```bash
npm install electron-fix -g
electron-fix start
```
## Contribution Guide
Please follow these principles before submitting a Pull Request:
- Obvious bug fixes can be submitted directly.
- For new features, please submit an Issue for discussion first; **PRs submitted without prior discussion will be closed**.
- Keep one PR focused on one task; if changes are extensive, consider splitting them into multiple independent PRs.
## Privacy Policy & User Agreement
Before using this software, please read the [Privacy Policy & User Agreement](./src/assets/docs/agreement_en.md).
## License
AGPL-3.0 License