Claude Agent Skill · by 0xbigboss

Web Fetch

Install Web Fetch skill for Claude Code from 0xbigboss/claude-code.

Install
Terminal · npx
$npx skills add https://github.com/0xbigboss/claude-code --skill web-fetch
Works with Paperclip

How Web Fetch fits into a Paperclip company.

Web Fetch drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.

S
SaaS FactoryPaired

Pre-configured AI company — 18 agents, 18 skills, one-time purchase.

$27$59
Explore pack
Source file
SKILL.md123 lines
Expand
---name: web-fetchdescription: Fetches web content as clean markdown by preferring markdown-native responses and falling back to selector-based HTML extraction. Use for documentation, articles, and reference pages at http/https URLs.--- # Web Content Fetching Fetch web content in this order:1. Prefer markdown-native endpoints (`content-type: text/markdown`)2. Use selector-based HTML extraction for known sites3. Use the bundled Bun fallback script when selectors fail ## Prerequisites Verify required tools before extracting: ```bashcommand -v curl >/dev/null || echo "curl is required"command -v html2markdown >/dev/null || echo "html2markdown is required for HTML extraction"command -v bun >/dev/null || echo "bun is required for fetch.ts fallback"``` Install Bun dependencies for the bundled script: ```bashcd ~/.claude/skills/web-fetch && bun install``` ## Default Workflow Use this as the default flow for any URL: ```bashURL="<url>"CONTENT_TYPE="$(curl -sIL "$URL" | awk -F': ' 'tolower($1)=="content-type"{print tolower($2)}' | tr -d '\r' | tail -1)" if echo "$CONTENT_TYPE" | grep -q "markdown"; then  curl -sL "$URL"else  curl -sL "$URL" \    | html2markdown \        --include-selector "article,main,[role=main]" \        --exclude-selector "nav,header,footer,script,style"fi``` ## Known Site Selectors | Site | Include Selector | Exclude Selector ||------|------------------|------------------|| platform.claude.com | `#content-container` | - || docs.anthropic.com | `#content-container` | - || developer.mozilla.org | `article` | - || github.com (docs) | `article` | `nav,.sidebar` || Generic | `article,main,[role=main]` | `nav,header,footer,script,style` | Example: ```bashcurl -sL "<url>" \  | html2markdown \      --include-selector "#content-container" \      --exclude-selector "nav,header,footer"``` ## Finding the Right Selector When a site isn't in the patterns list: ```bash# Check what content containers existcurl -s "<url>" | grep -o '<article[^>]*>\|<main[^>]*>\|id="[^"]*content[^"]*"' | head -10 # Test a selectorcurl -sL "<url>" | html2markdown --include-selector "<selector>" | head -30 # Check line countcurl -sL "<url>" | html2markdown --include-selector "<selector>" | wc -l``` ## Universal Fallback Script When selectors produce poor output, run the bundled parser: ```bashbun ~/.claude/skills/web-fetch/fetch.ts "<url>"``` If already in the skill directory: ```bashbun fetch.ts "<url>"``` ## Options Reference ```bash--include-selector "CSS"  # Keep only matching elements--exclude-selector "CSS"  # Remove matching elements--domain "https://..."    # Convert relative links to absolute``` ## Troubleshooting **Empty output with selectors**: The page might be markdown-native. Check headers first: ```bashcurl -sIL "<url>" | grep -i '^content-type:'``` **Wrong content selected**: The site may have multiple article/main regions: ```bashcurl -s "<url>" | grep -o '<article[^>]*>'``` **`html2markdown` not found**: Install it, then retry selector-based extraction. **`bun` or script deps missing**: Run `cd ~/.claude/skills/web-fetch && bun install`. **Missing code blocks**: Check if the site uses non-standard code formatting. **Client-rendered content**: If HTML only has "Loading..." placeholders, the content is JS-rendered. Neither curl nor the Bun script can extract it; use browser-based tools.