Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ARCASSystems/FounderOS --skill web-fetch-extractgit clone --depth 1 https://github.com/ARCASSystems/FounderOSWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/arcassystems/founderos/web-fetch-extract)<a href="https://agentmods.dev/skills/arcassystems/founderos/web-fetch-extract"><img src="https://agentmods.dev/badge/skills/arcassystems/founderos/web-fetch-extract/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/arcassystems/founderos/web-fetch-extract"><img src="https://agentmods.dev/badge/skills/arcassystems/founderos/web-fetch-extract.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00110 | $0.01330 |
| Opus 5.5 | $0.00044 | $0.00532 |
| Sonnet 5.5 | $0.00022 | $0.00266 |
| Haiku 4.5 | $0.00011 | $0.00133 |
Grade A, and why
web-fetch-extract scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Web Fetch + Extract
Runs on: local-exec - runs a local script; on a cloud surface I read the results, I do not run it.
Generic skill for pulling a URL into context and extracting whatever the calling skill or user asked for. No LLM API call - extraction is the model's reasoning over the fetched HTML or text. No API key needed.
Dependencies
scripts/scrape.py needs three Python packages for the default path, and one optional package for JS-rendered pages:
pip install httpx selectolax tenacity
Optional, only for --render (JS-walled pages):
pip install playwright
python -m playwright install chromium
The script imports Playwright lazily, so the three core packages are enough unless you actually pass --render. If a required package is missing, the script errors clearly and this skill falls back to the WebFetch tool.
Pre-flight
If scripts/scrape.py does not exist, fall back to the WebFetch tool for the whole flow and tell the user the script is missing.
Inputs
The skill receives two things:
- URL - a single fully-qualified URL.
- Extraction goal - natural language describing what to pull. Examples: "bio + role + recent posts", "leadership team names and titles", "title + meta description", "the three pricing tiers and what is in each".
Procedure
-
Decide render mode. Default to no JS render. Add
--renderonly if the user explicitly says the page is JS-heavy or a first attempt returns near-empty HTML or text. Playwright is not installed by default. If--renderis requested and Playwright is missing, the script errors clearly - fall back toWebFetchand note the gap. -
Pick the lightest extraction mode for the goal.
- Title + description / OG tags only:
python scripts/scrape.py <url> --extract meta - OG-only payload:
python scripts/scrape.py <url> --extract og - All outbound links (for example discovering a sitemap or About page):
python scripts/scrape.py <url> --extract links - Text body (cleaned):
python scripts/scrape.py <url> --extract text(optionally--selector "main"or similar) - Full HTML for messy parsing:
python scripts/scrape.py <url>
- Title + description / OG tags only:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago Changed d2b2e145f4cd
- 1mo ago First seen · 92 lines · 110 tokens per session scan A 3810c1a9b047
web-fetch-extract is a skill published in the GitHub repository ARCASSystems/FounderOS (6 stars, last pushed 3d ago), licensed MIT. It adds 110 tokens to every session and 1,330 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
firecrawl-build
Integrate Firecrawl into application code whenever a product, agent, or workflow needs web data inside the app — web search, live search results, page scraping, structured extraction, or browser interaction. Use when building any feature that needs data from the web in code, even if the user does not mention Firecrawl…
firecrawl-build-scrape
Integrate Firecrawl /scrape into product code for single-page extraction. Use when an app already has a URL and needs markdown, HTML, links, screenshots, metadata, or structured page output. Prefer this skill over broader crawl patterns when the feature is page-level.
firecrawl-build-interact
Integrate Firecrawl /interact into product code for dynamic pages and browser actions after scraping. Use when a feature needs clicks, form fills, pagination, authentication-aware flows, or other multi-step interactions that plain /scrape cannot complete.
web-scraping
Fetches web pages and extracts structured data using mq's toolchain (mq-crawl for fetching/crawling/JS rendering, mq for HTML-to-Markdown selector-based extraction, http() for in-query requests). Use when the user wants to scrape a URL, pull structured data out of a webpage, crawl a site, or turn HTML into…
anakinscraper
Scrape any website into clean markdown or structured JSON. Anti-detect browser, smart proxy rotation, AI-powered data extraction.
Multi-Platform Research
Free read & search access to 16+ platforms — Twitter, YouTube, Reddit, GitHub, web, RSS, and more — via Agent Reach.