crw-dedd16 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited crw-dedd16 (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The open-source alternative to Firecrawl. One static binary, ~50 MB RAM idle, Firecrawl-compatible REST API on both /v1/* and /v2/*, first-class MCP, and a bundled SearXNG search backend — self-host free or use the managed api.fastcrw.com.
This is the hub skill. It tells you which verb to reach for and in what order. Each verb has its own focused skill — load it when you commit to that step.
crw --version # binary on PATH? (brew install us/crw/crw)crw_scrape, crw_search, …) — seecrw-self-host for setup, or run zero-install with npx crw-mcp.
CRW_API_KEY=crw_live_…and CRW_API_URL=https://api.fastcrw.com (free tier: 500 one-time lifetime credits, never resets).
Climb the ladder in order. Stop at the cheapest rung that answers the need. Don't reach for a heavier verb than the task requires.
| Step | Verb | Use when | Surface | Skill |
|---|---|---|---|---|
| 1 | search | You have a question/topic, not a URL. SearXNG-backed, self-hosted, no key. | CLI · MCP · REST | crw-search |
| 2 | scrape | You have one (or a few) known URLs and want clean content. | CLI · MCP · REST | crw-scrape |
| 3 | map | You need to discover which URLs exist on a site (fast, no content). | CLI · MCP · REST | crw-map |
| 4 | crawl | You need content from many pages under a site/section. | CLI · MCP · REST | crw-crawl |
| 5 | parse | The source is a local/remote file (PDF), not a web page. | MCP (crw_parse_file) · REST /v2/parse — no standalone CLI verb | crw-parse |
| 6 | extract | You need a typed JSON object out of a page, against a schema. | crw scrape --extract · REST /v2/extract — no standalone CLI verb | crw-extract |
| 7 | watch | You want to detect what changed between two snapshots. | REST /v1/change-tracking/diff — no CLI verb | crw-watch |
Common chains:
search → pick a URL → scrape it (or pass scrapeOptions to crw_search / REST /v1/search to do both in one call)map a docs site → filter the returned URLs for /docs/api/authentication → scrape that one pagemap → estimate size → crawl a bounded section → save to filesLoad crw-dynamic-search — filter raw JSON in a subprocess so only the distilled answer reaches the model. The single biggest token-saver in this set.
crw-best-practices and the crw-build-* skills, not the CLI skills.
a one-line base_url swap.
The skills show all three; pick what's available:
crw scrape …) — best when the binary is on PATH. One-shot, scriptable.crw_scrape, crw_search, crw_parse_file, crw_check_crawl_status, …) — best inside an agent harness.Embedded mode runs the engine in-process (~6 MB); proxy mode forwards to a REST endpoint via CRW_API_URL. Use crw_parse_file for PDF/file parsing and crw_check_crawl_status to poll async crawl jobs.
curl … /v1/scrape) — best for portability / drop-in Firecrawl SDK use..crw/), never stream a whole crawlto stdout. Read incrementally with grep/head/jq.
crw_map to 100 URLs) and marktruncated: true. Pass maxLength: 0 / limit: 0 to opt out.
& + wait, or multiple MCP calls).renderJs auto-detects; no separate browser step./v1/change-tracking/diff) — a stateless diff primitiveFirecrawl only offers as a managed feature.
/v1/{scrape,crawl,map,search} + /v2/{scrape,crawl,map,search,batch/scrape,parse,extract}~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.