Back to list
leobrival

website-crawler

by leobrival

Serum plugin for Claude Code

0🍴 0📅 Jan 20, 2026

SKILL.md


Website Crawler

High-performance web crawler with TypeScript/Bun frontend and Go backend for discovering and mapping website structure.

When to Use

Use this skill when users ask to:

  • Crawl a website or "spider a site"
  • Map site structure or "discover all pages"
  • Find all URLs on a website
  • Generate sitemap or site report
  • Analyze link relationships between pages
  • Audit website coverage or completeness
  • Extract page metadata (titles, status codes)

Keywords: crawl, spider, map, discover pages, site structure, sitemap, all URLs, website audit

Quick Start

Run the crawler from the scripts directory:

cd ~/.claude/scripts/crawler
bun src/index.ts <URL> [options]

CLI Options

OptionShortDefaultDescription
--depth-D2Maximum crawl depth
--workers-w20Concurrent workers
--rate-r2Rate limit (requests/second)
--profile-p-Use preset profile (fast/deep/gentle)
--output-oautoOutput directory
--sitemap-strueUse sitemap.xml for discovery
--domain-dautoAllowed domain (extracted from URL)
--debug-falseEnable debug logging

Profiles

Three preset profiles for common use cases:

ProfileWorkersDepthRateUse Case
fast50310Quick site mapping
deep20103Thorough crawling
gentle551Respect server limits

Usage Examples

Basic crawl

bun src/index.ts https://example.com

Deep crawl with high concurrency

bun src/index.ts https://example.com --depth 5 --workers 30 --rate 5

Using a profile

bun src/index.ts https://example.com --profile fast

Gentle crawl (avoid rate limiting)

bun src/index.ts https://example.com --profile gentle

Output

The crawler generates two files in the output directory:

  1. results.json - Structured crawl data with all discovered pages
  2. index.html - Dark-themed HTML report with statistics

Results JSON Structure

{
  "stats": {
    "pages_found": 150,
    "pages_crawled": 147,
    "external_links": 23,
    "errors": 3,
    "duration": 45.2
  },
  "results": [
    {
      "url": "https://example.com/page",
      "title": "Page Title",
      "status_code": 200,
      "depth": 1,
      "links": ["..."],
      "content_type": "text/html"
    }
  ]
}

Features

  • Sitemap Discovery: Automatically finds and parses sitemap.xml
  • Checkpoint/Resume: Auto-saves progress every 30 seconds
  • Rate Limiting: Token bucket algorithm prevents server overload
  • Concurrent Crawling: Go worker pool for high performance
  • HTML Reports: Dark-themed, mobile-responsive reports

Troubleshooting

Rate limiting errors

Reduce the rate limit or use the gentle profile:

bun src/index.ts <url> --rate 1
# or
bun src/index.ts <url> --profile gentle

Go binary not found

The TypeScript frontend auto-compiles the Go binary. If compilation fails:

cd ~/.claude/scripts/crawler/engine
go build -o crawler main.go

Timeout on large sites

Reduce depth or increase workers:

bun src/index.ts <url> --depth 1 --workers 50

Architecture

For detailed architecture, Go engine specifications, and code conventions, see reference.md.

  • Command: plugins/crawler/commands/crawler.md
  • Reference: plugins/crawler/skills/website-crawler/reference.md
  • Scripts: plugins/crawler/skills/website-crawler/scripts/
  • Profiles: plugins/crawler/skills/website-crawler/scripts/config/profiles/

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon