ChatLab は、チャット履歴を深く理解するためのローカル完結型アプリです。AI Agent と柔軟な SQL エンジンを組み合わせることで、会話データを自由に調べ、分解し、新しい視点で読み解けます。
現在対応:WhatsApp、LINE、QQ、Discord、Instagram、Telegram。今後対応予定:iMessage、Messenger、KakaoTalk。
- 🚀 大規模データでも快適:ストリーミング処理とマルチワーカー構成により、数百万件規模の履歴でも安定して取り込みと分析を行えます。
- 🔒 プライバシーを優先:チャット履歴と設定はローカルに保持され、分析も基本的に端末上で完結します(AI 機能を除く)。
- 🤖 実データを扱える AI Agent:10 以上の Function Calling ツールを備え、文脈に応じて動的に呼び分けながら履歴を掘り下げます。
- 📊 多面的な可視化:アクティブ度の推移、時間帯の傾向、メンバーランキングなどを分かりやすく確認できます。
- 🧩 形式差分を吸収する標準化:異なるチャットアプリのエクスポート形式を統一モデルに変換し、同じ視点で比較・分析できます。
その他の画面は公式サイト chatlab.fun を参照してください。
- Local-first by default:生のチャット履歴、インデックス、設定は原則として端末内に保持し、プライバシー境界を優先します。
- Streaming over buffering:ストリーミング解析と増分処理を中心に据え、大きなエクスポートでも安定した処理性能を保ちます。
- Composable intelligence:AI 機能は Agent + Tool Calling の組み合わせで構成し、単一モデルの固定ロジックに閉じません。
- Schema-first evolution:統一データモデルを軸に取り込み、検索、分析、可視化を設計し、将来の拡張を進めやすくします。
- Main Process(制御層):
electron/main/index.tsがライフサイクルとウィンドウを管理し、electron/main/ipc/がドメイン別 IPC を提供します。electron/main/ai/とelectron/main/i18n/は AI と多言語化の基盤です。 - Worker Layer(計算層):
electron/main/worker/がworkerManagerを通じて取り込み、索引作成、検索処理を分離し、UI スレッドの負荷を抑えます。 - Renderer Layer(表示・操作層):Vue 3 + Nuxt UI + Tailwind CSS を基盤に、管理画面、個別チャット、グループチャット、分析画面を構成します。
electron/preload/index.tsから限定的な API を公開し、安全な境界を保ちます。
- 取り込み:
parser/が形式を判定し、対応するパーサーに処理を振り分けます。 - 保存:ストリーミング書き込みで、セッション、メンバー、メッセージなどの主要データをローカルに保存します。
- 索引作成:セッション軸と時間軸の索引を生成し、タイムライン表示や検索を支えます。
- 検索と分析:
worker/query/*がアクティブ度分析、関係性分析、SQL Lab、AI 補助分析を支えます。 - 表示:レンダラー側で結果をグラフ、ランキング、タイムライン、対話型分析に変換します。
- Node.js >= 20
- pnpm
# 依存関係をインストール
pnpm install
# 開発モードで起動
pnpm devElectron の起動時に例外が発生する場合は、electron-fix を試してください。
npm install electron-fix -g
electron-fix start利用前に プライバシーポリシーと利用規約 を確認してください。
Pull Request を送る前に、次の方針を確認してください。
- 明らかなバグ修正はそのまま提出して構いません
- 新機能は先に Issue で相談してください。事前の議論がない PR はクローズされます
- 1 つの PR は 1 つの目的に絞り、変更が大きい場合は分割を検討してください
ChatLab に貢献してくださったすべての方に感謝します!
AGPL-3.0 License
