/fetch -- Ad-hoc URL fetch with smart extraction
SkillDev toolsSize-efficient URL fetch with semantic extraction. Use for ad-hoc web research when you want content without the raw HTML overhead.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /fetch -- Ad-hoc URL fetch with smart extraction skill
What this skill tells your AI
The instructions your AI receives, as published by grainulation/grainulator in skills/fetch/SKILL.md and read by ahel’s review.
Pulls a URL's main content (title, description, body paragraphs) without the HTML boilerplate. Delegates to silo's smart-fetch MCP tool, which strips scripts/styles/nav/footer and targets <main> or <article> regions. Typical reduction: 80-99% vs raw HTML.
Arguments
$ARGUMENTS
Expected: /fetch <url> [--mode auto|concise|full|meta-only] [--no-cache] [--privacy]
--mode auto(default): tries concise extraction, falls back to full if quality degrades--mode concise: caps body at ~2KB--mode full: returns all extracted paragraphs--mode meta-only: only title + description (smallest)--no-cache: skip local cache read, force network fetch--privacy: don't write to cache (use for sensitive URLs)
When to use
- Quick reference: "what does this page say" —
/fetch <url>beats opening a browser - Before witnessing: peek at content before committing to
/witness(which creates a claim) - Third-party pages: docs sites, blog posts, research articles
- Re-reading: cache hits are ~1ms; great for iterating on content you've already fetched
When NOT to use
- Confluence: use
/pull— structured API is better than HTML scraping - DeepWiki: use
/pull deepwiki— it already has a cleaner path - Authenticated pages: smart-fetch doesn't do auth. Use farmer for approval-gated flows.
- PDFs, images, JSON: smart-fetch rejects non-HTML content types with
unsupported-content-type
Instructions
-
Call
mcp__silo__silo_smart-fetchwith the URL and parsed flags. -
If the response
qualityis "failed" (empty body, SPA, link list, HTTP error), tell the user:- What the reported quality was
- Any warnings returned
- Suggest retrying with
--mode fullor rawWebFetchas a fallback
-
Display the extracted content in a readable format:
- Title, description
- Full content (or first N lines if very long)
- Size reduction metric and cache hit/miss status
-
Suggest next actions based on what the user seems to be doing:
- If they're corroborating a claim:
/witness <claim_id> <url> --smart - If they want to save findings:
/research "<topic extracted from content>" - If the content was weak/failed:
/fetch <url> --mode fullor open in a browser
- If they're corroborating a claim:
Example output
URL: https://example.com/article
Quality: high | Cached: no (first fetch)
Title: "Understanding Smart Fetch"
Size: 142.1 KB -> 2.3 KB (98% reduction)
Mode used: concise
Elapsed: 340ms
--- Content ---
[first 2KB of extracted main content]
Next steps:
/witness r003 <url> --smart -- corroborate a claim with this source
/fetch <url> --mode full -- get the full extracted body
silo cache stats -- see what's cached locally
Anti-rationalization
| Rationalization | Reality |
|---|---|
| "Smart-fetch lost content" | Check the quality field. If "failed", retry with --mode full. If "degraded", the site may be a SPA — content depends on JS execution. |
| "I should always use full mode" | Full is fine for small pages but wasteful on long docs. auto handles the fallback for you. |
| "Cached content might be stale" | Default TTL is 7 days. Use --no-cache for latest, or silo cache purge <domain> to drop specific entries. |
Signals
- GitHub stars
- 86
- Forks
- 6
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
fetch- Source
- github.com/grainulation/grainulator