Crawl sources
Local-first semantic search across tens of thousands of agent skills (SKILL.md) for Claude Code, Codex & OpenClaw — describe your task, get ranked matches with install commands. FAISS + Ollama, no API calls.
npx -y skills add yya007/SkillFinder --skill crawl-sourcesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Crawl all SkillFinder data sources (SkillsMP, ClawHub, SkillHub, Anthropic marketplace, GitHub topics) and write fresh raw JSONL files to data/raw/. Runs crawlers in parallel; supports incremental resume and per-source limits.
SKILL.md
4.9 KB, as published. Nobody here has run it
crawl-sources
Crawl all skill registries and refresh the raw data files in data/raw/.
This skill covers the crawl step only — it does not normalize, embed, or
rebuild the index. Run update-index afterward to turn fresh raw data into a
searchable index.
Prerequisites
GITHUB_TOKENenv var set (required by SkillsMP, ClawHub, and topic crawlers)- Python dependencies installed:
pip install -r requirements-dev.txt
Agent Instructions
When this skill triggers, determine scope from the user's request:
| User says | Scope |
|---|---|
| "crawl everything" / "all sources" | Run all five crawlers (default) |
| "crawl skillsmp" / "crawl github" | SkillsMP only |
| "crawl clawhub" / "crawl openclaw" | ClawHub only |
| "crawl skillhub" | SkillHub only |
| "crawl marketplace" / "crawl anthropic" | Marketplace only |
| "crawl topics" / "crawl github topics" | Topic crawler only |
| "quick test" / "limit N" | Add --limit N to each crawler |
Step 1 — Check prerequisites
echo "${GITHUB_TOKEN:0:4}..."
If empty, stop:
"Set
GITHUB_TOKENbefore crawling:export GITHUB_TOKEN=ghp_..."
mkdir -p data/raw
Step 2 — Run crawlers
All sources (parallel — default):
python -m crawlers.skillsmp_crawler -o data/raw/skillsmp.jsonl &
python -m crawlers.clawhub_crawler -o data/raw/clawhub.jsonl &
python -m crawlers.skillhub_crawler -o data/raw/skillhub.jsonl &
python -m crawlers.marketplace_crawler -o data/raw/marketplace.jsonl &
python -m crawlers.topic_crawler -o data/raw/topic.jsonl --data-dir data/raw &
wait
Single-source variants (use when user targets one source):
# SkillsMP (GitHub code search for SKILL.md files; ~30 min full run)
python -m crawlers.skillsmp_crawler -o data/raw/skillsmp.jsonl
# ClawHub / OpenClaw (awesome-list + org/topic discovery)
python -m crawlers.clawhub_crawler -o data/raw/clawhub.jsonl
# SkillHub (HTML scrape with pagination)
python -m crawlers.skillhub_crawler -o data/raw/skillhub.jsonl
# Anthropic official marketplace
python -m crawlers.marketplace_crawler -o data/raw/marketplace.jsonl
# GitHub topic tags (claude-skill, codex-skill, agent-skill, …)
python -m crawlers.topic_crawler -o data/raw/topic.jsonl --data-dir data/raw
Useful flags (apply to any crawler):
| Flag | Effect |
|---|---|
--limit N | Cap at N records — use for quick tests |
--mode incremental | Skip repos already present in the output file (preferred over --resume) |
--mode full | Complete re-crawl (default) |
--mode metadata | Refresh stars/ETags only, skip content fetch |
--mode discover | Only fetch repos pushed since last run (date-filtered search) |
--resume | Deprecated — use --mode incremental instead |
--since YYYY-MM-DD | Only include repos pushed after this date (SkillsMP) |
--log-level DEBUG | Verbose output |
--filter-cache FILE | Path to dedup cache (default: data/filter_cache.jsonl) |
Orchestrator (runs all crawlers in the right order):
python pipeline/update_crawl.py --mode incremental
python pipeline/update_crawl.py --mode full --sources clawhub,skillsmp
python pipeline/update_crawl.py --mode incremental --chain # also runs normalize/embed/build
Step 3 — Report record counts
After all crawlers finish:
for f in data/raw/skillsmp.jsonl data/raw/clawhub.jsonl data/raw/skillhub.jsonl data/raw/marketplace.jsonl data/raw/topic.jsonl; do
[ -f "$f" ] && echo "$(wc -l < $f) $(basename $f)"
done
Report the counts to the user. Flag any source with 0 records as a potential failure.
Step 4 — Suggest next step
If crawl succeeded, offer:
"Raw data is refreshed. Run the
update-indexskill to normalize, embed, and rebuild the FAISS index — or run it now?"
If the user says yes, hand off to the update-index skill starting at its Step 3 (Backfill metadata).
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| SkillsMP returns 0 records | Rate limit or bad token | Check GITHUB_TOKEN; retry with --limit 50 |
| ClawHub hangs | GitHub API slow | Add --limit 200 for a quick run |
| SkillHub returns few records | Site structure changed | Run with --log-level DEBUG and inspect HTML |
filter_cache.jsonl grows large | Normal — dedup cache | Safe to delete; will be rebuilt on next run |