微信转存
wechat-article-to-obsidian
by amortalsodyssey
Save WeChat public account articles (微信公众号文章) as clean Markdown notes in Obsidian. Use this skill whenever the user shares a mp.weixin.qq.com link and wants to save it to Obsidian, or mentions '微信文章', '公众号文章', '保存微信', '导入微信文章到Obsidian', 'save wechat article', 'clip wechat'. Also triggers when the user wants to batch-save multiple WeChat article URLs to their Obsidian vault. Zero external dependencies — just curl and Node.js.
安装
claude skill add --url https://github.com/openclaw/skills文档
WeChat Article → Obsidian
Save WeChat MP articles (微信公众号) as clean Markdown notes in Obsidian. No browser, no CDP, no plugins needed.
How it works
WeChat articles are server-side rendered — the full content is in the HTML, just CSS-hidden. A curl with browser UA fetches it, a Node.js script converts it to clean Markdown (with images, merged section headings, promotional tails stripped), and the result goes into the user's Obsidian vault via the obsidian CLI.
Dependencies
- curl (pre-installed on macOS/Linux)
- Node.js >= 18
- obsidian CLI (for writing to vault — if not available, fall back to direct file write)
First-time setup
On first use, check <skill-path>/config.json. If obsidian_vault or default_path is empty, ask the user:
- "What is your Obsidian vault name?" — this is the vault name used with
obsidianCLI (e.g.,vault=MyVault) - "Where should I save WeChat articles by default?" — a path inside the vault (e.g.,
notes/wechat,articles/wechat)
Then write the answers to <skill-path>/config.json:
{
"obsidian_vault": "MyVault",
"default_path": "notes/wechat"
}
This only needs to happen once. After that, the skill uses the saved config automatically.
Configuration
Natural language override (per-request)
The user can override the default path anytime:
- "把这篇文章存到 reading/tech 目录"
- "save this under articles/ai/"
- "导入到 Obsidian 的 inbox 文件夹"
Parse the target path from the user's message and use it instead of default_path.
Config file (persistent default)
<skill-path>/config.json:
obsidian_vault: the vault name forobsidianCLIdefault_path: where to save articles when the user doesn't specify a path
Workflow
Single article
SKILL_PATH="<skill-path>"
# Step 1: Fetch HTML
bash "$SKILL_PATH/scripts/fetch.sh" "URL" /tmp/wx_article.html
# Step 2: Get metadata (to determine filename)
node "$SKILL_PATH/scripts/parse.mjs" /tmp/wx_article.html --json
# Step 3: Parse to Markdown
node "$SKILL_PATH/scripts/parse.mjs" /tmp/wx_article.html > /tmp/wx_article.md
# Step 4: Read the parsed output, then save to Obsidian
obsidian create path="<target_path>/<filename>.md" content="<markdown_content>" vault=<vault_name>
The filename should be derived from the article title, keeping it readable: strip special characters, keep Chinese characters. Example: 从Claude Code源码看AI Agent工程架构.md
Batch save (multiple URLs)
For 2+ URLs, process them sequentially. For 4+ URLs, consider using subagents in parallel (each with its own temp file).
# Per URL:
bash "$SKILL_PATH/scripts/fetch.sh" "$url" "/tmp/wx_${i}.html"
node "$SKILL_PATH/scripts/parse.mjs" "/tmp/wx_${i}.html" > "/tmp/wx_${i}.md"
# Then save each to Obsidian
Output format
The parser produces clean Markdown with YAML frontmatter:
---
title: "Article Title"
author: "公众号名称"
publish_date: "2026-03-31 19:45:08"
saved_date: "2026-03-31"
source: "wechat"
url: "https://mp.weixin.qq.com/s/..."
---
The parser automatically:
- Preserves all article images (WeChat CDN URLs)
- Removes WeChat decoration text (THUMB, STOPPING)
- Merges "PART.XX" + title into proper
## PART.XX Titleheadings - Strips promotional tails (关注/点赞/在看, author bios, QR codes)
- Preserves bold, italic, code blocks, blockquotes, lists, links
Post-processing by Claude
After the parser runs, review the output and apply any remaining cleanup:
- If the user specified tags, add them to the frontmatter
- Verify the filename is clean and descriptive
- Confirm save location with the user if ambiguous
Troubleshooting
curl returns empty or verification page
WeChat may rate-limit. Wait 30 seconds and retry. If persistent, the article may require login — inform the user.
Empty content / no #js_content
Some special article types (mini-programs, video-only) aren't supported. Inform the user.
obsidian CLI not available
Fall back to direct file write using the Write tool to the vault's disk path.
相关 Skills
技能工坊
by anthropics
覆盖 Skill 从创建到迭代优化全流程:起草能力、补测试提示、跑评测与基准方差分析,并持续改写内容和描述,提升效果与触发准确率。
✎ 技能工坊把技能从创建、迭代到评测串成闭环,方差分析加描述优化,特别适合把触发准确率打磨得更稳。
表格处理
by anthropics
围绕 .xlsx、.xlsm、.csv、.tsv 做读写、修复、清洗、格式整理、公式计算与格式转换,适合修改现有表格、生成新报表或把杂乱数据整理成交付级电子表格。
✎ 做 Excel/CSV 相关任务很省心,能直接读写、修复、清洗和格式转换,尤其擅长把乱七八糟的表格整理成交付级文件。
Word文档
by anthropics
覆盖Word/.docx文档的创建、读取、编辑与重排,适合生成报告、备忘录、信函和模板,也能处理目录、页眉页脚、页码、图片替换、查找替换、修订批注及内容提取整理。
✎ 搞定 .docx 的创建、改写与精排版,目录、批量替换、批注修订和图片更新都能自动化,做正式文档尤其省心。
相关 MCP 服务
文件系统
编辑精选by Anthropic
Filesystem 是 MCP 官方参考服务器,让 LLM 安全读写本地文件系统。
✎ 这个服务器解决了让 Claude 直接操作本地文件的痛点,比如自动整理文档或生成代码文件。适合需要自动化文件处理的开发者,但注意它只是参考实现,生产环境需自行加固安全。
by wonderwhy-er
Desktop Commander 是让 AI 直接执行终端命令、管理文件和进程的 MCP 服务器。
✎ 这工具解决了 AI 无法直接操作本地环境的痛点,适合需要自动化脚本调试或文件批量处理的开发者。它能让你用自然语言指挥终端,但权限控制需谨慎,毕竟让 AI 执行 rm -rf 可不是闹着玩的。
EdgarTools
编辑精选by dgunning
EdgarTools 是无需 API 密钥即可解析 SEC EDGAR 财报的开源 Python 库。
✎ 这个工具解决了金融数据获取的痛点——直接让 AI 读取结构化财报,比如让 Claude 分析苹果的 10-K 文件。适合量化分析师或金融开发者快速构建数据管道。但注意,它依赖 SEC 网站稳定性,高峰期可能延迟。