skills/firecrawl/SKILL.md
Use this skill for Firecrawl CLI web work: web search, URL scraping, site mapping, crawling, structured extraction, page interaction, monitoring changes, offline site download via x download, and parsing local documents such as PDF, DOCX, XLSX, HTML, DOC, ODT, or RTF. Trigger for requests to search the web, look up current info, fetch/read/scrape a URL, extract website data, crawl docs, click/fill/login/paginate a page, monitor page changes, save a site offline, or parse a document. Do not trigger for generic local file reads/edits, git/deploy/code tasks, or Firecrawl app integration work.
npx skillsauth add bjornmelin/dev-skills firecrawlInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use the Firecrawl CLI for live web search, URL extraction, site discovery, bulk crawls, browser-backed interaction, recurring monitors, offline site download, and local document parsing.
Use the installed CLI as command truth. Run firecrawl --help or
firecrawl <command> --help before relying on version-sensitive flags. This
skill is written for released firecrawl-cli 1.18.x behavior; do not teach or
use unreleased GitHub-main flags unless local help confirms them.
Do not run firecrawl init, firecrawl setup skills, or any Firecrawl
skill-install command from this skill. Those commands are user-manual only in
this environment so custom skills are not overwritten.
firecrawl --status.firecrawl <command> --help..firecrawl/ with -o; do not stream large page
content into the agent context.?, &, spaces, and brackets specially.For setup/auth troubleshooting, read references/install-auth.md. For output safety, read references/output-security.md. For local drift checks, run scripts/firecrawl-doctor.mjs.
Read references/command-selection.md for the full decision tree. Default order:
search when no exact URL is known.scrape when a URL is known.map when a site is known but the exact page is not.crawl when many pages from a site/section are needed.monitor when the user needs ongoing change tracking.agent when the user wants structured data from complex sites and provides
a schema, or schema-like target fields.interact only after scrape when content requires clicks, forms, login,
pagination, session state, or browser actions.parse for local documents, not URLs.x download when the user wants a local offline site copy.--limit on search, map, crawl, agent, and x download.map --search plus targeted scrape before broad crawls.crawl scoped with --include-paths, --exclude-paths, --max-depth,
and --wait.agent --max-credits and a schema for complex structured extraction.Prefer these short chains before opening a detailed reference. Read references/recipes.md for schema, monitor JSON, jq, output-shape probes, profile, feedback, and download variants.
Search with page content, inspect, then send feedback:
firecrawl search "query" --scrape --json -o .firecrawl/search-query.json
jq -r '.data.web[] | "\(.title): \(.url)"' .firecrawl/search-query.json
firecrawl search-feedback "$(jq -r '.id' .firecrawl/search-query.json)" --rating good --valuable-sources '[{"url":"https://example.com","reason":"Useful result"}]' --silent &
Find a page on a known site, then scrape it:
firecrawl map "https://docs.example.com" --search "authentication" --json -o .firecrawl/map-auth.json
firecrawl scrape "https://docs.example.com/auth-page" -o .firecrawl/auth-page.md
Scoped docs crawl:
firecrawl crawl "https://docs.example.com" --include-paths /docs --limit 50 --wait --pretty -o .firecrawl/crawl-docs.json
Scrape, interact, then stop:
firecrawl scrape "https://example.com" --profile example-site
firecrawl interact "Click the pricing tab and extract the visible plans"
firecrawl interact stop
Parse a local document:
firecrawl parse "./report.pdf" -o .firecrawl/report.md
Offline docs copy:
firecrawl x download "https://docs.example.com" --include-paths /docs --format markdown,links --limit 50 -y
Basic recurring monitor:
firecrawl monitor create --name "Changelog" --schedule "every 30 minutes" --scrape-urls "https://example.com/changelog"
Create .firecrawl/ first and use names that encode command plus subject:
.firecrawl/search-<slug>.json
.firecrawl/search-<slug>-scraped.json
.firecrawl/map-<site>-<topic>.json
.firecrawl/scrape-<site>-<page>.md
.firecrawl/scrape-<site>-<page>.json
.firecrawl/crawl-<site>-<scope>.json
.firecrawl/agent-<task>.json
.firecrawl/monitor-<name>.json
.firecrawl/parse-<document>.md
.firecrawl/schema-<purpose>.json
Before finalizing web-data work, preserve enough evidence to audit the answer:
printf 'Command: %s\nArtifact: %s\n' \
'firecrawl scrape "https://example.com/page" -o .firecrawl/scrape-example-page.md' \
'.firecrawl/scrape-example-page.md' \
> .firecrawl/scrape-example-page.evidence.txt
rg -n "pricing|limit|changed|released" .firecrawl/scrape-example-page.md \
>> .firecrawl/scrape-example-page.evidence.txt
Final answers should cite source URLs and local artifact paths when Firecrawl evidence materially supports the claim.
firecrawl --status; see references/install-auth.md.--limit, narrow scope, or stop and report.--timeout, reduce scope, or use --wait-for for rendering.scrape with --wait-for; escalate to
interact only after a successful scrape.scrape first and pass --profile or
--scrape-id.jq, and rerun with --json
or --pretty.firecrawl <command> --help
and update the skill later.For Firecrawl SDK/API integration into an application, adding
FIRECRAWL_API_KEY to a project, or choosing product endpoints, do not use
this CLI skill as the implementation authority. Use the Firecrawl build skills
if installed. For outcome deliverables such as research briefs, SEO audits,
lead lists, QA reports, or design extraction, use the dedicated Firecrawl
workflow skills if installed.
Use .firecrawl/ for fetched or parsed output unless the user explicitly wants
inline content:
mkdir -p .firecrawl
firecrawl search "query" --json -o .firecrawl/search-query.json
firecrawl scrape "https://example.com/page" -o .firecrawl/example-page.md
Inspect output incrementally:
wc -l .firecrawl/example-page.md
head -80 .firecrawl/example-page.md
rg -n "pricing|authentication" .firecrawl/example-page.md
Single-format scrape/parse output is raw content. Multiple formats usually
return JSON. When using search --scrape, do not re-scrape those result URLs
unless the scraped payload is missing what the task needs.
For command-specific output shapes and resilient jq probes, open the matching
reference file rather than a separate shape reference.
When maintaining this skill:
node scripts/firecrawl-doctor.mjs --json
node scripts/firecrawl-help-snapshot.mjs --output /tmp/firecrawl-help.json
The scripts are diagnostics only. They do not wrap Firecrawl operations and they do not install Firecrawl skills.
development
Repo/monorepo modernization: dependency upgrades, security fixes, deprecation cleanup, framework migrations, dependency-native refactors, and verified hard-cut simplification.
development
Use this skill for Browser Web Animations API: Element.animate(), Animation, KeyframeEffect, playback control, generated keyframes, cancel/finish, commitStyles, and cleanup. Trigger on Element.animate, WAAPI, Web Animations API, KeyframeEffect, Animation object, commitStyles. Do not use for near-miss tasks outside these boundaries; route to adjacent motion or platform skills when they own the implementation.
tools
Use this skill for Three.js, React Three Fiber, Drei, Canvas/createRoot lifecycle, loaders, GLTF, useFrame, disposal, SSR/client boundaries, DPR, and browser proof. Trigger on Three.js, THREE, @react-three/fiber, @react-three/drei, R3F Canvas, useFrame, GLTF, WebGLRenderer. Do not use for near-miss tasks outside these boundaries; route to adjacent motion or platform skills when they own the implementation.
development
Use this skill for Tailwind CSS v4 transition, animation, duration, easing, motion-safe/motion-reduce, @theme motion tokens, and static class safety. Trigger on Tailwind animation, transition-all, motion-safe, motion-reduce, @theme, animate-, duration-. Do not use for near-miss tasks outside these boundaries; route to adjacent motion or platform skills when they own the implementation.