WeChat Article Archive
Archive WeChat articles and image notes locally Skill: WeChat Article Archive Owner: harven-droid Summary: Archive WeChat articles and image notes locally Tags: archive:1.1.5, latest:1.1.5, wechat:1.1.5 Version history: v1.1.5 | 2026-09-10T06:57:06.710Z | user Fix missing images in Xiaolushu image notes by supporting picture_page_info_list in both assignment (=) and object-property (:) syntax. Preserve image order and substantive full-article content. v1.1.4 | 202
Rank
62
Safety
84
Downloads
1.4k
Updated
Oct 10, 2026
Version
1.1.5
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.4K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.4K downloadsadoption · observed Oct 10, 2026
- Latest release
- 1.1.5release · observed Sep 10, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17b95kvfzb5cdt2sy8s534dns842jax:wechat-article-archive- Node.js workspace detected. Install dependencies securely: run `npm ci --ignore-scripts` to prevent post-install lifecycle triggers from running arbitrary code, then selectively audit the dependency tree.
- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-harven-droid-wechat-article-archive/snapshot"
Documentation
CLAWHUB
144,483 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: wechat-article-archive
description: Save WeChat Official Account articles and image-note / 小绿书 pages from mp.weixin.qq.com into a user-specified local folder as Markdown plus local assets. Use when the user asks to 保存/归档/下载/导出公众号文章、提取多张图片、从浏览器保存的最终 HTML 恢复文章,or generate Markdown with WeChat images copied locally instead of uploading to IMA or another cloud service.
---
# WeChat Article Archive
Archive a WeChat Official Account article to local files:
```text
target-folder/
Article title.md
assets/
image-01-xxxx.jpg
image-02-xxxx.png
```
## Workflow
1. Confirm the user provided both:
- a `mp.weixin.qq.com` article URL
- a destination folder
2. Run the bundled script from this skill directory:
```bash
cd "${CODEX_HOME:-$HOME/.codex}/skills/wechat-article-archive"
.venv/bin/python scripts/archive_wechat_article.py "<wechat-url>" "<destination-folder>"
```
3. Read the JSON output and report:
- Markdown file path
- `assets/` directory path
- downloaded image count
- any image download failures
## Script
Use `scripts/archive_wechat_article.py`.
Arguments:
```bash
.venv/bin/python scripts/archive_wechat_article.py "<url>" "<output_dir>" [--filename "custom.md"] [--skip-images] [--html-file "page.html"] [--image-timeout 30]
```
Behavior:
- Parses the article with the bundled `extract.js`.
- Preserves title, author, account name, publish time, original link, body text, headings, tables, blockquotes, lists, code blocks, and inline image order.
- Downloads body images into `<output_dir>/assets/`.
- Rewrites Markdown image links to relative `assets/...` paths.
- Supports WeChat image-note / 小绿书 pages by extracting every top-level image from `picture_page_info_list` in display order.
- Preserves image-note / 小绿书 body text from the page description, decodes escaped line breaks, and writes the text before the ordered images.
- When `picture_page_info_list` also appears on a normal long article, prefers the substantive structured HTML body instead of replacing it with the short page description and image list.
- Accepts a browser-saved final page source through `--html-file` when direct URL fetching is blocked or returns a different page. Keep the original WeChat URL as the first argument so metadata retains the source link.
- If the body contains no inline images but the article has a cover image, inserts and downloads the cover image.
- Prints a JSON result for verification. Check `body_text_length`, `body_img_count`, `downloaded_image_count`, and `image_failures`; do not treat `ok: true` alone as proof that the article is complete.
## Dependencies
Run once if dependencies are missing:
```bash
cd "${CODEX_HOME:-$HOME/.codex}/skills/wechat-article-archive"
npm install
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
```
Required commands:
- `python3`
- `node`
- npm dependencies declared in `package.json`
If `node` is not on PATH but available elsewhere, set:
```bash
NODE=/absol_meta.json
{
"ownerId": "kn72j0qng9f6mm49z983cyzw1982naag",
"slug": "wechat-article-archive",
"version": "1.1.5",
"publishedAt": 1789023426710
}skill-card.md
## Description: Saves WeChat Official Account articles and image-note pages from mp.weixin.qq.com into a user-specified local folder as Markdown with local assets. This skill is ready for commercial/non-commercial use. ## Publisher: [harven-droid](https://clawhub.ai/user/harven-droid) ### License/Terms of Use: MIT-0 ## Use Case: Developers, researchers, and content archivists use this skill to save supported WeChat article or image-note URLs, or browser-saved final HTML, as local Markdown with copied images. It is intended for local archiving and verification of article content, not cloud upload, knowledge-base import, or message sending. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: Embedded image URLs can be downloaded into the archive without host, scheme, size, or network-safety limits. Mitigation: Use the skill only with WeChat URLs and output folders you choose, consider --skip-images for untrusted content, and run it in a sandboxed environment without access to internal networks or sensitive local files. Risk: Browser-saved HTML from an untrusted source may contain asset references that affect what the downloader fetches. Mitigation: Review saved HTML before use or disable image downloading for untrusted inputs until asset URL and size limits are added. ## Reference(s): - [WeChat Article Archive on ClawHub](https://clawhub.ai/harven-droid/skills/wechat-article-archive) - [Publisher profile: harven-droid](https://clawhub.ai/user/harven-droid) ## Skill Output: **Output Type(s):** [text, markdown, files, shell commands, configuration, guidance] **Output Format:** [Markdown article file, local asset files, JSON run summary, and concise text guidance] **Output Parameters:** [1D] **Other Properties Related to Output:** [Creates or reuses the requested destination folder and assets directory; image downloads can be skipped with --skip-images.] ## Skill Version(s): 1.1.5 (source: server release evidence) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
package-lock.json
{
"name": "wechat-article-archive",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": {
"cheerio": "^1.2.0",
"dayjs": "^1.11.19",
"lodash.unescape": "^4.0.1",
"qs": "^6.15.0"
}
},
"node_modules/boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
"license": "ISC"
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/call-bound": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
"integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"get-intrinsic": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/cheerio": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz",
"integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==",
"license": "MIT",
"dependencies": {
"cheerio-select": "^2.1.0",
"dom-serializer": "^2.0.0",
"domhandler": "^5.0.3",
"domutils": "^3.2.2",
"encoding-sniffer": "^0.2.1",
"htmlparser2": "^10.1.0",
"parse5": "^7.3.0",
"parse5-htmlparser2-tree-adapter": "^7.1.0",
"parse5-parser-stream": "^7.1.2",
"undici": "^7.19.0",
"whatwg-mimetype": "^4.0.0"
},
"engines": {
"node": ">=20.18.1"
},
"funding": {
"url": "https://github.com/cheeriojs/cheerio?sponsor=1"
}
},
"node_modules/cheerio-select": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
"integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
"license": "BSD-2-Clause",
"dependencies": {
"boolbase": "^1.0.0",
"css-select": "^5.1.0",
"css-what": "^6.1.0",
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
"domutils": "^3.0.1"
},
"funding": {
"url": "https://github.com/spopackage.json
{
"dependencies": {
"cheerio": "^1.2.0",
"dayjs": "^1.11.19",
"lodash.unescape": "^4.0.1",
"qs": "^6.15.0"
}
}AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/harven-droid/skills/wechat-article-archive",
"sourceUrl": "https://clawhub.ai/harven-droid/skills/wechat-article-archive",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T12:28:38.617Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-harven-droid-wechat-article-archive/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-harven-droid-wechat-article-archive/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T12:28:38.617Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.4K downloads",
"href": "https://clawhub.ai/harven-droid/wechat-article-archive",
"sourceUrl": "https://clawhub.ai/harven-droid/wechat-article-archive",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T12:28:38.617Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.1.5",
"href": "https://clawhub.ai/harven-droid/wechat-article-archive",
"sourceUrl": "https://clawhub.ai/harven-droid/wechat-article-archive",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-10T06:57:06.710Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-harven-droid-wechat-article-archive/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-harven-droid-wechat-article-archive/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.1.5",
"description": "Fix missing images in Xiaolushu image notes by supporting picture_page_info_list in both assignment (=) and object-property (:) syntax. Preserve image order and substantive full-article content.",
"href": "https://clawhub.ai/harven-droid/wechat-article-archive",
"sourceUrl": "https://clawhub.ai/harven-droid/wechat-article-archive",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-10T06:57:06.710Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
