Loading...
Loading...
Crawl/scrape a website or single page into clean LLM-ready MARKDOWN. Use when the user wants to fetch a URL's content, scrape a site, extract an article/page as text, pull docs from the web into the wiki, or "crawl this link". Markdown (not raw HTML) = 5-10x fewer tokens. Built-now- adapt-later: works offline with no key via a builtin urllib→markdown backend; premium backends (Firecrawl/Crawl4AI/Jina) are a one-config adapter.
npx skill4agent add rheinmir/setup web-crawlharness/web-crawl.config.yamlverified:falseraw/raw//web-clonewiki//proposeingestURL → backend (WebFetch in-session · builtin urllib+regex · premium adapter firecrawl/crawl4ai/jina) → markdown → raw/ or wiki draft → /propose or ingest → wiki| Field | Required? | Ý nghĩa | |
|---|---|---|---|
| In | URL | có | page or site to fetch; or a local |
| In | | không | where to save; convention |
| In | premium backend config | không | |
| Out | markdown file | có | clean text in |
| Out | backend disclosure | có | which backend produced it; builtin quality limits stated, never passed off as premium |
python3 harness/scripts/web-crawl.py --self-testraw/| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | judgment | URL, session type | JS-heavy / rendered site in an agent session → WebFetch tool (B01) | markdown | not in session → W02 |
| W02 | effect | URL | Scripted single static page: | | JS/whole-site need → W03 |
| W03 | effect | config | Real crawling → wire premium backend in | premium output | not wired → report limit, do not claim |
| W04 | effect | markdown | Land in | file saved | never into |
python3 harness/scripts/web-crawl.py fetch "<URL>" --out raw/<slug>.mdbuiltinurllibweb-crawl.py md <file.html>backend: firecrawl|crawl4ai|jinaapi_key_envendpointharness/web-crawl.config.yamlverified:trueraw//proposeingestwiki/| ID | Kind | Guard | Hành vi | Skip / failure | Rejoin |
|---|---|---|---|---|---|
| B01 | capability_optional | running in an agent session with WebFetch, page is JS-heavy | use WebFetch instead of the builtin script | no WebFetch → W02 builtin (no JS render, partial) | W04 |
| B02 | capability_optional | premium backend configured and | crawl via firecrawl/crawl4ai/jina adapter (JS, whole-site) | not wired → stay on builtin, state its limits (RULE-03) | W04 |
| B03 | user_optional | local HTML already downloaded | | — | W04 |
python3 harness/scripts/web-crawl.py --self-testraw/python3 harness/scripts/web-crawl.py fetch "https://example.com/blog/post" --out raw/example-post.mdingestverified:falseharness/web-crawl.config.yamlharness/scripts/web-crawl.pyharness/web-crawl.config.yamlgithub.com/mendableai/firecrawlgithub.com/unclecode/crawl4ai/web-clonebuild-now-adapt-later