agentsclimarketplace

Firecrawl

Skill BjornMelin/dev-skills/skills/firecrawl

AgentSkills library: reusable skills for AI coding agents (AI SDK, Codex, LangGraph, Supabase, Docker, Vitest, pytest, Streamlit, Zod).

Install
npx -y skills add BjornMelin/dev-skills --skill firecrawl

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 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

Firecrawl CLI for web data. Use to search the web, scrape or fetch a URL, map or crawl a site, extract structured data, interact with a page by clicking or filling or paginating, monitor changes, download a site offline, or parse local PDF, DOCX, XLSX and HTML documents.

The file declares its own license as ISC. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

10.0 KB, ~2.4k tokens by cl100k_base, as published. Nobody here has run it

Firecrawl CLI

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.19.x behavior; do not teach or use unreleased GitHub-main flags unless local help confirms them.

Do not run firecrawl init, firecrawl setup skills, firecrawl setup mcp, firecrawl launch, or firecrawl make default from this skill unless the user explicitly asks for Firecrawl workstation maintenance. Those commands can modify installed skills, MCP config, or native web-provider defaults.

First Checks

  1. Check setup with firecrawl --status.
  2. If a command or flag matters, confirm it with firecrawl <command> --help.
  3. Before paid Firecrawl commands, check .firecrawl/ for reusable artifacts with scripts/firecrawl-cache-index.mjs; see references/cache-reuse.md.
  4. Write large outputs to .firecrawl/ with -o; do not stream large page content into the agent context.
  5. Quote URLs and paths. Shells treat ?, &, spaces, and brackets specially.
  6. Use deterministic artifact names so follow-up commands can find evidence.
  7. Do not send private, confidential, repo-proprietary, or secret-bearing material to Firecrawl unless the user explicitly permits external processing.

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.

Command Selection

Read references/command-selection.md for the full decision tree. Default order:

  1. search when no exact URL is known.
  2. scrape when a URL is known.
  3. map when a site is known but the exact page is not.
  4. crawl when many pages from a site/section are needed.
  5. monitor when the user needs ongoing change tracking.
  6. agent when the user wants structured data from complex sites and provides a schema, or schema-like target fields.
  7. interact only after scrape when content requires clicks, forms, login, pagination, session state, or browser actions.
  8. parse for local documents, not URLs.
  9. x download when the user wants a local offline site copy.
  10. research only for Firecrawl-native public arXiv or GitHub-history research, and verify important claims against the underlying source.
  11. doctor and feedback for diagnostics and concise upstream quality feedback.

Scope And Cost Defaults

  • Use --limit on search, map, crawl, agent, and x download.
  • Reuse fresh local .firecrawl artifacts before spending credits.
  • Prefer map --search plus targeted scrape before broad crawls.
  • Keep crawl scoped with --include-paths, --exclude-paths, --max-depth, and --wait.
  • Use agent --max-credits and a schema for complex structured extraction.
  • Use --redact-pii for contact pages, PDFs, user-generated pages, lead research, or anything likely to enter logs, shared artifacts, or vector stores.
  • Do not crawl whole domains, allow external links, or allow subdomains unless the user explicitly needs that breadth.

Default Recipes

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 local cache before fetching a known URL:

FIRECRAWL_SKILL_DIR="${FIRECRAWL_SKILL_DIR:-$HOME/.agents/skills/firecrawl}"
node "$FIRECRAWL_SKILL_DIR/scripts/firecrawl-cache-index.mjs" find \
  --url "https://example.com/page" \
  --intent docs \
  --json

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"

Artifact Names

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
.firecrawl/index.jsonl

Evidence Closeout

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.

Failure Recovery

  • Auth/401: run firecrawl --status; see references/install-auth.md.
  • Credits/402 or rate limit: reduce --limit, narrow scope, or stop and report.
  • Failed run/job: use firecrawl doctor --json or firecrawl doctor <job-id> --query "why did this run fail?".
  • Timeout: add --timeout, reduce scope, or use --wait-for for rendering.
  • Blocked or JS-heavy page: retry scrape with --wait-for; escalate to interact only after a successful scrape.
  • Monitor unavailable: report the account/retention limitation and use one-off scrape plus local diff instead.
  • Missing interact session: run scrape first and pass --profile or --scrape-id.
  • Malformed JSON: save raw output, validate with jq, and rerun with --json or --pretty.
  • CLI help differs from this skill: trust local firecrawl <command> --help and update the skill later.

Reference Loading

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.

Output Defaults

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.

Validation

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.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.