Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Fetch and analyze web content using a specialised extraction workflow that converts HTML to clean markdown, extracts main article content, handles images and links, and provides AI analysis. Use this when you need cleaner page extraction than a raw fetch, when comparing a small set of URLs, or when the user asks to fetch, extract, analyse, summarise, or compare web pages. Prefer native web_fetch for straightforward cooperative pages; if the target URL is blocked by anti-bot or JS-only rendering,
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 78% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 178% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 71% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 47% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 6% | 0% |
Fetch and analyze web content by calling a specialized sub-agent that uses the webfetch script.
Use this as a clean single-page / few-page extraction tier:
web_fetch for quick cooperative pagescamofox before escalating to any paid proxy pathTo fetch and analyze web content, invoke the webfetch sub-agent:
Fetch a single URL: > Fetch and summarize: https://example.com
Fetch multiple URLs (max 5): > Fetch and compare: https://example.com and https://example2.com
Analyze specific content: > What are the main points on: https://example.com/article
Extract specific information: > Extract all email addresses from: https://example.com/contact
The sub-agent will:
Keep the order narrow and cheap:
web_fetch or this script workflow first.camofox.camofox also fails and the blocked URL is genuinely important, ask before using residential-proxy.Do not automatically turn a small fetch task into a proxy-backed workflow.
The webfetch script requires these Python packages:
bashpip install --break-system-packages trafilatura requests beautifulsoup4
trafilatura - Main content extraction and HTML→markdown conversion requests - HTTP client for fetching URLs beautifulsoup4 - Link and image extraction
This approach avoids external APIs and local LLMs while providing intelligent analysis.
CRITICAL: When you are the sub-agent for this skill, you MUST follow these instructions exactly:
webfetch function - Use the Python script insteadWhen asked to fetch web content, follow this EXACT process:
Step 1: Run the webfetch.py script
bashpython3 ./skills/webfetch-skill/scripts/webfetch.py --url "URL_HERE" --output ./tmp/webfetch-skill/FILENAME.md
For multiple URLs (max 5), run separately for each URL or use --url multiple times:
bashpython3 ./skills/webfetch-skill/scripts/webfetch.py --url "URL1" --url "URL2" --url "URL3" --output ./tmp/webfetch-skill/output.md
Step 2: Read the generated markdown file(s)
bashUse the Read tool to read: ./tmp/webfetch-skill/FILENAME.md
Step 3: Analyze the content
Step 4: Return results
./skills/webfetch-skill/scripts/webfetch.py./tmp/webfetch-skill/When invoking this sub-agent, use a prompt like:
Fetch and analyze content from these URLs using the webfetch script:
- https://example.com/page1
- https://example.com/page2
DO NOT use MCP tools. Use ONLY the python3 script at ./skills/webfetch-skill/scripts/webfetch.py.
Save output to ./tmp/webfetch-skill/ and read the files.You can also run the webfetch script directly without the sub-agent:
bash# Basic fetch python3 scripts/webfetch.py --url "https://example.com" # Multiple URLs python3 scripts/webfetch.py --url "https://example.com" --url "https://example2.com" # Disable cache python3 scripts/webfetch.py --url "https://example.com" --no-cache # Set timeout python3 scripts/webfetch.py --url "https://example.com" --timeout 30 # Save to file python3 scripts/webfetch.py --url "https://example.com" --output content.md
| Parameter | Required | Default | Description | |-----------|----------|---------|-------------| | --url, -u | Yes | - | URL to fetch (can be specified multiple times, max 5) | | --cache, -c | No | true | Enable/disable 15-minute cache | | --no-cache | No | - | Disable caching (alias for --cache=false) | | --timeout, -t | No | 10 | Request timeout in seconds | | --output, -o | No | - | Save output to file instead of stdout |
Trafilatura automatically identifies the main article body and removes boilerplate (navigation, ads, footers).
Extracts up to 10 images with:
Extracts up to 20 links with:
[text](url)15-minute file-based cache in ./tmp/webfetch-skill/:
When running the script directly, output is in markdown:
markdown# https://example.com _(from cache)_ ## Content Main content extracted from the page... ## Images - **Image Alt**: https://example.com/image.jpg ## Links - [Link Text](https://example.com/page)
When using the sub-agent, you get AI analysis instead of raw content.
Cannot access:
Potential issues:
The script handles common errors gracefully:
Errors are included in markdown output so sub-agent can inform you.
For optimal results:
--timeout 30)Example effective prompts:
This skill includes:
scripts/webfetch.py - Main fetch script with content extraction
Other measured skills in the registry, with their headline benchmark lift.