Loading...
Loading...
Fetch web page content via Chrome DevTools Protocol (CDP). Full JS rendering, handles redirects (including Google News). Use when you need to read the text content of a web page, scrape articles, or extract information from URLs. Zero dependencies — Python 3 stdlib only. Cross-platform (Mac, Windows, Linux).
npx skill4agent add creminiai/cremini-skills web-fetchbrew install --cask google-chromesudo apt install google-chrome-stablewinget install Google.Chrometrafilaturapython <skill-path>/scripts/web_fetch.py --url "https://example.com/article"python <skill-path>/scripts/web_fetch.py --url "https://example.com/a" --url "https://example.com/b"echo "https://example.com/article" | python <skill-path>/scripts/web_fetch.py# Cross-platform temp dir
TMPDIR=$(python -c "import tempfile; print(tempfile.gettempdir())")
python <skill-path>/scripts/web_fetch.py --url "https://example.com" --format json -o "$TMPDIR/results.json"| Flag | Default | Description |
|---|---|---|
| — | URL to fetch (repeatable) |
| | Output format: |
| stdout | Write to file instead of stdout (recommended for large results) |
| | Wait time for JS rendering in milliseconds |
| | Per-URL timeout in seconds |
| | Max characters per page |
| | URLs per batch (Chrome restarts between batches for stability) |
| auto | CDP debugging port (default: auto-detect free port) |
---[
{
"url": "https://news.google.com/rss/articles/...",
"final_url": "https://www.theguardian.com/actual-article",
"success": true,
"content": "Article text content..."
}
][
{
"url": "https://example.com/broken",
"success": false,
"error": "Page load timeout"
}
]--headless=new --remote-debugging-port=PORT --user-data-dir=TMPDIRPage.navigateloadEventFiredRuntime.evaluateDOM.getOuterHTMLtrafilatura--user-data-dir| Platform | Chrome Paths Checked |
|---|---|
| macOS | |
| Linux | |
| Windows | |
PATH127.0.0.1