Install
openclaw skills install wechat-favorites微信收藏夹导出、智能分类与知识库管理。支持从解析后的 favorite.db 导出收藏记录、自动归纳分类(从用户内容发现自然类别)、LLM 智能增强(可选)、批量导入 IMA 知识库(可选)、多平台导出(Obsidian/Notion,可选)、增量分类。核心功能支持离线使用,网络功能默认关闭。
openclaw skills install wechat-favoritesDecrypt, categorize and organize wechat favorites (Official Account collection) into knowledge base
收藏夹导出 · 智能分类 · 知识库导入 · 多平台导出
快速上手: 解析收藏夹 → 导出记录 → 自动归纳类别 → 智能分类 → 导出到 Obsidian/Notion 或导入 IMA
💡 试试这样说: "帮我整理微信收藏" / "导出收藏夹并自动归纳分类" / "从我的收藏中发现自然类别" / "把微信收藏导入知识库"
触发词: 微信收藏(WeChat Favorites)、收藏夹导出(favorites export)、收藏文章分类(favorites classification)、自动归纳分类(auto-discover categories)、IMA 知识库导入(knowledge base import)、Obsidian 导出(Obsidian export)、Notion 导出(Notion export)、收藏整理(favorites organizer)
完整更新日志见 CHANGELOG.md
--categories 参数,支持自定义分类 JSON微信收藏夹积累了大量文章:随手打的标签越来越复杂,待读越积越多,从来没有真正整理过,也不记得读了哪些、学到了什么。这个工具可以:
| 能力 | 说明 |
|---|---|
| 收藏导出 | 从解析后的 favorite.db 导出全部收藏记录为 CSV |
| 自动归纳 | 从用户收藏内容自动发现分类体系(v1.2 新增) |
| 关键词分类 | 默认 9 大类(生物医药/AI/投资等),或使用自定义分类 |
| 标签增强 | 二级标签 57 个 + 跨领域标签 6 类(仅默认分类) |
| LLM 增强(可选) | 置信度低时自动调用 LLM 二次分类,需配置 API Key |
| IMA导入(可选) | 批量导入到 IMA 知识库,需配置凭证 |
| Notion 导出(可选) | 导出收藏到 Notion 数据库,需配置 API Token(v1.2 新增) |
| Obsidian 导出(可选) | 导出收藏为 Markdown 文件到 Obsidian vault(v1.2 新增) |
| 报告生成 | 分类统计、各分类 CSV 导出 |
本工具需要已解析的 favorite.db 文件。解析步骤请使用专门的微信数据库处理工具。
pip install pycryptodome zstandard
自动归纳功能需要调用 LLM API:
export LLM_API_KEY="your-openrouter-api-key"
export LLM_API_URL="https://openrouter.ai/api/v1/chat/completions"
export LLM_MODEL="deepseek/deepseek-chat"
或使用本地模型:
export LLM_API_URL="http://localhost:11434/v1/chat/completions"
export LLM_MODEL="qwen2.5:14b"
如需导入 IMA 知识库,配置凭证:~/.config/ima/client_id 和 ~/.config/ima/api_key
如需导出到 Notion,配置 API Token:
export NOTION_API_TOKEN="secret_xxx"
无需额外配置,直接指定 vault 路径即可。
cd scripts
# 1. 导出收藏记录
python export_favorites.py
# 2. 自动发现分类体系
python auto_discover.py
# 3. 使用自定义分类
python classify_favorites.py --categories user_categories.json
# 4. 导入 IMA(可选)
python import_ima.py
cd scripts
# 1. 导出收藏记录
python export_favorites.py
# 2. 使用默认分类
python classify_favorites.py
# 3. 导入 IMA(可选)
python import_ima.py
# 导出分类后的文章到 Notion 数据库
python export_to_notion.py --input articles_final.csv --token $NOTION_API_KEY --database-id $DATABASE_ID
# 导出到 Obsidian vault(Markdown 文件)
python export_to_obsidian.py --input articles_final.csv --vault "D:\Obsidian\MyVault"
wechat-favorites/
├── SKILL.md # 本文件
├── LICENSE.txt # MIT License
├── requirements.txt # 依赖声明
├── scripts/
│ ├── auto_discover.py # 自动归纳分类(v1.2 新增)
│ ├── classify_favorites.py # 智能分类
│ ├── llm_classify.py # LLM 二次分类模块
│ ├── llm_incremental.py # LLM 增量分类(v1.2 新增)
│ ├── merge_llm_results.py # 合并多次 LLM 结果(v1.2 新增)
│ ├── normalize_categories.py # 分类标准化(v1.2 新增)
│ ├── export_favorites.py # 收藏导出
│ ├── export_to_notion.py # 导出至 Notion(v1.2 新增)
│ ├── export_to_obsidian.py # 导出至 Obsidian(v1.2 新增)
│ ├── import_ima.py # IMA 导入
│ └── ...
├── exported_favorites/ # 导出输出
│ ├── favorites_all.csv # 全部收藏
│ ├── user_categories.json # 自动归纳的分类体系
│ ├── articles_final.csv # 带分类标签
│ └── cat_*.csv # 各分类文件
└── references/
├── classification.md # 分类算法说明
└── schema.md # 数据库结构
favorites_all.csv
│
▼ auto_discover.py(采样 + LLM 归纳)
user_categories.json
│
▼ classify_favorites.py --categories user_categories.json
articles_final.csv + cat_*.csv
favorites_all.csv
│
▼ classify_favorites.py(9 大类关键词匹配)
articles_final.csv + cat_*.csv
# 已有分类结果
articles_final.csv
│
▼ llm_incremental.py(仅处理新增收藏)
articles_final_updated.csv
│
▼ merge_llm_results.py(合并多次结果)
articles_final_merged.csv
articles_final.csv
│
▼ export_to_obsidian.py --vault "D:\Obsidian\MyVault"
D:\Obsidian\MyVault\2026\06\article-title.md
articles_final.csv
│
▼ export_to_notion.py --database-id YOUR_DB_ID
Notion Database(含全部收藏页面)
user_categories.json 结构:
{
"categories": [
{
"name": "生物医药研发",
"description": "创新药、临床试验、生物技术相关",
"keywords": ["创新药", "ADC", "CAR-T", "临床", "靶点", ...]
},
...
],
"meta": {
"source": "auto_discover",
"sample_size": 500,
"total_articles": 32333,
"created_at": "2026-04-27 23:45"
}
}
运行 auto_discover.py 后,分类体系由 LLM 根据你的收藏内容归纳,类别数量、名称、关键词均动态生成。
| 分类 | 关键词示例 |
|---|---|
| 生物医药 | 创新药、ADC、CAR-T、mRNA、临床试验 |
| AI科技 | GPT、大模型、Agent、RAG、芯片 |
| 投资金融 | IPO、融资、估值、基金、VC |
| 科学研究 | Nature、Science、论文、研究 |
| 商业财经 | 企业、行业、市场、商业模式 |
| 生活方式 | 健康、运动、旅行、读书 |
| 媒体资讯 | 新闻、热点、评论、舆论 |
| 政治国际 | 国际、外交、地缘、中美 |
每个一级分类下设细分标签,如:
完整标签列表见 references/classification.md。
| 操作 | 数据流向 | 说明 |
|---|---|---|
| 收藏导出 | 本地只读 | 完全离线 |
| 关键词分类 | 本地计算 | 完全离线 |
| 自动归纳 | 本地 → LLM API(需配置) | 发送采样标题,仅在启用时调用 |
| LLM 分类 | 本地 → OpenRouter(需配置) | 发送标题+摘要,仅在启用时调用 |
| IMA 导入 | 本地 → ima.qq.com(需配置) | 发送 URL 列表,仅在启用时调用 |
| Obsidian 导出 | 本地文件写入 | 完全离线 |
| Notion 导出 | 本地 → Notion API(需配置) | 发送收藏数据,仅在启用时调用 |
离线模式: 导出 + 默认分类完全离线;自动归纳需 LLM API。
建议: 在信任的网络环境使用自动归纳功能。
Q: 自动归纳出的类别不满意?
A: 编辑 user_categories.json 手动调整,或重新运行 auto_discover.py --sample 1000 增加采样。
Q: 可以在默认分类和自定义分类之间切换吗?
A: 可以。不带 --categories 参数即为默认分类。
Q: 自动归纳需要多少条数据? A: 建议 500 条以上,太少可能导致类别不全。
MIT License
本工具仅供个人备份和学习使用。请勿用于任何商业用途或违法行为。