Skip to content
SIWX · v5.0.7 · AGPL-3.0

把微信 4.x 的聊天记录,
变成你真正能管理的个人数据。

一个开源的本地解密与导出工具。解密 · 浏览 · 统计 · 备份 · 交给 AI, 全程在你的电脑上完成,不上传任何数据。

Windows 完整支持macOS 4.1.80+8 种导出格式11 个 MCP 工具零外部依赖
功能展示 · UI 操作

一页看完整控制台:左侧菜单逐项点击,右侧工作区即时切换。

这就是实际产品的使用路径:先引导解密,再查看聊天、朋友圈、统计与导出,也可以接入 MCP、查看日志、调整设置。

←文件传输助手选择统计导出
2026-09-12 18:01
我以下是 SIWX 的测试消息。
我这是一段普通文本。
友语音 2.4 秒下载 SILK
我
— 已解密 · 本地渲染 · 滚动加载更多 —
☝ 可交互演示 —— 点击左侧菜单、会话、开关试试
一句话价值

不是为了炫技,也不是为了猎奇。

SIWX 解决的是一个很朴素的问题:自己的聊天记录,应该可以备份、迁移、检索和导出。

聊天记录,应该有一扇门。
互联网也许没有记忆,但我们可以为自己的记忆留一条路。
个人备份本地查看自主导出AI 检索
项目能力

从发现账号到 AI 查询,SIWX 覆盖完整链路。

3步

欢迎检测、选择账号、一键提取并解密。

8种

JSON、HTML、TXT、CSV、Markdown、TOML、SQLite、XLSX。

11个

MCP 工具:状态、账号、会话、消息、搜索、导出、朋友圈全套。

1次

全局收割:多个账号共享一次内存扫描与联合验证。

功能展示 · 聊天查看

把数据库重新还原成可以阅读的对话现场。

会话分组、头像、滚动分页、语音 WAV、图片预览,都在一页完成。

文件传输助手导出
2026-09-12 18:01
我以下是 SIWX 的测试消息。
我这是一段普通文本。
友语音 2.4 秒
我
功能展示 · 多格式导出

导出不是「另存为」:分片索引 + 流式写入,多年记录也不爆内存。

导出配置

已选 2 个会话
消息记录媒体图片语音转 WAV联系人头像
JSONHTMLTXTCSVMDTOMLSQLiteXLSX

运行日志

[export] 会话数=2 格式=html
[export] 消息=True 图片=True 语音=True 头像=True
[export] 62% 已写入 12000 条...
[export] 全部完成:2/2 个会话
功能展示 · MCP

把聊天记录从「文件」,变成 AI 可以调用的本地工具。

AI 不再靠你手动截图、复制粘贴,而是调用本地 MCP:先搜消息,再读上下文,最后按需要导出会话。 朋友圈也可以交给 AI:时间线、详情、聚合与导出,五个工具全配齐。

MCP 服务器

stdio 传输 · 零依赖 · 仅本地

{
  "mcpServers": {
    "stories-in-wx": {
      "command": "python",
      "args": ["run.py", "mcp"]
    }
  }
}

11 个工具

get_status状态总览
list_accounts账号列表
list_sessions会话列表
get_messages读取消息
search_messages关键词搜索
export_chat发起导出
list_sns_accounts朋友圈账号
get_sns_timeline朋友圈时间线
get_sns_detail动态详情
get_sns_friends按发布者聚合
export_sns导出朋友圈

"帮我找上周关于导出失败的聊天记录。" —— MCP 页面可按需禁用单个工具。

原理 · 总架构

用户看到的是 Web 控制台,下面是一条清楚的流水线。

用户入口

CLI / Web 控制台

discover

目录发现 + 进程发现

strategies

keystore / MMKV / Config.Cipher / memscan / LLDB

verify_enc_key

page1 HMAC 统一验真

decrypt pool

多进程页级解密

media / voice

图片与语音按需处理

UI / Export / MCP

浏览、导出、AI 查询

def verify_enc_key(enc_key, page1):
    salt = page1[:16]
    mac_salt = salt ^ 0x3A
    mac_key = PBKDF2_SHA512(enc_key, mac_salt, 2)
    hmac_data = page1[16 : 4032]
    stored = page1[-64:]
    hm = HMAC_SHA512(mac_key, hmac_data + pack("<I", 1))
    return compare_digest(hm, stored)
原理 · 验证咽喉

策略只负责提出候选,编排器负责统一验证。

这就是 SIWX 的核心设计:propose / verify 分离。新增策略不用重复实现验证逻辑, 所有候选都走同一个 HMAC 裁判——只要 page1 验证不过,任何密钥都不能进入系统。

01
手写 CBC

ECB cipher 复用 + 大整数 XOR 恢复 CBC 链,减少每页重建 AES 的开销。

02
多进程池

decrypt_parallel 按数据库分发任务,CPU 密集解密交给多进程。

03
原子替换

先写 .part,成功后 os.replace,失败不会截断已有明文库。

04
两层缓存

密钥按 salt 索引缓存,解密产物按 mtime+size+key 命中,源库未变秒回。

原理 · 边界

越是强调用户数据所有权,越要把使用边界讲清楚。

SIWX 面向个人备份、迁移与研究。它不鼓励、也不服务任何未经授权访问他人数据的行为。

本地 Web仅监听 127.0.0.1
进程访问只读,无写入 / 注入
日志脱敏输出与导出
密钥DPAPI 加密,不落明文
媒体按需解密,不全量落明文
SIWX

现在,把它跑起来。

下载 Release,或者运行 python run.py serve。 完成引导后,浏览、搜索、导出,也可以让 AI 整理你的历史上下文。

仅限处理本人拥有合法权限的数据 · 禁止商用 · 使用前请阅读免责声明

stories-in-wx
local first · memory belongs to you
密钥提取 propose / verify
数据库解密 SQLCipher 4
聊天查看 分页 / 图片 / 语音
多格式导出 JSON / HTML / SQLite / XLSX
AI 接管 MCP stdio · 11 tools
把时间从黑盒里,重新捞回来。

"于是我们奋力向前、逆水行舟,直至回到往昔岁月。"

AGPL-3.0 · 本项目不可商用