{"id":47300616,"url":"https://github.com/hellodigua/ChatLab","last_synced_at":"2026-03-31T06:00:51.433Z","repository":{"id":331560357,"uuid":"1104370536","full_name":"hellodigua/ChatLab","owner":"hellodigua","description":"Rediscover your social memories with local, AI-powered analysis. 本地化的聊天记录分析工具，通过 AI Agent 回顾你的社交记忆。","archived":false,"fork":false,"pushed_at":"2026-03-26T16:04:36.000Z","size":5055,"stargazers_count":5202,"open_issues_count":10,"forks_count":1239,"subscribers_count":18,"default_branch":"main","last_synced_at":"2026-03-26T17:21:11.201Z","etag":null,"topics":["ai","chat-analysis","chat-history","data-analysis","data-visualization","electron","nlp","typescript"],"latest_commit_sha":null,"homepage":"https://chatlab.fun","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hellodigua.png","metadata":{"files":{"readme":"README.ja-JP.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-26T05:54:26.000Z","updated_at":"2026-03-26T16:17:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/hellodigua/ChatLab","commit_stats":null,"previous_names":["hellodigua/chatlab"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/hellodigua/ChatLab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellodigua%2FChatLab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellodigua%2FChatLab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellodigua%2FChatLab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellodigua%2FChatLab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellodigua","download_url":"https://codeload.github.com/hellodigua/ChatLab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellodigua%2FChatLab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31223292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-31T04:08:55.938Z","status":"ssl_error","status_checked_at":"2026-03-31T04:08:47.883Z","response_time":111,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chat-analysis","chat-history","data-analysis","data-visualization","electron","nlp","typescript"],"created_at":"2026-03-17T01:38:19.999Z","updated_at":"2026-03-31T06:00:51.428Z","avatar_url":"https://github.com/hellodigua.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"./public/images/chatlab.svg\" alt=\"ChatLab\" title=\"ChatLab\" width=\"300\" /\u003e\n\nAI Agent でチャット履歴をローカル分析し、あなたのソーシャルな記憶を掘り起こす\n\n[English](./README.md) | [简体中文](./README.zh-CN.md) | [繁體中文](./README.zh-TW.md) | 日本語\n\n[公式サイト](https://chatlab.fun/ja/) · [ダウンロードガイド](https://chatlab.fun/ja/?type=download) · [ドキュメント](https://chatlab.fun/ja/usage/) · [Roadmap](https://chatlabfun.featurebase.app/roadmap) · [Issue](https://github.com/hellodigua/ChatLab/issues)\n\n\u003c/div\u003e\n\nChatLab は、チャット履歴を深く理解するためのローカル完結型アプリです。AI Agent と柔軟な SQL エンジンを組み合わせることで、会話データを自由に調べ、分解し、新しい視点で読み解けます。\n\n現在対応：WhatsApp、LINE、QQ、Discord、Instagram、Telegram。今後対応予定：iMessage、Messenger、KakaoTalk。\n\n## 主な機能\n\n- 🚀 **大規模データでも快適**：ストリーミング処理とマルチワーカー構成により、数百万件規模の履歴でも安定して取り込みと分析を行えます。\n- 🔒 **プライバシーを優先**：チャット履歴と設定はローカルに保持され、分析も基本的に端末上で完結します（AI 機能を除く）。\n- 🤖 **実データを扱える AI Agent**：10 以上の Function Calling ツールを備え、文脈に応じて動的に呼び分けながら履歴を掘り下げます。\n- 📊 **多面的な可視化**：アクティブ度の推移、時間帯の傾向、メンバーランキングなどを分かりやすく確認できます。\n- 🧩 **形式差分を吸収する標準化**：異なるチャットアプリのエクスポート形式を統一モデルに変換し、同じ視点で比較・分析できます。\n\n## ガイド\n\n- [ChatLab ダウンロードガイド](https://chatlab.fun/ja/?type=download)\n- [チャット履歴の書き出しガイド](https://chatlab.fun/ja/usage/how-to-export.html)\n- [標準フォーマット仕様](https://chatlab.fun/ja/standard/chatlab-format.html)\n- [トラブルシューティング](https://chatlab.fun/ja/usage/troubleshooting.html)\n\n## プレビュー\n\nその他の画面は公式サイト [chatlab.fun](https://chatlab.fun/ja/) を参照してください。\n\n![Preview Interface](/public/images/intro_en.png)\n\n## システムアーキテクチャ\n\n### 設計原則（Architecture Principles）\n\n- **Local-first by default**：生のチャット履歴、インデックス、設定は原則として端末内に保持し、プライバシー境界を優先します。\n- **Streaming over buffering**：ストリーミング解析と増分処理を中心に据え、大きなエクスポートでも安定した処理性能を保ちます。\n- **Composable intelligence**：AI 機能は Agent + Tool Calling の組み合わせで構成し、単一モデルの固定ロジックに閉じません。\n- **Schema-first evolution**：統一データモデルを軸に取り込み、検索、分析、可視化を設計し、将来の拡張を進めやすくします。\n\n### 実行時アーキテクチャ（Runtime Architecture）\n\n- **Main Process（制御層）**：`electron/main/index.ts` がライフサイクルとウィンドウを管理し、`electron/main/ipc/` がドメイン別 IPC を提供します。`electron/main/ai/` と `electron/main/i18n/` は AI と多言語化の基盤です。\n- **Worker Layer（計算層）**：`electron/main/worker/` が `workerManager` を通じて取り込み、索引作成、検索処理を分離し、UI スレッドの負荷を抑えます。\n- **Renderer Layer（表示・操作層）**：Vue 3 + Nuxt UI + Tailwind CSS を基盤に、管理画面、個別チャット、グループチャット、分析画面を構成します。`electron/preload/index.ts` から限定的な API を公開し、安全な境界を保ちます。\n\n### データパイプライン（Data Pipeline）\n\n1. **取り込み**：`parser/` が形式を判定し、対応するパーサーに処理を振り分けます。\n2. **保存**：ストリーミング書き込みで、セッション、メンバー、メッセージなどの主要データをローカルに保存します。\n3. **索引作成**：セッション軸と時間軸の索引を生成し、タイムライン表示や検索を支えます。\n4. **検索と分析**：`worker/query/*` がアクティブ度分析、関係性分析、SQL Lab、AI 補助分析を支えます。\n5. **表示**：レンダラー側で結果をグラフ、ランキング、タイムライン、対話型分析に変換します。\n\n## ローカル開発\n\n### 必要環境\n\n- Node.js \u003e= 20\n- pnpm\n\n### セットアップ\n\n```bash\n# 依存関係をインストール\npnpm install\n\n# 開発モードで起動\npnpm dev\n```\n\nElectron の起動時に例外が発生する場合は、`electron-fix` を試してください。\n\n```bash\nnpm install electron-fix -g\nelectron-fix start\n```\n\n## コントリビューション\n\nPull Request を送る前に、次の方針を確認してください。\n\n- 明らかなバグ修正はそのまま提出して構いません\n- 新機能は先に Issue で相談してください。**事前の議論がない PR はクローズされます**\n- 1 つの PR は 1 つの目的に絞り、変更が大きい場合は分割を検討してください\n\n## プライバシーポリシーと利用規約\n\n利用前に [プライバシーポリシーと利用規約](./src/assets/docs/agreement_ja.md) を確認してください。\n\n## License\n\nAGPL-3.0 License\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellodigua%2FChatLab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellodigua%2FChatLab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellodigua%2FChatLab/lists"}