██████╗██╗ ██╗ █████╗ ████████╗██╗ ██████╗ ██████╗ ██████╗ ██████╗ ████████╗
██╔════╝██║ ██║██╔══██╗╚══██╔══╝██║ ██╔═══██╗██╔════╝ ██╔══██╗██╔═══██╗╚══██╔══╝
██║ ███████║███████║ ██║ ██║ ██║ ██║██║ ███╗█████╗██████╔╝██║ ██║ ██║
██║ ██╔══██║██╔══██║ ██║ ██║ ██║ ██║██║ ██║╚════╝██╔══██╗██║ ██║ ██║
╚██████╗██║ ██║██║ ██║ ██║ ███████╗╚██████╔╝╚██████╔╝ ██████╔╝╚██████╔╝ ██║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝
// 从本地内存中提取密钥 · 解密数据库 · 以 API 形式暴露你的聊天数据
基于 @sjzar 的 chatlog 二次开发 · 专注 macOS + 微信 v4 深度适配
| 模块 | 功能 | 状态 |
|---|---|---|
| 🔑 密钥提取 | 从微信进程内存(vmmap + glance)动态提取加密密钥 |
✅ |
| 🔓 数据库解密 | AES-256-CBC 解密本地 SQLite 数据库文件 | ✅ |
| 🌐 HTTP API | RESTful API,查询聊天记录 / 联系人 / 群聊 / 会话 | ✅ |
| 🤖 MCP 协议 | Streamable HTTP,与 Claude / ChatWise 等 AI 助手无缝集成 | ✅ |
| 🪝 Webhook | 实时监听新消息,推送到任意 HTTP 端点(n8n 等) | ✅ |
| 🔄 自动解密 | fsnotify 监控数据库变更,自动触发解密流程 |
✅ |
| 👥 多账号 | 支持多账号管理,账号间自由切换 | ✅ |
| 🐳 Docker | 容器化部署,适配 NAS / 服务器等无头环境 | ✅ |
| 🖥️ Terminal UI | 基于 tview 的交互式终端界面 |
✅ |
| 🖼️ 图片解密 | 图片密钥获取 + .dat / wxgf 格式解析 |
🚧 |
[1] 安装 chatlog → [2] 临时关闭 SIP → [3] 运行程序 → [4] 解密数据 → [5] 开启服务
# Step 1 · 从源码安装
go install github.com/TE0dollary/chatlog-bot@latest
# Step 2 · 启动 Terminal UI
chatlog
# Step 3 · 无 UI 模式直接启动 HTTP 服务
chatlog server
# 依赖 CGO(go-sqlite3)
CGO_ENABLED=1 go build -trimpath -o bin/chatlog main.go
# 或使用 Makefile(推荐)
make build
⚠️
go-sqlite3必须在CGO_ENABLED=1下编译。macOS 需先安装 Xcode Command Line Tools:bash xcode-select --install
访问 Releases 页面,下载对应系统的预编译二进制文件。
chatlog
| 按键 | 操作 |
|---|---|
↑ ↓ |
选择菜单项 |
Enter |
确认选择 |
Esc |
返回上级菜单 |
Ctrl+C |
退出程序 |
# 提取微信数据密钥
chatlog key
# 解密数据库文件
chatlog decrypt
# 仅启动 HTTP 服务(无 TUI)
chatlog server
适合 NAS 等无 GUI 的设备,需提前在本机提取密钥。
0. 提取密钥
$ chatlog key
Data Key: [c0163e***ac3dc6]
Image Key: [38636***653361]
1. 拉取镜像
# Docker Hub
docker pull TE0dollary/chatlog-bot:latest
# GitHub Container Registry
docker pull ghcr.io/TE0dollary/chatlog-bot:latest
- Docker Hub: https://hub.docker.com/r/TE0dollary/chatlog-bot
- GHCR: https://ghcr.io/TE0dollary/chatlog-bot
2. 运行容器
docker run -d \
--name chatlog \
-p 5030:5030 \
-v /path/to/your/wechat/data:/app/data \
TE0dollary/chatlog-bot:latest
详细指南:Docker 部署文档
我 → 设置 → 通用 → 聊天记录迁移与备份迁移 → 迁移到电脑,按提示操作chatlog 提取密钥并解密此操作不影响手机端聊天记录,仅是数据复制
获取密钥前需临时关闭 SIP(System Integrity Protection):
# Intel Mac: 重启时按住 Command + R 进入恢复模式
# Apple Silicon: 重启时长按电源键进入恢复模式
# 在恢复模式终端中执行
csrutil disable
# 重启系统后即可提取密钥
# 提取完成后可重新启用
csrutil enable
# 安装 Xcode Command Line Tools(首次使用需要)
xcode-select --install
⚠️ Apple Silicon 用户:确保微信、chatlog 和终端均未在 Rosetta 模式下运行
服务默认监听 http://127.0.0.1:5030
GET /api/v1/chatlog?time=2024-01-01&talker=wxid_xxx&limit=50&format=json
| 参数 | 说明 |
|---|---|
time |
时间范围:YYYY-MM-DD 或 YYYY-MM-DD~YYYY-MM-DD |
talker |
聊天对象(支持 wxid、群聊 ID、备注名、昵称等) |
limit |
返回记录数量 |
offset |
分页偏移量 |
format |
输出格式:json / csv / 纯文本 |
GET /api/v1/contact # 联系人列表
GET /api/v1/chatroom # 群聊列表
GET /api/v1/session # 最近会话
GET /image/<id> # 图片(302 跳转,支持 .dat 实时解密)
GET /voice/<id> # 语音(直接返回 MP3,SILK 格式实时转码)
GET /video/<id> # 视频(302 跳转)
GET /file/<id> # 文件(302 跳转)
GET /data/<path> # 基于数据目录的相对路径访问
开启自动解密后,新消息到达时通过 HTTP POST 推送到指定 URL。
⏱️ 延迟参考:本地服务 ~13 秒 · 远程同步 ~45 秒
$HOME/.chatlog/chatlog.json:
{
"webhook": {
"host": "localhost:5030",
"items": [
{
"url": "http://localhost:8080/webhook",
"talker": "wxid_123",
"sender": "",
"keyword": ""
}
]
}
}
# 方案 A · 完整 JSON
CHATLOG_WEBHOOK='{"host":"localhost:5030","items":[{"url":"http://localhost:8080/proxy","talker":"wxid_123"}]}'
# 方案 B · 分离配置
CHATLOG_WEBHOOK_HOST="localhost:5030"
CHATLOG_WEBHOOK_ITEMS='[{"url":"http://localhost:8080/proxy","talker":"wxid_123"}]'
POST /webhook HTTP/1.1
Host: localhost:8080
Content-Type: application/json
{
"talker": "wxid_123",
"length": 1,
"lastTime": "2025-08-27 00:00:00",
"messages": [
{
"seq": 1756225000000,
"time": "2025-08-27T00:00:00+08:00",
"talker": "wxid_123",
"sender": "wxid_123",
"senderName": "Name",
"isSelf": false,
"isChatRoom": false,
"type": 1,
"subType": 0,
"content": "测试消息"
}
]
}
Chatlog 实现了 MCP (Model Context Protocol) 协议,让 AI 助手可以直接查询你的聊天记录。
MCP Endpoint: http://127.0.0.1:5030/mcp
| 客户端 | 接入方式 |
|---|---|
| ChatWise | 工具设置 → 添加 http://127.0.0.1:5030/mcp |
| Cherry Studio | MCP 服务器设置 → 添加 http://127.0.0.1:5030/mcp |
| Claude Desktop | 通过 mcp-proxy 转发 |
| Monica Code | 通过 mcp-proxy + VSCode 插件配置 |
详细配置步骤:MCP 集成指南
查看 Prompt 指南 获取与 AI 助手协作查询聊天记录的示例 prompt。
欢迎通过 Discussions 分享你的使用经验和 prompt!
⚠️ 使用本项目前,请务必阅读完整的 免责声明
本项目完全免费开源,任何以本项目名义收费的行为均与本项目无关。
本项目基于 Apache-2.0 许可证 开源。 本项目不收集任何用户数据,所有数据处理均在用户本地设备上进行。
本项目在以下优秀开源项目的基础上构建:
| 项目 | 贡献 |
|---|---|
| @sjzar · chatlog | 原项目,本项目基于此二次开发 |
| @0xlane · wechat-dump-rs | 密钥提取思路参考 |
| @xaoyaoo · PyWxDump | 数据库解析参考 |
| @git-jiadong · go-lame / go-silk | SILK 音频转码 |
| Anthropic · MCP | Model Context Protocol |
$ claude mcp add chatlog-bot \
-- python -m otcore.mcp_server <graph>