为长期使用微信的 Mac / Windows 用户释放被重复文件与冗余缓存占满的磁盘空间——不删除聊天记录,文件在微信里照样能打开。
多群转发的同一份文件只占用一份磁盘 · 文档与聊天记录零损伤 · 清理走系统废纸篓可恢复 · 内置防误删白名单
前往 GitHub Releases 下载对应安装包:
| 平台 | 安装包 | 说明 |
|---|---|---|
| macOS (Apple Silicon M1–M4) | CleanYourWechatTool-arm64.dmg |
打开后把应用拖入「应用程序」 |
| macOS (Intel) | CleanYourWechatTool-x86_64.dmg |
同上 |
| Windows 10 / 11 (64 位) | CleanYourWechatTool-windows-x64.zip |
解压后双击 CleanYourWechatTool.exe,免安装 |
1. 放行应用(本项目为开源软件,未购买 Apple / Microsoft 付费签名证书,系统会拦一次)
macOS:提示"无法验证开发者"或"已损坏"
图形界面方式(所有版本适用,推荐)
- 双击应用,看到"Apple 无法验证此 App"后点 完成;
- 打开 系统设置 → 隐私与安全性,向下滚动到 安全性 一栏;
- 会出现"已阻止使用 CleanYourWechatTool",点 仍要打开,输入密码确认;
- 再次双击应用,在弹窗中点 仍要打开。
终端方式(最快,一行命令)
xattr -cr /Applications/CleanYourWechatTool.appmacOS 14 及更早版本可右键图标 → 打开;macOS 15 起 Apple 已移除该方式,请使用上面的两种方法之一。
Windows:提示"Windows 已保护你的电脑"(SmartScreen)
- 在蓝色警告框点击 更多信息(More info);
- 点击右下角 仍要运行(Run anyway)。
若解压后运行仍被拦截,右键 CleanYourWechatTool.exe → 属性 → 勾选底部的 解除锁定 → 确定。
2. 授予微信数据读取权限
macOS:提示"未找到微信数据"
微信的数据目录受系统保护,需手动授权:
系统设置 → 隐私与安全性 → 完全磁盘访问权限 → 打开 CleanYourWechatTool 的开关,然后重启应用。
(应用内检测到未授权时也会给出跳转该设置面板的提示。)
3. 扫描 → 勾选 → 一键清理
打开应用后会自动扫描微信占用;确认推荐的清理项,需要时展开「核对清单」逐条勾选或排除,最后点「一键安全瘦身」。
所有被清理的文件都会移入系统废纸篓 / 回收站,随时可以「放回原处」还原。
| 评估维度 | 微信内置"存储空间清理" | 常见第三方清理工具 | CleanYourWechatTool |
|---|---|---|---|
| 多群重复文件 | 识别不了,按群各存一份 | 直接删除文件 | APFS 原生硬链接:物理只占一份,各群都能打开 |
| 聊天窗口文件可用性 | 删除后无法打开 | 提示"文件已过期或被清理" | 路径不变,照常预览打开 |
| 清理可恢复性 | 不可逆 | 直接删除 / 混在废纸篓 | 全部走系统废纸篓,可逐一还原 |
| 误删防护 | 无 | 仅按目录大类勾选 | 联系人 / 群聊 / 文件名关键词白名单 |
| 操作门槛 | — | 命令行或需配置环境 | 下载即用,图形界面 |
- 无损去重:多群转发的同一份视频/文档,合并为一份物理存储,各聊天窗口照常打开;
- 缓存清理:渲染引擎缓存、运行日志、小程序包体等零风险垃圾,一键释放;
- 历史大文件核对:按时间与大小筛选陈年大文件,清理前可逐条核对、排除;
- 防删白名单:把重要联系人、群聊或关键词(合同、发票、报价单)加入保护,相关文件永不参与清理;
- 可恢复:所有清理动作移入系统废纸篓 / 回收站,不执行不可逆删除;
- 完全本地:不联网、不上传、无遥测,不解析聊天正文,不注入微信进程。
Q: 去重之后,微信里还能正常打开这些文件吗?
可以。硬链接是文件系统层面的引用机制:去重后各聊天会话目录下的文件路径与文件名都保持不变,微信读取时透明获取同一份物理数据块,不会出现"文件已失效"。
Q: 会不会读取我的聊天内容、或者有隐私外泄风险?
不会。工具只操作本地文件系统中的多媒体与文档文件,不解析聊天正文数据库,不注入微信进程,代码中没有任何网络请求与遥测逻辑。微信 4.0 的数据库为加密存储,本工具既无能力也无意读取其内容。
Q: 清理错了怎么恢复?
所有清理默认移入系统废纸篓(macOS)/ 回收站(Windows),不做不可逆删除。在废纸篓中找到文件右键「放回原处」即可还原。选择「归档到外置目录」时,归档目录内会生成 archive_manifest.json 记录每个文件的原始路径,可据此批量还原。
Q: 会导致微信封号或崩溃吗?
不会。封号风险通常来自内存注入、客户端逆向或自动化协议通信。本项目是独立的本地文件管理工具,不依附微信进程运行,不修改客户端程序包与签名。
Q: 支持哪些系统与微信版本?
macOS(Apple Silicon 与 Intel)与 Windows 10/11;兼容微信 3.x 与微信 4.0+ 的目录结构,支持多账号自动识别。Windows 版为新增支持,如遇目录结构差异请提 Issue。
微信长期使用后通常占用数十至上百 GB,主要成因与现有方案的局限:
- 多群转发冗余:同一份 100MB 视频转发至 8 个群,微信在各群目录分别写入独立文件,产生 800MB 物理占用;
- 内置清理缺乏细粒度:微信自带存储管理主要提供按会话删除聊天记录,无法在保留文件索引的前提下释放重复空间;
- 通用清理工具破坏文件可用性:第三方工具直接删除文件实体后,聊天窗口中的对应文件显示"已失效或已被清理"。
CleanYourWechatTool 通过文件系统特性与本地规则配置,在保留文件可访问性的前提下释放重复占用。
- 计算文件内容哈希,将内容相同的重复附件合并为指向同一数据块(inode)的硬链接;
- 物理空间仅保留一份,各群聊路径与文件名保持不变,点击仍可正常预览;
- 失败时安全降级(跨卷、文件被占用等场景),绝不删除原文件。
- 联系人与群聊防护:按备注、昵称或 wxid 配置保护规则;
- 关键词匹配:按文件名关键词(如"合同"、"报价"、"发票")保护;
- 优先级最高:清理调度中优先执行白名单过滤,命中即跳过。
说明:微信 4.0 的联系人数据库为加密存储,工具无法读取通讯录中的昵称用于自动匹配,白名单按文件名关键词与账号标识生效。
-
废纸篓保护:清理默认调用系统原生回收接口(macOS Trash / Windows Recycle Bin),支持"放回原处";
-
外置归档:可将超过指定时间与体积阈值的文件迁移至外部介质(移动硬盘 / NAS),保留原目录结构,并生成
archive_manifest.json清单供还原。 -
归档后的行为边界(重要):归档文件不再位于本机,因此在微信内点击这些文件会提示"文件不可用"——这是预期行为,不是故障。需要查阅时插回该磁盘,执行一条命令即可原样恢复到微信目录:
cleanyourwechat restore --manifest "/Volumes/你的硬盘/wechat/archive_manifest.json"
- 数据库物理死线:硬编码排除
db_storage、Msg等数据库目录及.db、.sqlite、.db-wal、.ldb等敏感后缀,任何清理规则都不可触碰; - 纯文件层操作:不解析聊天正文,不修改数据库,不注入内存,不挂钩微信进程。
本项目同时提供命令行接口,适合脚本化或批量处理。
git clone https://github.com/LuckTerence/CleanYourWechatTool.git
cd CleanYourWechatTool
python3 clean_wechat.py # 交互式引导python3 clean_wechat.py scanpython3 clean_wechat.py dedup --dry-run # 演练:只统计不修改
python3 clean_wechat.py dedup # 执行:转为硬链接python3 clean_wechat.py tag --add "重要客户" --keywords "合同,报价,发票"
python3 clean_wechat.py tag --listpython3 clean_wechat.py clean --days 365 --min-size 50MB --archive-to /Volumes/Backup/wechatpython3 clean_wechat.py restore --manifest /Volumes/Backup/wechat/archive_manifest.jsonpip install .
cleanyourwechat scan项目包含自动化测试集,覆盖去重、白名单、状态管理、GUI 交互与 CLI 端到端流程:
python3 -m unittest discover -s projects/wechat-intelligence-hub/testsCI(GitHub Actions)在 macOS / Windows / Ubuntu × Python 3.8–3.12 矩阵上运行全套测试、静态检查(flake8 / mypy / bandit)与安全扫描,并在发布前对打包产物执行启动冒烟测试——产物无法启动则发布流程直接失败。
欢迎提交 Issue 反馈问题或 PR 改进代码:
- 提交 Issue 时请附上系统版本、微信版本与操作步骤;
- 提交 Pull Request 前请确保本地测试通过。
本项目基于 MIT License 开源。
