wechat-article-extractor — Claude Code skill: parse WeChat articles
Pulls title, author, publish time and HTML body out of WeChat Official Account links. Useful when you need that content as structured data.
npx skills add freestylefly/wechat-article-extractor-skill --skill wechat-article-extractor -a claude-codeWhat wechat-article-extractor does
The skill takes a mp.weixin.qq.com URL or an already fetched HTML page and returns one object with account and article fields. You get the account name, alias, avatar, description, plus the article title, summary, author, publish time, cover image and HTML content. Article type is detected from the page: post, video, image, voice, text or repost.
Under the hood it calls scripts/extract.js through require, and the call is async. Options control what comes back: shouldReturnContent (default true), shouldReturnRawMeta, shouldFollowTransferLink, shouldExtractMpLinks, shouldExtractTags, shouldExtractRepostMeta. It needs the npm packages cheerio, dayjs, request-promise, qs and lodash.unescape.
Failures come back as numbered codes: 1004 for rate limiting, 2002 for an expired link, 2005 when the author deleted the piece, 2006 when it is blocked, 2012 when the account is blocked. If you batch requests, 1004 is what you will hit, so keep the pace slow. Some fields can be null depending on the article type and page structure.
What it helps with
- pull title and author from a WeChat article URL
- turn an article into a structured object for later processing
- grab the HTML body and cover image
- detect whether the item is a post, video, image or repost
- parse links from Sogou WeChat search results
Example prompts for the agent
- parse this mp.weixin.qq.com link and show me the title, author and publish time
- extract the HTML content and cover image from this WeChat article
- get the account and article metadata from this URL
How to install wechat-article-extractor
1Skills CLI (Vercel)
npx skills add freestylefly/wechat-article-extractor-skill --skill wechat-article-extractor -a claude-code2Manually: put the files in place
~/.claude/skills/wechat-article-extractor/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/wechat-article-extractor/
1Skills CLI (Vercel)
npx skills add freestylefly/wechat-article-extractor-skill --skill wechat-article-extractor -a codex2Manually: put the files in place
.agents/skills/wechat-article-extractor/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add freestylefly/wechat-article-extractor-skill --skill wechat-article-extractor -a cursor2Manually: put the files in place
.cursor/skills/wechat-article-extractor/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install freestylefly/wechat-article-extractor-skill wechat-article-extractor2Manually: put the files in place
.github/skills/wechat-article-extractor/SKILL.md1Skills CLI (Vercel)
npx skills add freestylefly/wechat-article-extractor-skill --skill wechat-article-extractor -a gemini-cli2Platform CLI
gemini skills install https://github.com/freestylefly/wechat-article-extractor-skillManually: put the files in place
.devin/skills/wechat-article-extractor/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add freestylefly/wechat-article-extractor-skill --skill wechat-article-extractor -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about wechat-article-extractor
How do I install wechat-article-extractor in Claude?
Run npx skills add freestylefly/wechat-article-extractor-skill --skill wechat-article-extractor -a claude-code. The skill then lands in ~/.claude/skills/wechat-article-extractor/SKILL.md.
What does wechat-article-extractor do?
It parses WeChat Official Account articles and returns the title, author, publish time, cover image and HTML content, along with account details.
What dependencies does the skill need?
The npm packages cheerio, dayjs, request-promise, qs and lodash.unescape.