web-fetcher
Fetch any URL as clean markdown. ALWAYS use this skill instead of the WebFetch tool when you need to read a URL's content — it has a 5-layer fallback (Jina Reader, defuddle.md, markdown.new, OpenCLI, raw HTML) that produces better results and handles JS-rendered pages (Twitter/X, SPAs), login-required platforms (zhihu, reddit, weibo, xiaohongshu), and complex web pages that WebFetch cannot parse. Invoke whenever the user provides a URL and wants to read, extract, summarize, analyze, or convert its content to markdown. Keywords: 'fetch page', 'read URL', 'grab content from', 'summarize article', 'extract text from webpage', '抓取网页', '读链接', '网页转 markdown'. NOT for: web search without URL, file downloads, screenshots, form filling, or accessibility checks.
NPX Install
npx skill4agent add jiahao-shao1/sjh-skills web-fetcherTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Web Fetcher
Usage
python3 <skill-path>/scripts/fetch.py <url>python3 <skill-path>/scripts/fetch.py <url> -o output.mdFallback Chain
- Jina Reader () — best markdown quality, supports JS-rendered pages
r.jina.ai/{url} - defuddle.md () — by Obsidian creator @kepano
defuddle.md/{url} - markdown.new () — 3-layer strategy with browser rendering fallback
markdown.new/{url} - OpenCLI — platform-specific commands with browser login state (zhihu, reddit, twitter, weibo)
- Raw HTML — direct fetch as last resort
When to Use
- JS-rendered pages that WebFetch can't handle (Twitter/X, SPAs)
- Login-required pages on supported platforms (zhihu, reddit, twitter, weibo, xiaohongshu)
- Bulk content extraction
- When you need clean markdown instead of summarized content
OpenCLI Supported Platforms
| URL Pattern | OpenCLI Command |
|---|---|
| |
| |
| |
| |
| |
npm i -g @jackwener/opencliLimitations
- WeChat articles (微信公众号) not supported by any strategy
- OpenCLI requires browser extension setup (one-time)
Rate Limits
| Service | Limit |
|---|---|
| Jina Reader | 20 req/min (free), 10M token key available at jina.ai/reader |
| markdown.new | 500 req/day/IP |
| defuddle.md | Not documented |
| OpenCLI | No documented limits (uses browser session) |