Agent skill

Firecrawl

by CraftOS-dev in CraftOS-dev/CraftBot

Search, scrape, and interact with the web via the Firecrawl CLI.

MITAuto-check: notesData & Analytics

Install Firecrawl

skills CLI
$ npx skills add CraftOS-dev/CraftBot --skill firecrawl -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install CraftOS-dev/CraftBot firecrawl --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/CraftOS-dev/CraftBot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/firecrawl .claude/skills/firecrawl && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
firecrawl
GitHub stars
392
Token cost
~3.2k tokens
SKILL.md length
1,036 words
Files
3
Skills in repo
89
Repo updated
First seen
Licence
MIT

At a glance

Search, scrape, and interact with the web via the Firecrawl CLI.

  • Works in 5 steps: Search - No specific URL yet. Find… → Scrape - Have a URL. Extract its content… → Map + Scrape - Large site or need a… → …
  • The user wants to search the web
  • SKILL.md covers Prerequisites, Workflow, When to Load References and Output & Organization, plus 4 more sections
  • Calls jq; reaches firecrawl.dev and react.dev; needs FIRECRAWL_API_KEY

What it does

Firecrawl is an agent skill from CraftOS-dev/CraftBot. Search, scrape, and interact with the web via the Firecrawl CLI. Use this skill whenever the user wants to search the web, find articles, research a topic, look something up online, scrape a webpage, grab content from a URL, get data from a website, crawl documentation, download a site, or interact with pages that need clicks or logins. Also use when they say "fetch this page", "pull the content from", "get the page at https://", or reference external websites. This provides real-time web search with full page…

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `rules/install.md` and `rules/security.md`).

It sits in Data & Analytics, covering Web scraping and Web search. It works with Firecrawl and Git. The repository describes itself as: One agent. Every kind of work. The licence is MIT.

When your agent uses it

  • The user wants to search the web
  • Research a topic
  • Look something up online
  • Scrape a webpage

Example prompts

  • “fetch this page”
  • “pull the content from”
  • “get the page at https://”
  • “/firecrawl”

Requirements

  • Node.js
  • A credential in FIRECRAWL_API_KEY
  • Pre-approved tools (allowed-tools): Bash(firecrawl *), Bash(npx firecrawl *)

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Search - No specific URL yet. Find pages, answer questions, discover sources.
  2. Scrape - Have a URL. Extract its content directly.
  3. Map + Scrape - Large site or need a specific subpage. Use map --search to find the right URL, then scrape it.
  4. Crawl - Need bulk content from an entire site section (e.g., all /docs/).
  5. Interact - Scrape first, then interact with the page (pagination, modals, form submissions, multi-step navigation).

What it can do on your machine

Read from SKILL.md and the folder at commit b50970c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(firecrawl *)
    • Bash(npx firecrawl *)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • firecrawl.dev
    • react.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • FIRECRAWL_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Firecrawl loads about 3.2k tokens when it runs. Until then it costs about 178 tokens; SKILL.md has 1,036 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~178
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:182
    o an app, adding `FIRECRAWL_API_KEY` to `.env`, or choosing endpoint usage in product code** -> use the `firecrawl-build

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from CraftOS-dev/CraftBot at commit b50970c, republished under its MIT licence (© CraftOS-dev). 1,036 words, ~3,184 tokens.

Download SKILL.mdSave it as .claude/skills/firecrawl/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
firecrawl
description
Search, scrape, and interact with the web via the Firecrawl CLI. Use this skill whenever the user wants to search the web, find articles, research a topic, look something up online, scrape a webpage, grab content from a URL, get data from a website, crawl documentation, download a site, or interact with pages that need clicks or logins. Also use when they say "fetch this page", "pull the content from", "get the page at https://", or reference external websites. This provides real-time web search with full page content and interact capabilities — beyond what CraftBot can do natively with built-in tools. Do NOT trigger for local file operations, git commands, deployments, or code editing tasks.
allowed-tools
Bash(firecrawl *), Bash(npx firecrawl *)

Firecrawl CLI

Search, scrape, and interact with the web. Returns clean markdown optimized for LLM context windows.

Run firecrawl --help or firecrawl <command> --help for full option details.

If the task is to integrate Firecrawl into an application, add FIRECRAWL_API_KEY to a project, or choose endpoint usage in product code, use the firecrawl-build skills. If the task is an outcome workflow such as deep research, SEO audit, QA, lead generation, knowledge-base creation, dashboard reporting, shopping research, or website design-system extraction, use the firecrawl-workflows skills. They are already installed alongside this CLI skill when you run firecrawl init.

Prerequisites

Must be installed and authenticated. Check with firecrawl --status.

  🔥 firecrawl cli v1.8.0

  ● Authenticated via FIRECRAWL_API_KEY
  Concurrency: 0/100 jobs (parallel scrape limit)
  Credits: 500,000 remaining
  • Concurrency: Max parallel jobs. Run parallel operations up to this limit.
  • Credits: Remaining API credits. Each operation consumes credits.

If not ready, see rules/install.md. For output handling guidelines, see rules/security.md.

Before doing real work, verify the setup with one small request:

bash
mkdir -p .firecrawl
firecrawl scrape "https://firecrawl.dev" -o .firecrawl/install-check.md
bash
firecrawl search "query" --scrape --limit 3

Workflow

Follow this escalation pattern:

  1. Search - No specific URL yet. Find pages, answer questions, discover sources.
  2. Scrape - Have a URL. Extract its content directly.
  3. Map + Scrape - Large site or need a specific subpage. Use map --search to find the right URL, then scrape it.
  4. Crawl - Need bulk content from an entire site section (e.g., all /docs/).
  5. Interact - Scrape first, then interact with the page (pagination, modals, form submissions, multi-step navigation).
NeedCommandWhen
Find pages on a topicsearchNo specific URL yet
Get a page's contentscrapeHave a URL, page is static or JS-rendered
Find URLs within a sitemapNeed to locate a specific subpage
Bulk extract a site sectioncrawlNeed many pages (e.g., all /docs/)
AI-powered data extractionagentNeed structured data from complex sites
Interact with a pagescrape + interactContent requires clicks, form fills, pagination, or login
Download a site to filesdownloadSave an entire site as local files
Parse a local fileparseFile on disk (PDF, DOCX, XLSX, etc.) — not a URL
Watch pages for changesmonitorSchedule recurring scrapes/crawls, diff against snapshots

For detailed command reference, run firecrawl <command> --help.

Scrape vs interact:

  • Use scrape first. It handles static pages and JS-rendered SPAs.
  • Use scrape + interact when you need to interact with a page, such as clicking buttons, filling out forms, navigating through a complex site, infinite scroll, or when scrape fails to grab all the content you need.
  • Never use interact for web searches - use search instead.

Monitor: Schedule recurring scrapes or crawls and diff each result against the last retained snapshot. Use for product pages, docs, blogs, changelogs, competitor sites — any page where changes matter. Each check labels pages as same, new, changed, removed, or error, with webhook and email notification options.

Subcommands: create | list | get | update | delete | run | checks | check.

bash
# create from flags
firecrawl monitor create --name "Blog" --schedule "every 30 minutes" \
  --scrape-urls https://example.com/blog --email alerts@example.com

# or from JSON (positional file, or piped stdin)
firecrawl monitor create monitor.json
cat monitor.json | firecrawl monitor create

firecrawl monitor list --limit 20
firecrawl monitor run <monitorId>             # trigger a check now
firecrawl monitor checks <monitorId>          # list checks
firecrawl monitor check <monitorId> <checkId> --page-status changed
firecrawl monitor update <monitorId> --state paused
firecrawl monitor delete <monitorId>

Schedules accept cron (--cron "*/30 * * * *") or natural language (--schedule "every 30 minutes"). Minimum interval is 15 minutes. Targets are either --scrape-urls a,b,c (scrape) or --crawl-url <url> (crawl whole site each check). Note: --state (not --status) sets active/paused; --page-status (not --status) filters page results on check — avoids collision with the global --status flag. Monitoring is not available for zero-data-retention teams.

JSON-mode change tracking: By default monitors diff each page's markdown and you get a unified text diff back. When you care about specific structured fields (price, headline, in-stock flag, items in a list) instead of the whole page, add a changeTracking format with modes: ["json"] and a JSON schema to the target's scrapeOptions.formats. The flag-based form doesn't cover this — pass a JSON body via file or stdin:

bash
cat > pricing-monitor.json <<'EOF'
{
  "name": "Pricing watch",
  "schedule": { "text": "hourly", "timezone": "UTC" },
  "targets": [{
    "type": "scrape",
    "urls": ["https://example.com/pricing"],
    "scrapeOptions": {
      "formats": [{
        "type": "changeTracking",
        "modes": ["json"],
        "prompt": "Extract pricing tiers and headline features for each plan.",
        "schema": {
          "type": "object",
          "properties": {
            "plans": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name":     { "type": "string" },
                  "price":    { "type": "string" },
                  "features": { "type": "array", "items": { "type": "string" } }
                }
              }
            }
          }
        }
      }]
    }
  }]
}
EOF
firecrawl monitor create pricing-monitor.json

The check response then carries a per-field diff (paths like plans[0].price) and the full extraction at this run, instead of (or in addition to) a markdown diff. Each changed page in pages[] looks like:

json
{
  "url": "https://example.com/pricing",
  "status": "changed",
  "diff": {
    "json": {
      "plans[0].price": { "previous": "$19/mo", "current": "$24/mo" },
      "plans[1].features[2]": {
        "previous": "10 GB storage",
        "current": "25 GB storage"
      }
    }
  },
  "snapshot": {
    "json": {
      "plans": [
        /* current full extraction */
      ]
    }
  }
}

Use modes: ["json", "git-diff"] for mixed mode: you get both diff.json (per-field) and diff.text (markdown sidecar), and the page is marked changed whenever either surface changed. For markdown-only monitors, diff.text holds the unified diff and diff.json is a parse-diff AST ({ files: [...] }); there is no snapshot.

Avoid redundant fetches:

  • search --scrape already fetches full page content. Don't re-scrape those URLs.
  • Check .firecrawl/ for existing data before fetching again.
Show full SKILL.md (352 more words)Show less

When to Load References

  • Searching the web or finding sources first -> firecrawl-search
  • Scraping a known URL -> firecrawl-scrape
  • Finding URLs on a known site -> firecrawl-map
  • Bulk extraction from a docs section or site -> firecrawl-crawl
  • AI-powered structured extraction from complex sites -> firecrawl-agent
  • Clicks, forms, login, pagination, or post-scrape browser actions -> firecrawl-interact
  • Downloading a site to local files -> firecrawl-download
  • Parsing a local file (PDF, DOCX, XLSX, HTML, etc.) -> firecrawl-parse
  • Install, auth, or setup problems -> rules/install.md
  • Output handling and safe file-reading patterns -> rules/security.md
  • Integrating Firecrawl into an app, adding FIRECRAWL_API_KEY to .env, or choosing endpoint usage in product code -> use the firecrawl-build skills (already installed alongside this CLI skill)
  • Producing Firecrawl-powered deliverables such as research briefs, SEO audits, QA reports, lead lists, knowledge bases, or design-system extraction -> use the firecrawl-workflows skills (already installed alongside this CLI skill). These skills infer from context first and ask only short blocking questions when needed.

Output & Organization

Unless the user specifies to return in context, write results to .firecrawl/ with -o. Add .firecrawl/ to .gitignore. Always quote URLs - shell interprets ? and & as special characters.

bash
firecrawl search "react hooks" -o .firecrawl/search-react-hooks.json --json
firecrawl scrape "<url>" -o .firecrawl/page.md

Naming conventions:

.firecrawl/search-{query}.json
.firecrawl/search-{query}-scraped.json
.firecrawl/{site}-{path}.md

Never read entire output files at once. Use grep, head, or incremental reads:

bash
wc -l .firecrawl/file.md && head -50 .firecrawl/file.md
grep -n "keyword" .firecrawl/file.md

Single format outputs raw content. Multiple formats (e.g., --format markdown,links) output JSON.

Working with Results

These patterns are useful when working with file-based output (-o flag) for complex tasks:

bash
# Extract URLs from search
jq -r '.data.web[].url' .firecrawl/search.json

# Get titles and URLs
jq -r '.data.web[] | "\(.title): \(.url)"' .firecrawl/search.json

After search: send feedback (refunds 1 credit)

Search costs 2 credits per call. After you finish using a search result, send structured feedback in the background. The first feedback per search id refunds 1 credit and feeds search-quality improvements.

bash
SEARCH_ID=$(jq -r '.id' .firecrawl/search-react-hooks.json)

firecrawl search-feedback "$SEARCH_ID" \
  --rating good \
  --valuable-sources '[{"url":"https://react.dev/reference/react/hooks","reason":"Authoritative"}]' \
  --missing-content '[{"topic":"useDeferredValue example"},{"topic":"Server Components hooks"}]' \
  --query-suggestions "Boost react.dev for react-hooks queries" \
  --silent &

The most useful field is --missing-content: an array of specific pieces of content you expected to find but didn't. Use one entry per missing topic. Bad/partial feedback with detailed --missing-content is just as valuable as good feedback.

Opt out: export FIRECRAWL_NO_SEARCH_FEEDBACK=1 makes the CLI skip every feedback call silently. Respect that flag — do not try to work around it. See firecrawl-search for the full pattern.

Parallelization

Run independent operations in parallel. Check firecrawl --status for concurrency limit:

bash
firecrawl scrape "<url-1>" -o .firecrawl/1.md &
firecrawl scrape "<url-2>" -o .firecrawl/2.md &
firecrawl scrape "<url-3>" -o .firecrawl/3.md &
wait

For interact, scrape multiple pages and interact with each independently using their scrape IDs.

Credit Usage

bash
firecrawl credit-usage
firecrawl credit-usage --json --pretty -o .firecrawl/credits.json

© CraftOS-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in skills/firecrawl of CraftOS-dev/CraftBot.

  • SKILL.md
  • rules/install.md
  • rules/security.md

Open the folder on GitHubat commit b50970c

Compare with similar skills

Firecrawl next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Firecrawl compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Firecrawl this skillCraftOS-dev/CraftBot392—~3.2kAutomated safety check: NotesMIT
Keirouter Web Fetchmydisha/keirouter147—~741Automated safety check: PassMIT
Firecrawlsundial-org/awesome-openclaw-skills6631 repos~250Automated safety check: NotesNone
Firecrawl Searchaiskillstore/marketplace4301 repos~744Automated safety check: PassNone
Firecrawlhashgraph-online/awesome-codex-plugins1.2k—~1.8kAutomated safety check: NotesApache-2.0
Firecrawl Monitoraiskillstore/marketplace4301 repos~4.6kAutomated safety check: PassNone

Similar skills

  • Keirouter Web Fetch

    mydisha/keirouter

    Fetch URL → markdown / text / HTML via KeiRouter /v1/web/fetch using Firecrawl / Jina Reader / Tavily Extract / Exa Contents.

    147 GitHub stars~741 tokensUpdated 27 days ago
    Data & AnalyticsAuto-check passed
  • Firecrawl

    sundial-org/awesome-openclaw-skills

    Web search and scraping via Firecrawl API. An agent skill from sundial-org/awesome-openclaw-skills.

    663 GitHub starsUsed in 1 repo~250 tokens
    Data & AnalyticsAuto-check: notes
  • Firecrawl Search

    aiskillstore/marketplace

    Web search with full page content extraction. An agent skill from aiskillstore/marketplace.

    430 GitHub starsUsed in 1 repo~744 tokens
    Data & AnalyticsAuto-check passed
  • Firecrawl

    hashgraph-online/awesome-codex-plugins

    Search, scrape, and interact with the web via the Firecrawl CLI.

    1.2k GitHub stars~1.8k tokensUpdated today
    Data & AnalyticsAuto-check: notes
  • Firecrawl Monitor

    aiskillstore/marketplace

    Create Firecrawl monitors that watch pages, sites, or web search results and send change alerts by email or webhook.

    430 GitHub starsUsed in 1 repo~4.6k tokens
    Data & AnalyticsAuto-check passed
  • Firecrawl App Integration

    firecrawl/firecrawl

    Adds web search, scraping, structured extraction and browser interaction to application code using Firecrawl's scrape, search and interact endpoints.

    190k GitHub stars~2.1k tokensUpdated today
    Data & AnalyticsAuto-check: notes

More from CraftOS-dev/CraftBot

All 89 skills in this repo
  • Self Improvement

    CraftOS-dev/CraftBot

    Captures learnings, errors, and corrections to enable continuous improvement.

    392 GitHub starsUsed in 5 repos~4.9k tokens
    Auto-check passed
  • Bbc News

    CraftOS-dev/CraftBot

    Fetch and display BBC News stories from various sections and regions via RSS feeds.

    392 GitHub starsUsed in 2 repos~555 tokens
    Auto-check passed
  • Outlook

    CraftOS-dev/CraftBot

    Read, search, and manage Outlook emails and calendar via Microsoft Graph API.

    392 GitHub starsUsed in 2 repos~1.8k tokens
    Auto-check passed
  • Nano Banana Pro

    CraftOS-dev/CraftBot

    Generate/edit images with Nano Banana Pro (Gemini 3 Pro Image).

    392 GitHub starsUsed in 6 repos~1.4k tokens
    Auto-check passed
  • Airweave

    CraftOS-dev/CraftBot

    Context retrieval layer for AI agents across users' applications.

    392 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Telegram Bot Manager

    CraftOS-dev/CraftBot

    Manage and configure Telegram bots for OpenClaw. An agent skill from CraftOS-dev/CraftBot.

    392 GitHub stars~836 tokensUpdated today
    Auto-check passed

Works with

Questions about Firecrawl

What does Firecrawl do?

Search, scrape, and interact with the web via the Firecrawl CLI. Firecrawl is an agent skill from CraftOS-dev/CraftBot. Search, scrape, and interact with the web via the Firecrawl CLI.

When should I use Firecrawl?

Firecrawl fits situations like: the user wants to search the web; research a topic; look something up online; scrape a webpage.

How do I install Firecrawl in Claude Code?

Run `npx skills add CraftOS-dev/CraftBot --skill firecrawl -a claude-code`. Or copy the skill folder (skills/firecrawl in CraftOS-dev/CraftBot) into .claude/skills/firecrawl in your project. Claude Code loads it when a task matches its description.

How do I install Firecrawl in Codex?

Run `npx skills add CraftOS-dev/CraftBot --skill firecrawl -a codex`. Or copy the skill folder (skills/firecrawl in CraftOS-dev/CraftBot) into .agents/skills/firecrawl in your project. Codex loads it when a task matches its description.

Can I use Firecrawl in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add CraftOS-dev/CraftBot --skill firecrawl -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/firecrawl, .gemini/skills/firecrawl, .github/skills/firecrawl and .opencode/skills/firecrawl in your project.

What does Firecrawl need to run?

Going by SKILL.md and its folder, Firecrawl needs the command-line tools its instructions call (jq) and credentials named FIRECRAWL_API_KEY. Our summary lists: Node.js; A credential in FIRECRAWL_API_KEY. Its frontmatter pre-approves these tools: Bash(firecrawl *), Bash(npx firecrawl *).

Does Firecrawl access the network?

SKILL.md names 2 domains. In commands or code: firecrawl.dev and react.dev; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Firecrawl safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Firecrawl use?

Firecrawl is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Firecrawl use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Firecrawl?

Skills that share tags, products or a category with Firecrawl: Keirouter Web Fetch (mydisha/keirouter, 147 stars), Firecrawl (sundial-org/awesome-openclaw-skills, 663 stars), Firecrawl Search (aiskillstore/marketplace, 430 stars) and Firecrawl (hashgraph-online/awesome-codex-plugins, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Firecrawl?

CraftOS-dev (a GitHub user) maintains it in CraftOS-dev/CraftBot, which has 392 GitHub stars. The repository holds 89 skills in this directory. The repository was last updated on October 7, 2026.

Source: CraftOS-dev/CraftBot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.