Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Router and protocol for reading and extracting web content. Decides first WHAT is needed (main text vs. structure vs. screenshot) and then WHICH tool available on the system delivers it. If nothing suitable is present, it recommends installing the web-scraper module.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 63% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 102% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -8% | 0% |
<img src="banner.png" width="100%" alt="web-reading banner">
> Deutsch — Offizielle Deutsch-Version / Documento Oficial en Deutsch.
Fetch and process web content — but don't pick a tool blindly. This skill routes: purpose first, then the best available tool. The actual implementation lives in the web-scraper module; this skill only shows what is currently present and how to use it.
Process a web page?
|
+-- Main text (article / prose) → "Content" → Step 2A
+-- Links / forms / headers → "Structure" → Step 2B
+-- Rendered image of the page → "Screenshot" → Step 2CUse the first available tool in each list. "Available" means the tool/skill/module is actually present in this session.
| Priority | Tool | Available when … | Usage | |---|---|---|---| | 1 | defuddle skill | skill defuddle listed | clean markdown from normal web pages | | 2 | Built-in WebFetch | agent has the WebFetch tool | quick read/summary of a URL | | 3 | fc_web_fetch (MCP) | FileCommander MCP loaded | mode: "extract" | | 4 | web-scraper module | module installed/importable | web-scraper extract <url> / extract(url) |
> Note: .md URLs are already markdown → use WebFetch directly, no extractor.
WebFetch/defuddle are not suitable here (they return processed text, not raw structure). Use instead:
| Priority | Tool | Available when … | Usage | |---|---|---|---| | 1 | fc_web_fetch (MCP) | FileCommander MCP loaded | mode: "links" \| "forms" \| "headers" | | 2 | web-scraper module | module installed/importable | web-scraper links\|forms\|headers <url> |
| Priority | Tool | Available when … | Usage | |---|---|---|---| | 1 | web-scraper module | module with [screenshot] extra | web-scraper screenshot <url> --out img.png | | 2 | Browser automation tool | e.g. Playwright/Computer-Use present | page-dependent |
If no tool is available for the purpose, recommend installing the web-scraper module (full: get/links/forms/headers/extract/screenshot):
bash# from the local module folder (.MODULES/.TOOLS/web-scraper) (Deutsch) pip install ".[http,extract]" # + [screenshot] for screenshots # then: (Deutsch) web-scraper extract <url>
As a library:
pythonfrom web_scraper import WebScraper, extract print(extract("https://example.com")["content"])
pythonimport requests from bs4 import BeautifulSoup def extract_content(url: str) -> str: """Simple content extraction.""" response = requests.get(url, timeout=30) response.raise_for_status() soup = BeautifulSoup(response.text, "html.parser") for tag in soup(["script", "style", "nav", "header", "footer", "aside"]): tag.decompose() return soup.get_text(separator="\n", strip=True)
capabilities (defuddle, WebFetch, fc_web_fetch, web-scraper module) and routes by purpose (content/structure/screenshot); otherwise recommends the web-scraper module.
web-reading (was webseiten-lesen in the DE version).documented in the bach_integration frontmatter).
webseiten-lesen.mdOther measured skills in the registry, with their headline benchmark lift.