Install Chatlog using Winget - wingetCollections
Go back Packages Chatlog Use this command to install Chatlog:
winget install --id=sjzar.Chatlog -e Copy WinGet command to clipboard
A chat history tool helping users easily utilize their chat data
Features:
- Retrieve chat data from local database files
- Supports Windows / macOS systems
- Compatible with WeChat versions 3.x / 4.0
- Offers Terminal UI interface & command-line tool
- Provides HTTP API service, enabling queries for chat history, contacts, group chats, recent conversations, and more
- Supports MCP SSE protocol for seamless integration with MCP-compatible AI assistants
- Handles multimedia messages, including decryption of images and voice files
- Features automatic data decryption to simplify usage
- Supports multi-account management, allowing switching between different accounts
README
Feature
从本地数据库文件中获取聊天数据
支持 Windows / macOS 系统,兼容微信 3.x / 4.x 版本
支持获取数据与图片密钥 (Windows < 4.0.3.36 / macOS < 4.0.3.80)
支持图片、语音等多媒体数据解密,支持 wxgf 格式解析
支持自动解密数据库,并提供新消息 Webhook 回调
提供 Terminal UI 界面,同时支持命令行工具和 Docker 镜像部署
提供 HTTP API 服务,可轻松查询聊天记录、联系人、群聊、最近会话等信息
支持 MCP Streamable HTTP 协议,可与 AI 助手无缝集成
支持多账号管理,可在不同账号间切换
Quick Start
基本步骤
安装 Chatlog :下载预编译版本 或 使用 Go 安装
运行程序 :执行 chatlog
启动 Terminal UI 界面
解密数据 :选择 解密数据
菜单项
开启 HTTP 服务 :选择 开启 HTTP 服务
菜单项
访问数据 :通过 HTTP API 或 MCP 集成 访问聊天记录
> 💡 提示 : 如果电脑端微信聊天记录不全,可以从手机端迁移数据
常见问题快速解决
0.0.29
Copy WinGet command to clipboard 0.0.28
Copy WinGet command to clipboard 0.0.27
Copy WinGet command to clipboard 0.0.26
Copy WinGet command to clipboard 0.0.25
Copy WinGet command to clipboard 0.0.24
Copy WinGet command to clipboard 0.0.23
Copy WinGet command to clipboard 0.0.22
Copy WinGet command to clipboard 0.0.21
Copy WinGet command to clipboard 0.0.19
Copy WinGet command to clipboard
安装指南
从源码安装 go install github.com/sjzar/chatlog@latest
> 💡 提示 : 部分功能有 cgo 依赖,编译前需确认本地有 C 编译环境。
下载预编译版本
使用指南
Terminal UI 模式 最简单的使用方式是通过 Terminal UI 界面操作:
使用 ↑
↓
键选择菜单项
按 Enter
确认选择
按 Esc
返回上级菜单
按 Ctrl+C
退出程序
命令行模式 # 获取微信数据密钥
chatlog key
# 解密数据库文件
chatlog decrypt
# 启动 HTTP 服务
chatlog server
Docker 部署 由于 Docker 部署时,程序运行环境与宿主机隔离,所以不支持获取密钥等操作,需要提前获取密钥数据。
# 从本机运行 chatlog 获取密钥信息
$ chatlog key
Data Key: [c0163e***ac3dc6]
Image Key: [38636***653361]
docker pull sjzar/chatlog:latest
GitHub Container Registry (ghcr) :
docker pull ghcr.io/sjzar/chatlog:latest
$ docker run -d \
--name chatlog \
-p 5030:5030 \
-v /path/to/your/wechat/data:/app/data \
sjzar/chatlog:latest
从手机迁移聊天记录 如果电脑端微信聊天记录不全,可以从手机端迁移数据:
打开手机微信,进入 我 - 设置 - 通用 - 聊天记录迁移与备份
选择 迁移 - 迁移到电脑
,按照提示操作
完成迁移后,重新运行 chatlog
获取密钥并解密数据
> 此操作不会影响手机上的聊天记录,只是将数据复制到电脑端
平台特定说明
Windows 版本说明
macOS 版本说明 macOS 用户在获取密钥前需要临时关闭 SIP(系统完整性保护):
关闭 SIP :
# 进入恢复模式
# Intel Mac: 重启时按住 Command + R
# Apple Silicon: 重启时长按电源键
# 在恢复模式中打开终端并执行
csrutil disable
# 重启系统
安装必要工具 :
# 安装 Xcode Command Line Tools
xcode-select --install
获取密钥后 :可以重新启用 SIP(csrutil enable
),不影响后续使用
> Apple Silicon 用户注意:确保微信、chatlog 和终端都不在 Rosetta 模式下运行
HTTP API 启动 HTTP 服务后(默认地址 http://127.0.0.1:5030
),可通过以下 API 访问数据:
聊天记录查询 GET /api/v1/chatlog?time=2023-01-01&talker=wxid_xxx
time
: 时间范围,格式为 YYYY-MM-DD
或 YYYY-MM-DD~YYYY-MM-DD
talker
: 聊天对象标识(支持 wxid、群聊 ID、备注名、昵称等)
limit
: 返回记录数量
offset
: 分页偏移量
format
: 输出格式,支持 json
、csv
或纯文本
其他 API 接口
联系人列表 :GET /api/v1/contact
群聊列表 :GET /api/v1/chatroom
会话列表 :GET /api/v1/session
多媒体内容 聊天记录中的多媒体内容会通过 HTTP 服务进行提供,可通过以下路径访问:
图片内容 :GET /image/
视频内容 :GET /video/
文件内容 :GET /file/
语音内容 :GET /voice/
多媒体内容 :GET /data/
当请求图片、视频、文件内容时,将返回 302 跳转到多媒体内容 URL。
当请求语音内容时,将直接返回语音内容,并对原始 SILK 语音做了实时转码 MP3 处理。
多媒体内容 URL 地址为基于数据目录
的相对地址,请求多媒体内容将直接返回对应文件,并针对加密图片做了实时解密处理。
Webhook 需开启自动解密功能,当收到特定新消息时,可以通过 HTTP POST 请求将消息推送到指定的 URL。
> 延迟测试: 本地服务消息回调延迟约 13 秒; 远程同步消息回调延迟约 45 秒。
0. 回调配置 使用 TUI 模式的话,在 $HOME/.chatlog/chatlog.json
配置文件中,新增 webhook
配置。
(Windows 用户的配置文件在 %USERPROFILE%/.chatlog/chatlog.json
)
{
"history": [],
"last_account": "wxuser_x",
"webhook": {
"host": "localhost:5030", # 消息中的图片、文件等 URL host
"items": [
{
"url": "http://localhost:8080/webhook", # 必填,webhook 请求的URL,可配置为 n8n 等 webhook 入口
"talker": "wxid_123", # 必填,需要监控的私聊、群聊名称
"sender": "", # 选填,消息发送者
"keyword": "" # 选填,关键词
}
]
}
}
使用 server 模式的话,可以通过 CHATLOG_WEBHOOK
环境变量进行设置。
# 方案 1
CHATLOG_WEBHOOK='{"host":"localhost:5030","items":[{"url":"http://localhost:8080/proxy","talker":"wxid_123","sender":"","keyword":""}]}'
# 方案 2(任选一种)
CHATLOG_WEBHOOK_HOST="localhost:5030"
CHATLOG_WEBHOOK_ITEMS='[{"url":"http://localhost:8080/proxy","talker":"wxid_123","sender":"","keyword":""}]'
1. 测试效果 启动 chatlog 并开启自动解密功能,测试回调效果
POST /webhook HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip
Content-Length: 386
Content-Type: application/json
User-Agent: Go-http-client/1.1
Body:
{
"keyword": "",
"lastTime": "2025-08-27 00:00:00",
"length": 1,
"messages": [
{
"seq": 1756225000000,
"time": "2025-08-27T00:00:00+08:00",
"talker": "wxid_123",
"talkerName": "",
"isChatRoom": false,
"sender": "wxid_123",
"senderName": "Name",
"isSelf": false,
"type": 1,
"subType": 0,
"content": "测试消息",
"contents": {
"host": "localhost:5030"
}
}
],
"sender": "",
"talker": "wxid_123"
}
MCP 集成 Chatlog 支持 MCP (Model Context Protocol) 协议,可与支持 MCP 的 AI 助手无缝集成。
启动 HTTP 服务后,通过 Streamable HTTP Endpoint 访问服务:
快速集成 Chatlog 可以与多种支持 MCP 的 AI 助手集成,包括:
ChatWise : 直接支持 Streamable HTTP,在工具设置中添加 http://127.0.0.1:5030/mcp
Cherry Studio : 直接支持 Streamable HTTP,在 MCP 服务器设置中添加 http://127.0.0.1:5030/mcp
对于不直接支持 Streamable HTTP 的客户端,可以使用 mcp-proxy 工具转发请求:
Claude Desktop : 通过 mcp-proxy 支持,需要配置 claude_desktop_config.json
Monica Code : 通过 mcp-proxy 支持,需要配置 VSCode 插件设置
详细集成指南
Prompt 示例 为了帮助大家更好地利用 Chatlog 与 AI 助手,我们整理了一些 prompt 示例。希望这些 prompt 可以启发大家更有效地查询和分析聊天记录,获取更精准的信息。
同时欢迎大家分享使用经验和 prompt!如果您有好的 prompt 示例或使用技巧,请通过 Discussions 进行分享,共同进步。
免责声明 ⚠️ 重要提示:使用本项目前,请务必阅读并理解完整的 免责声明 。
本项目仅供学习、研究和个人合法使用,禁止用于任何非法目的或未授权访问他人数据。下载、安装或使用本工具即表示您同意遵守免责声明中的所有条款,并自行承担使用过程中的全部风险和法律责任。
摘要(请阅读完整免责声明)
仅限处理您自己合法拥有的聊天数据或已获授权的数据
严禁用于未经授权获取、查看或分析他人聊天记录
开发者不对使用本工具可能导致的任何损失承担责任
使用第三方 LLM 服务时,您应遵守这些服务的使用条款和隐私政策
本项目完全免费开源,任何以本项目名义收费的行为均与本项目无关。
License
隐私政策 本项目不收集任何用户数据。所有数据处理均在用户本地设备上进行。使用第三方服务时,请参阅相应服务的隐私政策。
Thanks