
firecrawl / cli
✓ Official★ 507A skill package that teaches your agent 16 capabilities — every one documented and browsable below, no GitHub required · by firecrawl.
Each skill below is one capability this package teaches your agent. Install the whole package, or open a skill to install just that one.
AI-powered autonomous extraction of structured data from complex multi-page websites. Navigates sites intelligently to locate and extract data, returning results as JSON with optional schema validation Supports custom JSON schemas for predictable structured output, or freeform extraction when schema is not provided Offers two model tiers (spark-1-mini and spark-1-pro) with credit limits and optional waiting for inline results Best suited for multi-page extraction tasks; use simpler scrape or...
1 file — installable on its own
AI-powered autonomous extraction. The agent navigates sites and extracts structured data (takes 2-5 minutes).
1 file — installable on its own
Bulk extract content from a website. Crawls pages following links up to a depth/limit.
1 file — installable on its own
Bulk extract content from entire websites or site sections with depth and path filtering. Crawls pages following links up to configurable depth limits and page counts, with path inclusion/exclusion filters to scope extraction Supports async job polling or synchronous waiting with progress display via --wait and --progress flags Offers concurrency control, request delays, and JSON output formatting for integration into agent workflows Part of a four-step escalation pattern: search → scrape →...
1 file — installable on its own
Download entire websites as organized local files in multiple formats. Maps site structure first, then scrapes each discovered page into nested directories under .firecrawl/ , supporting markdown, links, screenshots, and custom format combinations Filters pages by path patterns ( --include-paths , --exclude-paths ), search queries, subdomain inclusion, and page limits to control scope All standard scrape options work with download: format selection, full-page screenshots, main-content...
1 file — installable on its own
Experimental. Convenience command that combines map + scrape to save an entire site as local files.
1 file — installable on its own
Interact with scraped pages in a live browser session. Scrape a page first, then use natural language prompts or code to click, fill forms, navigate, and extract data.
1 file — installable on its own
Interact with scraped pages in a live browser session. Scrape a page first, then use natural language prompts or code to click, fill forms, navigate, and extract data.
1 file — installable on its own
Discover URLs on a site. Use --search to find a specific page within a large site.
1 file — installable on its own
Discover and filter URLs on a website, with optional search to locate specific pages. Supports filtering by search query to find pages matching keywords within large sites Includes sitemap handling strategies (include, skip, or use only) and optional subdomain inclusion Outputs results as plain text or JSON with configurable URL limits Commonly paired with firecrawl-scrape: use map with search to find the target URL, then scrape it
1 file — installable on its own
Detect when content on a website changes and get notified by webhook or email — no cron jobs, scrapers, or diff scripts required. Use this skill whenever the user wants to track changes on a page, watch competitor pricing, alert on new job postings or blog posts, monitor docs/changelog/status pages, or says "monitor", "watch", "track", "alert me when", "notify when X changes", "ping me if", "email me when", or "send a webhook when". A built-in AI judge filters out formatting, timestamp, and...
1 file — installable on its own
Turn a local document into clean markdown on disk. Supports PDF, DOCX, DOC, ODT, RTF, XLSX, XLS, HTML/HTM/XHTML .
1 file — installable on its own
Extract clean markdown from any URL, including JavaScript-rendered single-page applications. Handles both static pages and JS-rendered SPAs with configurable wait times for rendering Supports multiple concurrent URL scraping with output format options including markdown, HTML, links, and screenshots Includes content filtering options like main-content-only mode to strip navigation and footers, plus tag inclusion/exclusion Optional inline question answering via --query flag for targeted...
1 file — installable on its own
Scrape one or more URLs. Returns clean, LLM-optimized markdown. Multiple URLs are scraped concurrently.
1 file — installable on its own
Web search with optional full-page content extraction from results. Returns real search results as JSON with optional --scrape flag to fetch complete page markdown for each result, avoiding redundant fetches Supports filtering by source type (web, images, news), category (GitHub, research, PDF), time range (past hour/day/week/month/year), location, and country Use --limit to control result count and --scrape-formats to customize output formats when extracting full content Part of a workflow...
1 file — installable on its own
Web search with optional content scraping. Returns search results as JSON, optionally with full page content.
1 file — installable on its own
🔥 Firecrawl CLI
Command-line interface for Firecrawl. Search, scrape, interact, crawl, map, and run agent jobs directly from your terminal.
Installation
npm install -g firecrawl-cliOr set up everything in one command (install CLI globally, authenticate, and add skills across all detected coding editors):
npx -y firecrawl-cli@1.19.6 init -y --browser-yruns setup non-interactively--browseropens the browser for Firecrawl authentication automatically- skills install globally to every detected AI coding agent by default
Setup Skills, Workflows, and MCP
If you are using an AI coding agent like Claude Code, you can also install the skills manually:
firecrawl setup skills
firecrawl setup workflowsThese install globally across all detected coding editors by default. Use --agent <agent> to scope either command to one editor.
Agent skills
The init command installs all Firecrawl agent skill segments into AI coding agents (Cursor, Claude Code, Windsurf, etc.):
- CLI skills — teach agents how to use the Firecrawl CLI for live web work (search, scrape, interact, map, crawl, agent)
- Build skills — teach agents how to integrate Firecrawl into application code (choose endpoints, wire SDKs, set up API keys)
- Workflow skills — teach agents how to produce Firecrawl-powered deliverables such as research briefs, SEO audits, QA reports, lead lists, knowledge bases, and design-system extraction
To reinstall skills manually:
firecrawl setup skills
firecrawl setup workflowsTo install the Firecrawl MCP server into your editors (Cursor, Claude Code, VS Code, etc.):
firecrawl setup mcpTo make Firecrawl the default web provider for supported AI agents:
firecrawl setup defaults # or: firecrawl make defaultThis disables native web fetch/search where supported so agents route web work
through Firecrawl. When run interactively, it asks harness by harness (Claude
Code, Codex) so you can choose exactly which to change. Use -y to skip the
picker and apply to all, or --agent to target one:
firecrawl setup defaults --agent codex # only Codex
firecrawl setup defaults -y # all harnesses, no promptsTo undo those config changes (also interactive, harness by harness):
firecrawl setup defaults --undo # pick which to restore
firecrawl setup defaults --undo --agent claudeQuick Start
Just run a command - the CLI will prompt you to authenticate if needed:
firecrawl https://example.comAuthentication
On first run, you'll be prompted to authenticate:
🔥 firecrawl cli
Search, scrape, and interact with the web
Welcome! To get started, authenticate with your Firecrawl account.
1. Login with browser (recommended)
2. Enter API key manually
Tip: You can also set FIRECRAWL_API_KEY environment variable
Enter choice [1/2]:Authentication Methods
# Interactive (prompts automatically when needed)
firecrawl
# Browser login
firecrawl login
# Direct API key
firecrawl login --api-key fc-your-api-key
# Environment variable
export FIRECRAWL_API_KEY=fc-your-api-key
# Per-command API key
firecrawl scrape https://example.com --api-key fc-your-api-keySelf-hosted / Local Development
For self-hosted Firecrawl instances or local development, use the --api-url option:
# Use a local Firecrawl instance (no API key required)
firecrawl --api-url http://localhost:3002 scrape https://example.com
# Or set via environment variable
export FIRECRAWL_API_URL=http://localhost:3002
firecrawl scrape https://example.com
# Self-hosted with API key
firecrawl --api-url https://firecrawl.mycompany.com --api-key fc-xxx scrape https://example.comWhen using a custom API URL (anything other than https://api.firecrawl.dev), authentication is automatically skipped, allowing you to use local instances without an API key.
Commands
scrape - Scrape URLs
Extract content from any webpage. Pass multiple URLs to scrape them concurrently -- each result is saved to .firecrawl/ automatically.
# Basic usage (outputs markdown)
firecrawl https://example.com
firecrawl scrape https://example.com
# Get raw HTML
firecrawl https://example.com --html
firecrawl https://example.com -H
# Multiple formats (outputs JSON)
firecrawl https://example.com --format markdown,links,images
# Save to file
firecrawl https://example.com -o output.md
firecrawl https://example.com --format json -o data.json --pretty
# Multiple URLs (scraped concurrently, each saved to .firecrawl/)
firecrawl scrape https://firecrawl.dev https://firecrawl.dev/blog https://docs.firecrawl.devScrape Options
| Option | Description |
|---|---|
-f, --format <formats> | Output format(s), comma-separated |
-H, --html | Shortcut for --format html |
-S, --summary | Shortcut for --format summary |
--only-main-content | Extract only main content (removes navs, footers, etc.) |
--wait-for <ms> | Wait time before scraping (for JS-rendered content) |
--screenshot | Take a screenshot |
--full-page-screenshot | Take a full page screenshot |
--include-tags <tags> | Only include specific HTML tags |
--exclude-tags <tags> | Exclude specific HTML tags |
--max-age <milliseconds> | Maximum age of cached content in milliseconds |
--lockdown | Enable lockdown mode for the scrape |
--redact-pii | Redact personally identifiable information from output |
--schema <json> | JSON schema for structured extraction |
--schema-file <path> | Path to JSON schema file for structured extraction |
--actions <json> | JSON actions array to run during scrape |
--actions-file <path> | Path to JSON actions file |
--proxy <proxy> | Proxy mode for scraping (for example, auto, basic) |
-o, --output <path> | Save output to file |
--json | Output as JSON format |
--pretty | Pretty print JSON output |
--timing | Show request timing info |
Available Formats
| Format | Description |
|---|---|
markdown | Clean markdown (default) |
html | Cleaned HTML |
rawHtml | Original HTML |
links | All links on the page |
images | All images on the page |
screenshot | Screenshot as base64 |
summary | AI-generated summary |
json | Structured JSON extraction |
changeTracking | Track changes on the page |
attributes | Page attributes and metadata |
branding | Brand identity extraction |
Examples
# Extract only main content as markdown
firecrawl https://blog.example.com --only-main-content
# Wait for JS to render, then scrape
firecrawl https://spa-app.com --wait-for 3000
# Get all links from a page
firecrawl https://example.com --format links
# Screenshot + markdown
firecrawl https://example.com --format markdown --screenshot
# Extract specific elements only
firecrawl https://example.com --include-tags article,main
# Exclude navigation and ads
firecrawl https://example.com --exclude-tags nav,aside,.adsearch - Search the web
Search the web and optionally scrape content from search results.
# Basic search
firecrawl search "firecrawl"
# Limit results
firecrawl search "AI news" --limit 10
# Search news sources
firecrawl search "tech startups" --sources news
# Search images
firecrawl search "landscape photography" --sources images
# Multiple sources
firecrawl search "machine learning" --sources web,news,images
# Filter by category (GitHub, research papers, PDFs)
firecrawl search "web data python" --categories github
firecrawl search "transformer architecture" --categories research
firecrawl search "machine learning" --categories github,research
# Time-based search
firecrawl search "AI announcements" --tbs qdr:d # Past day
firecrawl search "tech news" --tbs qdr:w # Past week
# Location-based search
firecrawl search "restaurants" --location "San Francisco,California,United States"
firecrawl search "local news" --country DE
# Search and scrape results
firecrawl search "firecrawl tutorials" --scrape
firecrawl search "API documentation" --scrape --scrape-formats markdown,links
# Output as pretty JSON
firecrawl search "AI data tools"Search Options
| Option | Description |
|---|---|
--limit <n> | Maximum results (default: 5, max: 100) |
--sources <sources> | Comma-separated: web, images, news (default: web) |
--categories <categories> | Comma-separated: github, research, pdf |
--tbs <value> | Time filter: qdr:h (hour), qdr:d (day), qdr:w (week), qdr:m (month), qdr:y (year) |
--location <location> | Geo-targeting (e.g., "Germany", "San Francisco,California,United States") |
--country <code> | ISO country code (default: US) |
--timeout <ms> | Timeout in milliseconds (default: 60000) |
--ignore-invalid-urls | Exclude URLs invalid for other Firecrawl endpoints |
--scrape | Enable scraping of search results |
--scrape-formats <formats> | Scrape formats when --scrape enabled (default: markdown) |
--only-main-content | Include only main content when scraping (default: true) |
-o, --output <path> | Save to file |
--json | Output as compact JSON |
Examples
# Research a topic with recent results
firecrawl search "React Server Components" --tbs qdr:m --limit 10
# Find GitHub repositories
firecrawl search "web data library" --categories github --limit 20
# Search and get full content
firecrawl search "firecrawl documentation" --scrape --scrape-formats markdown --json -o results.json
# Find research papers
firecrawl search "large language models" --categories research --json
# Search with location targeting
firecrawl search "best coffee shops" --location "Berlin,Germany" --country DE
# Get news from the past week
firecrawl search "AI startups funding" --sources news --tbs qdr:w --limit 15feedback - Send endpoint job feedback
Send concise feedback for a completed v2 search, scrape, parse, or map
job. For search-result quality, search-feedback is still the most guided
command; feedback is the generic endpoint/job surface.
firecrawl feedback scrape 0193f6c5-1234-7890-abcd-1234567890ab \
--rating partial \
--issues missing_markdown \
--tags docs \
--note "The pricing table was missing from the markdown output." \
--url https://example.com/pricing \
--page-numbers 1Keep notes and metadata small. Do not send raw scrape or parse outputs as feedback.
Set FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 to make firecrawl feedback skip
endpoint feedback calls silently.
Feedback Options
| Option | Description |
|---|---|
--rating <rating> | Required: good, partial, or bad |
--issues <codesOrJson> | Comma-separated issue codes or JSON array |
--tags <codesOrJson> | Comma-separated tags or JSON array |
--note <text> | Short human-readable feedback |
--valuable-sources <json> | JSON array of {url, reason} entries |
--missing-content <json> | JSON array of {topic, description} entries |
--query-suggestions <text> | Search/query improvement notes |
--url <url> | Relevant URL for scrape or parse feedback |
--page-numbers <numbersOrJson> | Comma-separated page numbers or JSON array |
--metadata <json> | Small JSON object with extra context |
--metadata-file <path> | Path to small metadata JSON object |
--silent | Suppress output for background agent calls |
map - Discover all URLs on a website
Quickly discover all URLs on a website without scraping content.
# List all URLs (one per line)
firecrawl map https://example.com
# Output as JSON
firecrawl map https://example.com --json
# Search for specific URLs
firecrawl map https://example.com --search "blog"
# Limit results
firecrawl map https://example.com --limit 500Map Options
| Option | Description |
|---|---|
--limit <n> | Maximum URLs to discover |
--search <query> | Filter URLs by search query |
--sitemap <mode> | include, skip, or only |
--include-subdomains | Include subdomains |
--ignore-query-parameters | Dedupe URLs with different params |
--timeout <seconds> | Request timeout |
--json | Output as JSON |
-o, --output <path> | Save to file |
Examples
# Find all product pages
firecrawl map https://shop.example.com --search "product"
# Get sitemap URLs only
firecrawl map https://example.com --sitemap only
# Save URL list to file
firecrawl map https://example.com -o urls.txt
# Include subdomains
firecrawl map https://example.com --include-subdomains --limit 1000crawl - Crawl an entire website
Crawl multiple pages from a website.
# Start a crawl (returns job ID)
firecrawl crawl https://example.com
# Wait for crawl to complete
firecrawl crawl https://example.com --wait
# With progress indicator
firecrawl crawl https://example.com --wait --progress
# Check crawl status
firecrawl crawl <job-id>
# Limit pages
firecrawl crawl https://example.com --limit 100 --max-depth 3Crawl Options
| Option | Description |
|---|---|
--wait | Wait for crawl to complete |
--progress | Show progress while waiting |
--limit <n> | Maximum pages to crawl |
--max-depth <n> | Maximum crawl depth |
--include-paths <paths> | Only crawl matching paths |
--exclude-paths <paths> | Skip matching paths |
--sitemap <mode> | include, skip, or only |
--allow-subdomains | Include subdomains |
--allow-external-links | Follow external links |
--crawl-entire-domain | Crawl entire domain |
--ignore-query-parameters | Treat URLs with different params as same |
--delay <ms> | Delay between requests |
--max-concurrency <n> | Max concurrent requests |
--scrape-options <json> | JSON scrape options passed to each page |
--scrape-options-file <path> | Path to scrape options JSON file |
--webhook <url-or-json> | Webhook URL or configuration |
--cancel | Cancel an active crawl job by job ID |
--timeout <seconds> | Timeout when waiting |
--poll-interval <seconds> | Status check interval |
Examples
# Crawl blog section only
firecrawl crawl https://example.com --include-paths /blog,/posts
# Exclude admin pages
firecrawl crawl https://example.com --exclude-paths /admin,/login
# Crawl with rate limiting
firecrawl crawl https://example.com --delay 1000 --max-concurrency 2
# Deep crawl with high limit
firecrawl crawl https://example.com --limit 1000 --max-depth 10 --wait --progress
# Save results
firecrawl crawl https://example.com --wait -o crawl-results.json --prettycredit-usage - Check your credits
# Show credit usage
firecrawl credit-usage
# Output as JSON
firecrawl credit-usage --json --prettyagent - AI-powered web data extraction
Run an AI agent that autonomously browses and extracts structured data from the web based on natural language prompts.
Note: Agent tasks typically take 2 to 5 minutes to complete, and sometimes longer for complex extractions. Use sparingly and consider
--max-creditsto limit costs.
# Basic usage (returns job ID immediately)
firecrawl agent "Find the pricing plans for Firecrawl"
# Wait for completion
firecrawl agent "Extract all product names and prices from this store" --wait
# Focus on specific URLs
firecrawl agent "Get the main features listed" --urls https://example.com/features
# Use structured output with JSON schema
firecrawl agent "Extract company info" --schema '{"type":"object","properties":{"name":{"type":"string"},"employees":{"type":"number"}}}'
# Load schema from file
firecrawl agent "Extract product data" --schema-file ./product-schema.json --wait
# Check status of an existing job
firecrawl agent <job-id>
firecrawl agent <job-id> --waitAgent Options
| Option | Description |
|---|---|
--urls <urls> | Comma-separated URLs to focus extraction on |
--model <model> | spark-1-mini (default, cheaper) or spark-1-pro (accurate) |
--schema <json> | JSON schema for structured output (inline JSON string) |
--schema-file <path> | Path to JSON schema file for structured output |
--max-credits <number> | Maximum credits to spend (job fails if exceeded) |
--webhook <url-or-json> | Webhook URL or configuration |
--status | Check status of existing agent job |
--cancel | Cancel an active agent job by job ID |
--wait | Wait for agent to complete before returning results |
--poll-interval <seconds> | Polling interval in seconds when waiting (default: 5) |
--timeout <seconds> | Timeout in seconds when waiting (default: no timeout) |
-o, --output <path> | Save output to file |
--json | Output as JSON format |
--pretty | Pretty print JSON output |
Examples
# Research task with timeout
firecrawl agent "Find the top 5 competitors of Notion and their pricing" --wait --timeout 300
# Extract data with cost limit
firecrawl agent "Get all blog post titles and dates" --urls https://blog.example.com --max-credits 100 --wait
# Use higher accuracy model for complex extraction
firecrawl agent "Extract detailed technical specifications" --model spark-1-pro --wait --pretty
# Save structured results to file
firecrawl agent "Extract contact information" --schema-file ./contact-schema.json --wait -o contacts.json --pretty
# Check job status without waiting
firecrawl agent abc123-def456-... --json
# Poll a running job until completion
firecrawl agent abc123-def456-... --wait --poll-interval 10interact - Interact with scraped pages
Scrape a page, then interact with it in a live browser session using natural language or code. No manual session management required.
# 1. Scrape a page first
firecrawl scrape https://example.com
# 2. Interact with it
firecrawl interact "Click the pricing tab"
firecrawl interact "Fill in the email field with test@example.com"
firecrawl interact "Extract the pricing table"
# 3. Code execution (Playwright)
firecrawl interact -c "await page.title()"
firecrawl interact -c "print(await page.title())" --python
# 4. Stop the session
firecrawl interact stopInteract Options
| Option | Description |
|---|---|
-p, --prompt <text> | AI prompt (alternative to positional argument) |
-c, --code <code> | Code to execute in the browser sandbox |
-s, --scrape-id <id> | Scrape job ID (default: last scrape) |
--python | Execute code as Python/Playwright |
--node | Execute code as Node.js/Playwright (default) |
--bash | Execute code as Bash |
--timeout <seconds> | Timeout in seconds (1-300, default: 30) |
-o, --output <path> | Save output to file |
--json | Output as JSON format |
Profiles
Use --profile on the scrape to persist browser state across scrapes:
# Login and save state
firecrawl scrape "https://app.example.com/login" --profile my-app
firecrawl interact "Fill in email and click login"
# Come back authenticated later
firecrawl scrape "https://app.example.com/dashboard" --profile my-app
firecrawl interact "Extract the dashboard data"monitor - Watch pages for changes
Create monitors when the goal is ongoing change detection, alerting, or repeated checks over time. A monitor runs recurring scrapes or crawls, diffs each result against the last retained snapshot, and can notify webhooks or email recipients.
firecrawl monitor create --name "Blog" \
--goal "Notify me when a new post is published" \
--schedule "every 30 minutes" \
--page https://example.com/blog \
--email alerts@example.com
firecrawl monitor create --name "Product pages" \
--goal "Notify me when pricing, docs, or changelog content changes" \
--schedule "every 30 minutes" \
--scrape-urls https://example.com/pricing,https://example.com/docs,https://example.com/changelog
firecrawl monitor create --name "Docs webhook" \
--goal "Notify me when docs content changes" \
--schedule "every 30 minutes" \
--page https://example.com/docs \
--webhook-url https://example.com/webhook \
--webhook-events monitor.page,monitor.check.completed
firecrawl monitor list --limit 20
firecrawl monitor run <monitorId>
firecrawl monitor checks <monitorId>
firecrawl monitor check <monitorId> <checkId> --page-status changed
firecrawl monitor update <monitorId> --state paused
firecrawl monitor delete <monitorId>Monitor Options
| Option | Description |
|---|---|
--name <name> | Monitor name |
--goal <goal> | What changes this monitor should look for |
--cron <expression> | Cron schedule (e.g. */30 * * * *) |
--schedule <text> | Natural-language schedule (e.g. every 30 minutes) |
--timezone <tz> | Schedule timezone (default: UTC) |
--page <url> | Single page URL to scrape on each check |
--scrape-urls <list> | Comma-separated page URLs to scrape on each check |
--crawl-url <url> | Root URL for a crawl target |
--webhook-url <url> | Webhook destination |
--webhook-events <list> | Comma-separated webhook events |
--email <list> | Comma-separated email recipients |
--retention-days <n> | Snapshot retention window |
For advanced targets such as JSON-mode changeTracking, pass a JSON payload:
firecrawl monitor create monitor.json
cat monitor.json | firecrawl monitor createconfig - Configure settings
# Configure with custom API URL
firecrawl config --api-url https://firecrawl.mycompany.com
firecrawl config --api-url http://localhost:3002 --api-key fc-xxxview-config - View current configuration
# View current configuration and authentication status
firecrawl view-configShows authentication status and stored credentials location.
login / logout
# Login
firecrawl login
firecrawl login --method browser
firecrawl login --method manual
firecrawl login --api-key fc-xxx
# Login to self-hosted instance
firecrawl login --api-url https://firecrawl.mycompany.com
firecrawl login --api-url http://localhost:3002 --api-key fc-xxx
# Logout
firecrawl logoutGlobal Options
These options work with any command:
| Option | Description |
|---|---|
--status | Show version, auth, concurrency, and credits |
-k, --api-key <key> | Use specific API key |
--api-url <url> | Use custom API URL (for self-hosted/local development) |
-V, --version | Show version |
-h, --help | Show help |
Check Status
firecrawl --status 🔥 firecrawl cli v1.19.6
● Authenticated via stored credentials
Concurrency: 0/100 jobs (parallel scrape limit)
Credits: 500,000 / 1,000,000 (50% left this cycle)Output Handling
Stdout vs File
# Output to stdout (default)
firecrawl https://example.com
# Pipe to another command
firecrawl https://example.com | head -50
# Save to file
firecrawl https://example.com -o output.md
# JSON output
firecrawl https://example.com --format links --prettyFormat Behavior
- Single format: Outputs raw content (markdown text, HTML, etc.)
- Multiple formats: Outputs JSON with all requested data
# Raw markdown output
firecrawl https://example.com --format markdown
# JSON output with multiple formats
firecrawl https://example.com --format markdown,links,imagesTips & Tricks
Scrape multiple URLs
# Just pass multiple URLs -- results are saved to .firecrawl/
firecrawl scrape https://firecrawl.dev https://firecrawl.dev/blog https://docs.firecrawl.devCombine with other tools
# Extract links and process with jq
firecrawl https://example.com --format links | jq '.links[].url'
# Convert to PDF (with pandoc)
firecrawl https://example.com | pandoc -o document.pdf
# Search within scraped content
firecrawl https://example.com | grep -i "keyword"CI/CD Usage
# Set API key via environment
export FIRECRAWL_API_KEY=${{ secrets.FIRECRAWL_API_KEY }}
firecrawl crawl https://docs.example.com --wait -o docs.json
# Use self-hosted instance
export FIRECRAWL_API_URL=${{ secrets.FIRECRAWL_API_URL }}
firecrawl scrape https://example.com -o output.mdTelemetry
The CLI collects anonymous usage data during authentication to help improve the product:
- CLI version, OS, and Node.js version
- Detect development tools (e.g., Cursor, VS Code, Claude Code)
No command data, URLs, or file contents are collected via the CLI.
To disable telemetry, set the environment variable:
export FIRECRAWL_NO_TELEMETRY=1Experimental
Experimental commands live under firecrawl experimental (alias: firecrawl x).
download - Bulk Site Download
Combines map + scrape to save a site as local files under .firecrawl/.
firecrawl x download https://docs.firecrawl.dev
firecrawl x download https://docs.firecrawl.dev --screenshot --limit 20 -y
firecrawl x download https://docs.firecrawl.dev --include-paths "/features,/sdks" -yWorkflow Skills
The old experimental AI workflow commands have moved to the NPX-installable
firecrawl/firecrawl-workflows
skills package. Workflow skills infer from the user's request first and only ask
short clarifying questions when required inputs are missing. Install them with:
firecrawl setup workflowsDocumentation
For more details, visit the Firecrawl Documentation.
Install the whole package (16 skills):
npx skills add https://github.com/firecrawl/cliOr install a single skill:
npx skills add https://github.com/firecrawl/cli --skill <name>Pick the skill name from the Skills tab — each entry there installs independently.