[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73527":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":15,"starSnapshotCount":15,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},73527,"ChatLab","ChatLab\u002FChatLab","Local-first chat history analyzer with AI. | 本地优先的 AI 聊天记录分析工具","https:\u002F\u002Fchatlab.fun",null,"TypeScript",6658,1414,19,12,0,44,103,344,132,40.45,"GNU Affero General Public License v3.0",false,"main",[25,26,27,28,29,30],"ai-agent","ai-agents","chat-analyzer","chat-history","data-analysis","data-visualization","2026-06-12 02:03:14","\u003Cdiv align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fgithub.com\u002FChatLab\u002FChatLab\u002Fraw\u002Fmain\u002Fpublic\u002Fimages\u002Fbanner-light.png\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FChatLab\u002FChatLab\u002Fraw\u002Fmain\u002Fpublic\u002Fimages\u002Fbanner.png\" alt=\"ChatLab\" title=\"ChatLab\" width=\"500\" \u002F>\n  \u003C\u002Fpicture>\n\nYour chat history, finally yours.\n\nEnglish | [简体中文](.\u002Fdocs\u002FREADME.zh-CN.md)\n\n[Official Website](https:\u002F\u002Fchatlab.fun\u002F) · [Documentation](https:\u002F\u002Fchatlab.fun\u002Fusage\u002F) · [Roadmap](https:\u002F\u002Fchatlab.fun\u002Fcn\u002Froadmap\u002Ftasks)\n\n\u003C\u002Fdiv>\n\nChatLab is an open-source desktop app for understanding your social conversations. It combines a flexible SQL engine with AI agents so you can explore patterns, ask better questions, and extract insights from chat data, all on your own machine.\n\nCurrently supported: **WhatsApp, LINE, WeChat, QQ, Discord, Instagram, and Telegram**. Coming next: **iMessage, Messenger, and KakaoTalk**.\n\n## Core Features\n\n- 🚀 **Built for large histories**: Stream parsing and multi-worker processing keep imports and analysis responsive, even at million-message scale.\n- 🔒 **Private by default**: Your chat data and settings stay local. No mandatory cloud upload of raw conversations.\n- 🤖 **AI that can actually operate on data**: Agent + Function Calling workflows can search, summarize, and analyze chat records with context.\n- 📊 **Insight-rich visual views**: See trends, time patterns, interaction frequency, rankings, and more in one place.\n- 🧩 **Cross-platform normalization**: Different export formats are mapped into a unified model so you can analyze them consistently.\n\n## Usage Guides\n\n- [Download Guide](https:\u002F\u002Fchatlab.fun\u002F?type=download)\n- [Chat Record Export Guide](https:\u002F\u002Fchatlab.fun\u002Fusage\u002Fhow-to-export)\n- [Standardized Format Specification](https:\u002F\u002Fchatlab.fun\u002Fstandard\u002Fchatlab-format)\n- [Troubleshooting Guide](https:\u002F\u002Fchatlab.fun\u002Fusage\u002Ftroubleshooting)\n\n## Preview\n\nFor more previews, please visit the official website: [chatlab.fun](https:\u002F\u002Fchatlab.fun\u002F)\n\n![Preview Interface](\u002Fpublic\u002Fimages\u002Fintro_en.png)\n\n## System Architecture\n\n### Architecture Principles\n\n- **Local-first by default**: Raw chat data, indexes, and settings remain on-device unless you explicitly choose otherwise.\n- **Streaming over buffering**: Stream-first parsing and incremental processing keep large imports stable and memory-efficient.\n- **Composable intelligence**: AI features are assembled through Agent + Tool Calling, not hard-coded into one model path.\n- **Schema-first evolution**: Import, query, analysis, and visualization share a consistent data model that scales with new features.\n\n### Runtime Architecture\n\n- **Main Process (control plane)**: `electron\u002Fmain\u002Findex.ts` handles lifecycle and windows. `electron\u002Fmain\u002Fipc\u002F` defines domain-scoped IPC, while `electron\u002Fmain\u002Fai\u002F` and `electron\u002Fmain\u002Fi18n\u002F` provide shared AI and localization services.\n- **Worker Layer (compute plane)**: `electron\u002Fmain\u002Fworker\u002F` runs import, indexing, and query tasks via `workerManager`, keeping CPU-heavy work off the UI thread.\n- **Renderer Layer (interaction plane)**: Vue 3 + Nuxt UI + Tailwind CSS drive management, private chat, group chat, and analysis interfaces. `electron\u002Fpreload\u002Findex.ts` exposes tightly scoped APIs for secure process boundaries.\n\n### Data Pipeline\n\n1. **Ingestion**: `parser\u002F` detects file format and dispatches to the matching parser module.\n2. **Persistence**: Stream-based writes populate core local entities: sessions, members, and messages.\n3. **Indexing**: Session- and time-oriented indexes are built for timeline navigation and retrieval.\n4. **Query & Analysis**: `worker\u002Fquery\u002F*` powers activity metrics, interaction analysis, SQL Lab, and AI-assisted exploration.\n5. **Presentation**: The renderer turns query output into charts, rankings, timelines, and conversational analysis flows.\n\n### Extensibility & Reliability\n\n- **Pluggable parser architecture**: Adding a new import source is mostly an extension in `parser\u002Fformats\u002F*`, without reworking downstream query logic.\n- **Full + incremental import paths**: `streamImport.ts` and `incrementalImport.ts` support both first-time onboarding and ongoing updates.\n- **Modular IPC boundaries**: Domain-based IPC segmentation reduces cross-layer coupling and limits permission spread.\n- **Unified i18n evolution**: Main and renderer processes share an i18n system that can evolve with product scope.\n\n---\n\n## Local Development\n\n### Requirements\n\n- Node.js >= 20\n- pnpm\n\n### Setup\n\n```bash\n# install dependencies\npnpm install\n\n# run electron app in dev mode\npnpm dev\n```\n\nIf Electron encounters exceptions during startup, you can try using `electron-fix`:\n\n```bash\nnpm install electron-fix -g\nelectron-fix start\n\n```\n\n## Privacy Policy & User Agreement\n\nBefore using this software, please read the [Privacy Policy & User Agreement](.\u002Fsrc\u002Fassets\u002Fdocs\u002Fagreement_en.md).\n\n## Community\n\nPlease follow these principles before submitting a Pull Request:\n\n- Obvious bug fixes can be submitted directly.\n- For new features, please submit an Issue for discussion first; **PRs submitted without prior discussion will be closed**.\n- Keep one PR focused on one task; if changes are extensive, consider splitting them into multiple independent PRs.\n\nThanks to all contributors:\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FChatLab\u002FChatLab\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=ChatLab\u002FChatLab\" \u002F>\n\u003C\u002Fa>\n\n## License\n\nAGPL-3.0 License\n","ChatLab 是一个本地优先的 AI 聊天记录分析工具，旨在帮助用户理解社交对话。它结合了灵活的 SQL 引擎和 AI 代理，使用户能够在自己的设备上探索聊天数据中的模式、提出更好的问题并提取洞察。项目支持包括 WhatsApp、LINE、微信、QQ、Discord、Instagram 和 Telegram 等多种聊天应用的数据分析，并计划未来支持 iMessage、Messenger 和 KakaoTalk。核心功能包括对大规模历史记录的支持、默认隐私保护、基于上下文的数据操作能力以及丰富的可视化视图。适用于需要深入分析个人或团队聊天记录以获取沟通模式和趋势的场景。",2,"2026-06-11 03:45:59","high_star"]