Clipper
by @pazzilivo
Save web content to Obsidian vault. Supports Twitter/X, WeChat MP, Xiaohongshu, YouTube, Bilibili, and any web page. Automatically routes to the best fetch m...
clawhub install clipperπ About This Skill
name: clipper version: 1.0.0 description: Save web content to Obsidian vault. Supports Twitter/X, WeChat MP, Xiaohongshu, YouTube, Bilibili, and any web page. Automatically routes to the best fetch method per platform.
Clipper
Unified web content clipper for Obsidian. One entry point, auto-detects platform, uses optimal method.
Usage
When user provides a URL and wants to save it:
python3 {{SKILL_DIR}}/scripts/clip.py ""
Output:
/clippings/tweet/YYYY-MM-DD--.md /clippings/web//YYYY-MM-DD-.md Platform Routing
| Platform | Method | Why | |----------|--------|-----| | Twitter/X | Jina Reader | Fast, reliable, no auth needed | | WeChat MP | Browser snapshot | Handles JS rendering | | Xiaohongshu | x-reader | Works well | | YouTube | x-reader | Gets description/metadata | | Bilibili | x-reader | Works well | | Other | x-reader | General purpose |
Workflows
Twitter / General Web (Auto)
python3 {{SKILL_DIR}}/scripts/clip.py "https://x.com/user/status/123"
One command, done.
WeChat MP (Two-step)
WeChat articles need browser rendering. The script will return needs_browser: true.
Step 1: Open in browser
browser action=open profile=openclaw targetUrl=
Step 2: Get snapshot
browser action=snapshot profile=openclaw targetId=
Step 3: Extract content and save
python3 {{SKILL_DIR}}/scripts/wechat.py \
--url "" \
--title "" \
--author "" \
--date "" \
--content ""
Or pipe content via stdin:
echo "" | python3 {{SKILL_DIR}}/scripts/wechat.py \
--url "" \
--title ""
Supported URL Formats
Twitter:
https://twitter.com//status/ https://x.com//status/ WeChat:
https://mp.weixin.qq.com/s/Others:
Requirements
obsidian-cli (for vault detection) OR manually configured vault pathx-reader for general web: pipx install 'git+https://github.com/runesleo/x-reader.git'Example
User: https://x.com/naval/status/1234567890 save this
You: [runs clip.py] β Saved to clippings/tweet/2026-03-18-naval-1234567890.mdUser: https://mp.weixin.qq.com/s/abc123 δΏεθΏδΈͺ
You: [runs clip.py] β needs_browser: true
[opens browser, gets snapshot]
[extracts content, runs wechat.py]
β Saved to clippings/web/mp_weixin_qq_com/2026-03-18-article-title.md
Git Sync
All saves trigger automatic git sync: pull --rebase β add β commit β push
Git warnings (non-fatal) are returned in git_warnings array.
π‘ Examples
User: https://x.com/naval/status/1234567890 save this
You: [runs clip.py] β Saved to clippings/tweet/2026-03-18-naval-1234567890.mdUser: https://mp.weixin.qq.com/s/abc123 δΏεθΏδΈͺ
You: [runs clip.py] β needs_browser: true
[opens browser, gets snapshot]
[extracts content, runs wechat.py]
β Saved to clippings/web/mp_weixin_qq_com/2026-03-18-article-title.md