Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Coding
wechat-file-organizer
Try it微信文件自动归类(无头版)——扫描微信接收文件目录,按类型/月份归类、去重、生成报告。零依赖、默认只读(dry-run)、绝不永久删除源文件。扫描逻辑与 GUI 应用 wechat-file-organizer-gui(main.py)同步。
What it does
当用户表达以下意图时加载本 skill: 「整理微信接收的文件」「微信文件太乱了」「微信文件归类」 「微信里重复文件好多」「清理微信下载的文件」 「帮我看看微信都收了些什么文件 / 占了多少空间」
The skill document
微信文件自动归类 (wechat-file-organizer) — 无头版
何时使用
当用户表达以下意图时加载本 skill:
- 「整理微信接收的文件」「微信文件太乱了」「微信文件归类」
- 「微信里重复文件好多」「清理微信下载的文件」
- 「帮我看看微信都收了些什么文件 / 占了多少空间」
本 skill 调用随附的 scripts/organize.py 完成,无需安装任何第三方依赖。
有图形界面版本:
wechat-file-organizer-gui(GitHuboracis/wechat-file-organizer-gui, Releases 提供 Windowsexe与 macOS.pkg/.zip)。用户只想「点一点」就用 GUI; 本脚本用于无头/定时任务/自动化场景,两者扫描与归类逻辑已同步到同一版本。
核心特性
- 零依赖:仅用 Python 标准库,无
pip install。 - 安全优先:默认
dry-run(只读),绝不改动任何源文件;只有显式加--apply才复制。 - 清理可恢复:
--trash只会把源文件移入回收站/废纸篓(可恢复),绝不永久删除;Linux 不支持则跳过不删。 - 多账号合并扫描:自动探测本机所有微信文件根目录(新版
xwechat_files与旧版WeChat Files可并存), 一次扫齐全部账号,报告与 JSON 标注每个文件属于哪个账号。 - 多平台:Windows / macOS / Linux;macOS 自动探测微信沙盒目录(
com.tencent.xinWeChat容器)。 - 实用能力:按类型/月份归类、内容去重(sha256)、最大文件排行、老旧文件统计、JSON 输出。
如何运行
脚本位置:scripts/organize.py(本 skill 目录内)。
# 1) 先看报告(默认只读,安全,自动多账号合并扫描)
python scripts/organize.py
# 2) 按「类型 + 月份」归类并复制(不动源文件,复制到新目录)
python scripts/organize.py --apply --scheme type-month
# 3) 去重后归类(相同内容只留一份)
python scripts/organize.py --apply --dedupe
# 4) 归类后顺手清理源文件(移入回收站,可恢复;Linux 自动跳过)
python scripts/organize.py --apply --trash
# 5) 机器可读输出(定时任务/脚本消费,含账号归属)
python scripts/organize.py --json
# 指定目录(不自动探测时)
python scripts/organize.py --source "/path/to/xwechat_files" --apply
参数速查
| 参数 | 说明 |
|---|---|
--source DIR | 微信根目录;默认自动探测本机所有微信目录(多账号合并) |
--dest DIR | 归类输出目录;默认在 source 同级建 WeChatFiles_Organized |
--scheme | type(默认)/ month / type-month |
--apply | 真正复制归类(不加则只出报告) |
--trash | 配合 --apply:复制成功后把源文件移入回收站/废纸篓(可恢复,Linux 跳过) |
--dedupe | 去重,相同内容只保留一份(配合 --apply) |
--include-media | 连 Image/Video 的 .dat 也处理(默认跳过) |
--scan-all | 扫描 FileStorage 全部子目录(图片/视频/语音等) |
--top N | 列出最大的前 N 个文件(默认 10,0 关闭) |
--old-days N | 超过 N 天的文件计为老旧(默认 365) |
--json | 输出 JSON(含 accounts 账号列表与逐文件账号归属) |
--lang zh|en | 报告语言;CLI > 环境变量 WFO_LANG / WECHAT_ORG_LANG > 系统语言 > 中文 |
多语言(简体中文 / English)
报告、--help、JSON 字段与归类出来的子目录名(文档/ ↔ Documents/)全部走 scripts/i18n.py
词条包。新增语言只需在 STRINGS 中补一列 + join_list() 提供本地分隔符。
python scripts/organize.py --lang en # English
WFO_LANG=en python scripts/organize.py # 或用环境变量
路径发现逻辑
- 若设了
WECHAT_FILES_DIR且存在,优先用。 - 否则自动探测所有微信文件根目录,覆盖:
- 新版微信:
~/Documents/xwechat_files(文件在<账号>/msg/file/YYYY-MM) - 传统微信:
~/Documents/WeChat Files、Weixin Files(文件在<账号>/FileStorage/File) - macOS 沙盒:
~/Library/Containers/com.tencent.xinWeChat/.../com.tencent.xinWeChat/<版本>/<账号哈希>(文件在Message/MessageTemp/<会话>/File|Image|Video|Audio) - 自定义路径:有限深度扫描
~/Documents下含FileStorage/msg特征的目录
- 新版微信:
- 多账号会全部处理,且每个文件标注所属账号。
微信把接收文件按
File/YYYY-MM/文件名(新版为msg/file/YYYY-MM)平铺存放, 所有发送者混在一起,这正是本 skill 要解决的痛点。图片/视频在Image/、Video/里是加密的.dat,默认跳过(可用--include-media/--scan-all纳入)。
故障处置
| 现象 | 原因 / 处理 |
|---|---|
[FAIL] 找不到微信文件目录 | 微信不在默认位置,用 --source 指定,或设 WECHAT_FILES_DIR |
| 报告里没有图片/视频 | 默认跳过 .dat;加 --scan-all 或 --include-media |
| 想真正移动(而非复制)以腾空间 | 用 --apply --trash:先复制归类,确认无误后再把源文件移入回收站(可恢复) |
| 源文件被误改? | 不会发生——--apply 是复制;--trash 是移入回收站(可恢复),任何平台都不永久删除 |
安全与隐私
- 完全本地运行,不上网、不读任何凭据、不访问微信账号。
- 只读扫描 + 复制输出;清理源文件一律走回收站/废纸篓(可恢复),绝不永久删除。
- 适合在任何环境下分发使用。
与 GUI 版的关系(保持同步)
| 能力 | 无头脚本 organize.py | GUI 应用 main.py |
|---|---|---|
| 目录探测(多根/新版/旧版/mac 沙盒) | ✅ | ✅ |
| 多账号合并扫描 + 账号归属 | ✅ | ✅ |
| 按类型/月份归类、去重 | ✅ | ✅ |
| 清理源文件移入回收站(可恢复) | ✅ --trash | ✅ 界面勾选 |
| 图片缩略图预览 / 向导式界面 / 检查更新 | ❌ | ✅(GUI 独有) |
| 微信加密文件备份(收藏/附件) | ❌ | ✅(GUI 独有) |
两边的扫描/归类/回收站逻辑需保持一致;改动时优先同步
main.py,再回填本脚本。
复建依据
若 scripts/organize.py 丢失,本 SKILL.md 已完整描述接口与参数;最稳妥的方式是从
源仓库 oracis/wechat-file-organizer-gui 的 main.py 中提取扫描逻辑重建(见上面
「与 GUI 版的关系」对照表)。
Related skills
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
Write, debug, and tune Playwright specs with locator strategy, trace diagnosis, and CI-aware timeouts.
More from oracis
Browse all skills把本地 Skill 打包并发布到 SkillHub(腾讯 skillhub.cn)与 ClawHub,覆盖预检、发布、状态回读与竞品对标全链路,并在上传被拒时用二分/ddmin 脚本把「服务端 WAF 拦内容(566)」与「包结构/字段问题」精确区分开。当用户说「发布技能到市场」「上架 skill」「SkillHub 提交失败」「Failed to fetch」「566」「上传 zip 报错」「技能审核状态」「版本号被拒」时使用。也讲清「入库成功 ≠ 已公开」——用 `mine` 的 `reviewStatus`、重发探测 `409 VERSION_EXISTS`、`/versions/<v>/signature` 三个探针判断版本到底走到哪一步。
平台只有网页后台、没有上传 API 时,用本机已装的 Chrome/Edge + CDP 自动化走完上传/发布/填表流程——复用真实登录态、零安装(不下载 500MB Chromium)、能给文件选择框塞文件;并实测富文本编辑器(公众号 / CMS / 邮件模板)里到底哪些 CSS 能活下来,以及在决定是否接入平台自带的「一键排版 / AI 美化」前先抓它输出做结构化 diff。当用户说「只能网页上传」「后台发布」「网页填表自动提交」「发布到技能市场/各平台控制台」「复用已登录的浏览器」「公众号排版样式不生效/保存后样式没了」「一键排版要不要用」「点了按钮没反应/提交没成功也没报错」时使用。
一键安装并实测验证已验证可用的免费 LLM 到 WorkBuddy/Claude Code,无需注册、无需 API Key。当用户说「装免费模型」「加免费模型」「免费 LLM」「免费模型一键装」「验证免费模型可用吗」「免费模型怎么接入」「帮我配几个免费模型」「监控免费模型」「免费模型挂了吗」「kilo 网关」「kilo-auto」「nemotron 免费」「space-bunny」「智谱 glm 免费」「zhipu 免费」「glm-4-flash」「glm-4.7-flash」「glm-z1-flash」「glm-4v-flash」「探测国外免费模型」「国外平台免费 llm」「优先用免费模型」「读图桥接」「vision bridge」「给 glm-4-flash 加读图」「不读图的模型怎么看图」「阶跃星辰」「stepfun」「step 5」「step-5-preview」「限时免费模型」「ccproxy 读图转发」「给 claude code 加读图」时使用。也用于验证已有免费模型配置是否真的可用(tool calling 是否支持、是否限流、是否支持读图),以及定期 watch 监控免费模型是否下线/限流/失去工具调用能力。
在中国大陆网络环境下用 yt-dlp 下载视频(含 Windows GUI 封装)。当用户要下载 YouTube、Bilibili、SoundCloud 等 yt-dlp 支持的站点内容,或遇到「yt-dlp 装不上 / 下载报 502 / Tunnel connection failed / ffmpeg not found / 缺 JS runtime / TLS fingerprint / watch?v=&list= 把整个列表都下了 / Sign in to confirm you're not a bot / The page needs to be reloaded / 下到一半突然下不动 / 下回来的视频糊、有拖影残影 / 下载速度特别慢」等问题时使用。
聚合搜索百度网盘/夸克网盘/阿里云盘等网盘分享链接。当用户想按作者名、课程名、剧名、书名、软件名找网盘下载路径,或提到「网盘搜索」「PanSou」「盘搜」「找到下载链接」「夸克/百度/阿里网盘资源」时使用。包含已验证的 PanSou 协议端点、绕过系统代理的必要写法、以及可直接运行的本地 Web 应用 panradar.py。
在 WorkBuddy(Windows)环境里交付零依赖本地 Web 应用,并绕开官方测试技能完全不覆盖的本机专属坑。当用户要在本机跑起来一个本地 Web 应用 / 单文件工具 / 案例库 / 看板 / 小工具,或要验证刚写完的 HTML/JS/Python 交付物真的能工作时使用。独家覆盖:Bash 缺 coreutils、bash 是 WSL 启动桩、rm 是坏 shim、PowerShell 不回显 stdout、cwd 漂移、预览面板靠 HEAD 探活——这些在干净 Linux 环境里遇不到。