Skip to content

choosemoon/WeChatExporterGUI

Repository files navigation

💬 WeChatExporterGUI

macOS Python License Platform

点点鼠标,轻松导出微信聊天记录

功能特性快速开始安装指南使用教程技术架构常见问题


🎯 项目简介

WeChatExporterGUI 是一个专为 macOS 用户设计的微信聊天记录导出工具图形界面。它让完全不懂编程的"小白"用户也能通过简单的点击操作,将微信聊天记录导出为结构化的 JSONL 格式。

本项目是 wechat-insight 的图形界面封装,解决了原工具需要命令行操作的门槛问题。

为什么选择 WeChatExporterGUI?

特性 命令行工具 WeChatExporterGUI
操作难度 需要记忆命令 ✅ 点点鼠标即可
环境配置 手动处理依赖 ✅ 一键自动修复
错误排查 看终端输出 ✅ 图形化诊断报告
多选导出 手动输入名称 ✅ 列表勾选
实时预览 ✅ 导出前预览

✨ 功能特性

  • 🖱️ 图形界面操作 - 无需命令行,点点鼠标就能用
  • 🔍 智能搜索筛选 - 支持群聊/联系人搜索,快速定位
  • 📅 时间范围选择 - 支持 7天/30天/90天/全部 时间筛选
  • 🎯 精准导出 - 可选择特定群聊或联系人导出
  • 🔧 一键修复 - 自动检测并安装缺失依赖
  • 📊 详细诊断 - 启动时显示完整环境检查报告
  • 💾 自定义目录 - 自由选择导出文件保存位置
  • 🚀 异步加载 - 数据加载不卡顿,体验流畅

🚀 快速开始

系统要求

  • 操作系统: macOS 10.15 (Catalina) 或更高版本
  • 芯片架构: Apple Silicon (M1/M2/M3) 或 Intel
  • Python: 3.9 或更高版本
  • 前置依赖: wechat-insight 已安装并配置

一键安装

# 克隆仓库
git clone https://github.com/choosemoon/WeChatExporterGUI.git
cd WeChatExporterGUI

# 启动图形界面
bash start_gui.sh

首次使用流程

1. 确保 wechat-insight 已安装并运行过 setup
2. 运行 bash start_gui.sh 启动 GUI
3. 查看诊断报告,如有缺失依赖点击「一键修复」
4. 等待群聊/联系人列表加载
5. 选择要导出的内容,点击「开始导出」

📦 安装指南

前置条件

在使用 WeChatExporterGUI 之前,您需要先安装并配置 wechat-insight

# 安装 wechat-insight
git clone https://github.com/caigee-cmd/wechat-insight.git ~/Desktop/wechat-insight
cd ~/Desktop/wechat-insight

# 创建虚拟环境并安装依赖
python3 -m venv .venv
source .venv/bin/activate
pip install pycryptodome zstandard

# 提取微信数据库密钥(只需执行一次)
./wechat-insight setup

安装 WeChatExporterGUI

方法一:直接下载(推荐)

  1. 下载最新版本的 WeChatExporterGUI.zip
  2. 解压到任意目录
  3. 运行 bash start_gui.sh

方法二:从源码安装

# 克隆仓库
git clone https://github.com/choosemoon/WeChatExporterGUI.git
cd WeChatExporterGUI

# 启动
bash start_gui.sh

📖 使用教程

界面概览

┌─────────────────────────────────────────────────────────────────┐
│  💬 微信聊天记录导出工具 v3.0                                    │
├──────────────────────────┬──────────────────────────────────────┤
│                          │                                      │
│  📱 群聊列表              │   📅 时间范围:                       │
│  ┌────────────────────┐  │   ○ 最近7天  ○ 最近30天              │
│  │ 🔍 搜索群聊...     │  │   ○ 最近90天  ● 全部                 │
│  └────────────────────┘  │                                      │
│  ☑️ 爱创社1群 (1,234条)  │   📄 导出格式: JSONL                 │
│  ☑️ 技术交流群 (567条)   │                                      │
│  ☐ 家庭群 (89条)         │   📁 导出到:                         │
│                          │   ┌────────────────────────────┐    │
│  👤 联系人列表            │   │ ~/Desktop/微信导出   [选择] │    │
│  ┌────────────────────┐  │   └────────────────────────────┘    │
│  │ 🔍 搜索联系人...   │  │                                      │
│  └────────────────────┘  │   ┌──────────┐  ┌──────────┐        │
│  👤 张三 (45条)          │   │ 一键修复  │  │ 开始导出  │        │
│  👤 李四 (12条)          │   └──────────┘  └──────────┘        │
│                          │                                      │
│  共 15 个群聊            │   📋 诊断信息 / 导出预览              │
│  共 128 个联系人         │   ┌────────────────────────────┐    │
│                          │   │ ✅ 环境检查通过              │    │
│                          │   │ ✅ pycryptodome 已安装       │    │
│                          │   │ ✅ zstandard 已安装          │    │
│                          │   │ ✅ 密钥文件存在 (92个密钥)   │    │
│                          │   │                            │    │
│                          │   │ 已选择 2 个群聊              │    │
│                          │   │ 点击「开始导出」进行导出     │    │
│                          │   └────────────────────────────┘    │
└──────────────────────────┴──────────────────────────────────────┘

详细步骤

1. 启动程序

cd ~/WeChatExporterGUI
bash start_gui.sh

启动脚本会自动:

  • 查找系统中可用的 Python + Tkinter
  • 检查 wechat-insight 环境
  • 验证依赖完整性
  • 启动图形界面

2. 环境诊断

程序启动后会自动进行环境检查,显示诊断报告:

检查项 状态 说明
wechat-insight 路径 已找到
.venv Python Python 3.11.4
CLI 脚本 wechat_insight_cli.py 存在
密钥文件 已提取 92 个密钥
pycryptodome 未安装
zstandard 已安装

如果有依赖缺失,点击 「一键修复」 按钮自动安装。

3. 选择导出内容

  • 选择群聊:在左侧群聊列表中勾选(按住 Cmd 可多选)
  • 选择联系人:在联系人列表中勾选
  • 搜索筛选:使用搜索框快速定位

4. 设置导出选项

  • 时间范围:选择 7天/30天/90天/全部
  • 导出目录:点击「选择」按钮更改保存位置

5. 开始导出

点击 「开始导出」 按钮,等待导出完成。导出文件将保存在指定目录,格式为 JSONL。


🏗️ 技术架构

架构设计

┌─────────────────────────────────────────────────────────┐
│                    WeChatExporterGUI                     │
│                    (Tkinter GUI Layer)                   │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────┐  │
│  │  群聊列表    │  │  联系人列表  │  │   诊断/预览面板  │  │
│  │  (Listbox)  │  │  (Listbox)  │  │  (ScrolledText) │  │
│  └─────────────┘  └─────────────┘  └─────────────────┘  │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────┐  │
│  │  搜索框     │  │  设置面板    │  │   一键修复按钮   │  │
│  │  (Entry)    │  │  (Frame)    │  │   (Button)      │  │
│  └─────────────┘  └─────────────┘  └─────────────────┘  │
└─────────────────────────┬───────────────────────────────┘
                          │ subprocess
                          ▼
┌─────────────────────────────────────────────────────────┐
│              WeChatInsightBackend                        │
│         (Python subprocess wrapper)                      │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────┐  │
│  │ 依赖检查     │  │ 自动安装    │  │   CLI 调用      │  │
│  │ check_deps  │  │ pip install │  │  run_command    │  │
│  └─────────────┘  └─────────────┘  └─────────────────┘  │
└─────────────────────────┬───────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│              wechat-insight (.venv Python)               │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────┐  │
│  │ pycryptodome│  │  zstandard  │  │  wechat_insight │  │
│  │  (AES解密)  │  │ (zstd解压)  │  │   _cli.py       │  │
│  └─────────────┘  └─────────────┘  └─────────────────┘  │
└─────────────────────────────────────────────────────────┘

核心组件

1. WeChatInsightBackend

后端管理器,负责与 wechat-insight 通信:

class WeChatInsightBackend:
    """
    核心职责:
    1. 自动发现 wechat-insight 安装路径
    2. 管理 .venv Python 环境
    3. 检查和安装依赖(pycryptodome + zstandard)
    4. 通过 subprocess 调用 CLI 命令
    """

2. 双 Python 环境架构

层级 Python 环境 用途 依赖
GUI 层 Homebrew Python 3.13+ 运行 Tkinter 界面 Tk 8.6+
后端层 wechat-insight .venv 执行导出命令 pycryptodome, zstandard

这种设计解决了 macOS 上 Python 环境的复杂性,确保 GUI 和导出功能都能正常工作。

依赖关系

WeChatExporterGUI
├── Python 3.9+ (系统自带或 Homebrew)
├── Tkinter (Python 标准库)
└── wechat-insight (外部依赖)
    ├── Python 3.9+ (虚拟环境)
    ├── pycryptodome >= 3.20
    └── zstandard >= 0.23

❓ 常见问题

Q1: 启动时提示 "未找到 wechat-insight"

原因: WeChatExporterGUI 找不到 wechat-insight 的安装目录。

解决: 确保 wechat-insight 安装在以下位置之一:

  • ~/Desktop/wechat-insight
  • ~/wechat-insight

Q2: 点击「一键修复」后仍然显示依赖缺失

原因: 可能是网络问题或 pip 源问题。

解决: 手动安装依赖:

cd ~/Desktop/wechat-insight
source .venv/bin/activate
pip install pycryptodome zstandard -i https://pypi.tuna.tsinghua.edu.cn/simple

Q3: 群聊列表加载失败,显示 "ModuleNotFoundError: No module named 'Crypto'"

原因: wechat-insight 的虚拟环境中缺少 pycryptodome。

解决: 在 GUI 中点击「一键修复」按钮,或手动安装:

~/Desktop/wechat-insight/.venv/bin/pip install pycryptodome

Q4: 导出按钮点击后没反应

排查步骤:

  1. 检查是否至少选中了一个群聊或联系人
  2. 查看诊断面板是否有错误信息
  3. 检查导出目录是否有写入权限

Q5: 能否导出为 HTML/CSV 格式?

回答: WeChatExporterGUI 目前只支持 JSONL 格式,这是 wechat-insight 的原生输出格式。您可以使用其他工具将 JSONL 转换为 HTML/CSV。

Q6: 支持 Windows/Linux 吗?

回答: 目前仅支持 macOS,因为 wechat-insight 依赖 macOS 特有的微信数据库结构和 Frida 注入机制。


🤝 贡献指南

我们欢迎所有形式的贡献!请查看 CONTRIBUTING.md 了解如何:

  • 报告 Bug
  • 建议新功能
  • 提交代码
  • 完善文档

📄 许可证

本项目采用 MIT 许可证 开源。

MIT License

Copyright (c) 2026 WeChatExporterGUI Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...

🙏 致谢

📞 联系我们


Made with ❤️ for macOS users

About

点点鼠标,轻松导出微信聊天记录 - macOS 图形界面工具

Resources

License

Code of conduct

Contributing

Stars

6 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors