chatlog-session
基于 web 的远程微信,很适合把微信挂在nas上使用,你熟悉的聊天界面——能看、能搜、能导出,还能直接回消息。
Chatlog Session
基于 Chatlog API 的现代化微信聊天记录查看器
读 · 看 · 搜 · 发 — 一个前端,打通微信聊天记录的完整链路。
快速开始 · 功能特性 · 界面预览 · 更新日志 · 文档
这是什么?
Chatlog Session 是一个纯前端的微信聊天记录浏览器。它连接本地运行的 Chatlog API,把加密的微信数据库变成你熟悉的聊天界面——能看、能搜、能导出,还能直接回消息。
flowchart LR
A["微信<br/>本地加密数据库"] -->|"Chatlog API<br/> 解密"| B["结构化<br/>JSON 数据"]
B -->|"HTTP API"| C["Chatlog Session<br/>浏览器渲染"]
C -->|"IndexedDB"| D["本地缓存<br/>离线可用"]
Loading
数据从不离开你的设备。前端只在你浏览器里跑,后端只读你的本地数据库。没有云上传,没有第三方。
✨ 功能特性
消息浏览
- 🎨 微信原生体验 — 深度复刻聊天界面,零学习成本
- ⚡ 十万级消息流畅 — 虚拟滚动 + LRU 缓存 + 智能分页
- 📂 全消息类型 — 文本、图片、视频、语音、表情、文件、位置、名片、引用、转发、接龙、转账、红包、收藏、直播、小程序……
- 🖼️ 内置预览器 — 图片缩放/轮播、视频队列播放、Live Photo 支持
- 📱 PWA 离线安装 — 装到桌面就是 App,离线也能翻已缓存的消息
搜索与导出
- 🔍 全文搜索 — 搜索联系人、群聊、消息内容,支持拼音
- 📊 数据仪表盘 — 聊天频次、消息类型分布、活跃时段统计
- 📤 多格式导出 — JSON / CSV / TXT / Markdown / 剪贴板
消息发送
- 💬 聊天框直接发送 — 看消息和发消息在同一个界面
- 📎 图片 / 文件 — 支持粘贴、拖拽、选择文件
- 😀 表情选择器 — 内置常用表情
- ⌨️ 自定义快捷键 — Enter 或 Ctrl+Enter 发送
📡 消息发送的工作原理
flowchart LR
Browser["Chatlog Session<br/>浏览器输入"] -- "HTTP POST" --> SendMsg["wechat-sendmsg<br/>Python 服务 :8765"]
SendMsg -- "GUI 自动化" --> WeChat["微信桌面客户端"]
SendMsg --> Queue["SQLite 队列<br/>持久化 + 自动重试"]
Loading
发送功能依赖 wechat-sendmsg(需额外安装),通过 GUI 自动化操作微信客户端完成发送。消息经 SQLite 队列持久化,失败自动重试。
⚠️ 发送功能默认关闭。配置路径:设置 → 发送设置。需微信桌面客户端保持登录状态。
📸 界面预览
![]() |
![]() |
| 会话列表 | 联系人列表 |
![]() |
![]() |
| 发送消息 | 发送消息中 |
数据仪表盘
全局搜索
🚀 快速开始
前置依赖
Chatlog Session 是纯前端,但工作需要后端:
| 组件 | 说明 | 必要性 |
|---|---|---|
| Chatlog API | 聊天记录读取 & 解密服务 (Golang) | 必须 |
| wechat-sendmsg | 消息发送服务 (Python) | 发送时必需 |
| 微信桌面客户端 | wechat-sendmsg 需要微信保持登录 | 发送时必需 |
方式一:使用 GitHub Pages 部署
👉 https://xlight.github.io/chatlog-session/
- 打开上方链接
- 进入 设置 → API 设定,填入 Chatlog API 地址(如
http://localhost:5030) - 点击 测试连接 确认连通
⚠️ 在线页面是 HTTPS,连接本地 HTTP API 可能被浏览器拦截。用 Chrome 并允许不安全内容,或把 API 部署为 HTTPS。
方式二:本地运行
git clone https://github.com/xlight/chatlog-session.git cd chatlog-session corepack enable # 启用 pnpm pnpm install # 安装依赖 pnpm dev # 启动 → http://localhost:5173
🛠️ 技术栈
| 层 | 技术 |
|---|---|
| 框架 | Vue 3 · TypeScript 6 · Vite 8 |
| 状态 | Pinia 3 · Pinia PersistedState |
| UI | Element Plus · vue-virtual-scroller |
| 工具库 | dayjs · marked · pinyin-pro · DOMPurify · VueUse |
| 存储 | IndexedDB (idb) · SessionStorage LRU 缓存 |
| 后端依赖 | Chatlog API · wechat-sendmsg |
| 测试 | Vitest 4 · @vue/test-utils · jsdom · 覆盖率 V8 |
🗺️ 路线图
上一时间线的大致规划,具体工作随需求调整。
近期
- v0.28.0 — 视频预览、导出剪贴板、表情选择器、发送快捷键
- 下一版本 — 导出体验升级、失败重试、断点续导
远期
- v1.0.0 — 正式版发布
历史版本详见 docs/changelog/。完整规划见 ROADMAP.md。
❓ 常见问题
为什么我的图片/视频显示不出来?
- 确认 Chatlog API 服务正常运行,且正确返回
img_key - 视频/图片可能需要先在 PC 微信客户端中点击查看,触发下载到本地
- HTTPS 页面连 HTTP API 会被浏览器拦截(Mixed Content),用 Chrome 并允许不安全内容
数据存在哪里?安全吗?
所有聊天数据只在你的浏览器 IndexedDB 中缓存。后端 Chatlog API 只读你的本地数据库。没有任何数据上传到云端。
支持哪些版本的微信?
Chatlog Session 本身不限制版本。具体微信版本兼容性由后端 Chatlog 决定,请查看其文档。
更多问题见 docs/faq.md。
📄 许可证
🙏 致谢
- Chatlog — 聊天记录读取 & 解密引擎
- Vue.js · Vite · Element Plus
📞 交流
- 🐛 GitHub Issues — Bug 反馈 & 功能建议
- 📖 项目文档 — 完整文档索引(321 篇)
- 🐧 QQ 交流群:1013023266
Built with ❤️ by Chatlog Session Team
more like this
Sandwich-Batch-Normalization
[WACV 2022] "Sandwich Batch Normalization: A Drop-In Replacement for Feature Distribution Heterogeneity" by Xinyu Gong,…



