From sjh-skills
Fetches any URL as clean markdown using OpenCLI for login platforms (Twitter/X, Reddit, Zhihu, Weibo) or Jina Reader/defuddle chain for generic pages. For JS-rendered, paywalled, or complex content.
npx claudepluginhub jiahao-shao1/sjh-skills --plugin sjh-skillsThis skill uses the workspace's default tool permissions.
Fetch any URL as clean markdown. Two paths: known platforms go through OpenCLI (uses browser login state), everything else falls back through a chain of free markdown services.
Converts web URLs to cleaned Markdown with site-specific routing: r.jina.ai for general/X/Twitter pages, defuddle.md for YouTube, browser-impersonated extraction for WeChat/Zhihu/Feishu using Mozilla Readability and Turndown.
Reads public URLs into clean Markdown using platform-aware fallbacks for Chinese sites (WeChat, Zhihu, Bilibili), X/Twitter, and generic web pages via Jina Reader, Camoufox, WebFetch, and Playwright.
Extracts clean Markdown from any URL using ezycopy CLI. Handles JS-rendered pages with headless Chrome, retries on failure, and auto-installs tool if needed.
Share bugs, ideas, or general feedback.
Fetch any URL as clean markdown. Two paths: known platforms go through OpenCLI (uses browser login state), everything else falls back through a chain of free markdown services.
These are soft priorities — skip obviously wrong strategies (e.g., don't try OpenCLI for a random blog post, don't try Jina for a login-walled zhihu page).
| URL Pattern | Command | Notes |
|---|---|---|
x.com/.../status/<id> | opencli twitter thread <id> | Tweet threads. If the result is just a t.co link (very short text), the tweet likely links to an X Article — retry with opencli twitter article <same-id> |
x.com/.../article/<id> or x.com/i/article/<id> | opencli twitter article <id> | X Article long-form |
zhihu.com/question/<id> | opencli zhihu question <id> | |
zhuanlan.zhihu.com/p/<id> | opencli zhihu download <full-url> | |
reddit.com/r/.../comments/... | opencli reddit read <full-url> | |
weibo.com/... | opencli weibo search <query> | |
xiaohongshu.com/... | opencli xiaohongshu download <id> | |
bilibili.com/video/BV... | opencli bilibili download <bvid> |
The table above covers high-frequency platforms. OpenCLI supports 80+ platforms. For anything not listed:
# See all supported platforms
opencli --help
# See subcommands for a specific platform
opencli <platform> --help
For URLs that don't match a known platform, try these in order:
| Tool | How to Use | Strengths | Weaknesses |
|---|---|---|---|
| Jina Reader | curl -s -H "Accept: text/markdown" "https://r.jina.ai/<url>" | Best markdown quality, JS support | 20 req/min free limit |
| defuddle.md | curl -s "https://defuddle.md/<url>" | Good quality, by Obsidian creator | Undocumented limits |
| markdown.new | curl -s "https://markdown.new/<url>" | Browser rendering fallback | 500 req/day |
| WebFetch | Built-in tool, no curl needed | No setup needed | No JS rendering, poor on complex pages |
If opencli is not installed:
npm i -g @jackwener/openclichrome://extensions → Developer mode → Load unpacked → select unzipped folderopencli doctor to verifyOne-time setup. After installation, known platform URLs automatically use browser login state.
opencli weixin; proxy may be needed for some URLs behind GFW