Skip to main content
Search, scrape, interact, crawl, map, and run agent jobs directly from the terminal. The Firecrawl CLI works standalone or with skills that AI coding agents like Claude Code, Antigravity, and OpenCode can discover and use automatically.

Installation

If you are using an AI agent like Claude Code, you can install the Firecrawl skills below and the agent will set them up for you.
  • --all installs every Firecrawl skill segment (CLI, build, workflows) to every detected AI coding agent
  • --browser opens the browser for Firecrawl authentication automatically
After installing the skills, restart your agent for it to discover them.
You can also manually install the Firecrawl CLI globally using npm:
CLI

Authentication

Before using the CLI, you need to authenticate with your Firecrawl API key.
Some CLI commands work without logging in. With no API key configured, supported commands fall back to the keyless free tier — free, but rate-limited per IP. See Rate Limits for the current keyless command list and caveats. Sign up for a free key for 1,000 credits and higher limits; the CLI uses it automatically once configured.

Login

CLI

View Configuration

CLI

Logout

CLI

Self-Hosted / Local Development

For self-hosted Firecrawl instances or local development, use the --api-url option:
CLI
When using a custom API URL (anything other than https://api.firecrawl.dev), API key authentication is automatically skipped, allowing you to use local instances without an API key.

Check Status

Verify installation, authentication, and view rate limits:
CLI
Output when ready:
  • Concurrency: Maximum parallel jobs. Run parallel operations close to this limit but not above.
  • Credits: Remaining API credits. Each scrape/crawl consumes credits.

Commands

The hidden firecrawl browser command is deprecated for agent workflows. Use firecrawl scrape <url> first, then firecrawl interact ... with the resulting scrape session.

Scrape

Scrape a single URL and extract its content in various formats.
Use --only-main-content to get clean output without navigation, footers, and ads. This is recommended for most use cases where you want just the article or main page content.
CLI

Output Formats

CLI

Scrape Options

CLI
Available Options:
OptionShortDescription
--url <url>-uURL to scrape (alternative to positional argument)
--format <formats>-fOutput formats (comma-separated): markdown, html, rawHtml, links, screenshot, json, images, summary, changeTracking, attributes, branding
--html-HShortcut for --format html
--only-main-contentExtract only main content
--wait-for <ms>Wait time in milliseconds for JS rendering
--screenshotTake a screenshot
--full-page-screenshotTake a full page screenshot
--include-tags <tags>HTML tags to include (comma-separated)
--exclude-tags <tags>HTML tags to exclude (comma-separated)
--schema <json>JSON schema for structured extraction
--schema-file <path>Path to JSON schema file
--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 or basic)
--redact-piiRedact personally identifiable information from returned content
--output <path>-oSave output to file
--jsonForce JSON output even with single format
--prettyPretty print JSON output
--timingShow request timing and other useful information

Search the web and optionally scrape the results.
CLI

Search Options

CLI
Available Options:
OptionDescription
--limit <number>Maximum results (default: 5, max: 100)
--sources <sources>Sources to search: web, images, news (comma-separated)
--categories <categories>Filter by category: github, research, pdf (comma-separated)
--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., “Berlin,Germany”)
--country <code>ISO country code (default: US)
--timeout <ms>Timeout in milliseconds (default: 60000)
--ignore-invalid-urlsExclude URLs invalid for other Firecrawl endpoints
--scrapeScrape search results
--scrape-formats <formats>Formats for scraped content (default: markdown)
--only-main-contentInclude only main content when scraping (default: true)
--jsonOutput as JSON
--output <path>Save output to file
--prettyPretty print JSON output

Map

Discover all URLs on a website quickly.
CLI

Map Options

CLI
Available Options:
OptionDescription
--url <url>URL to map (alternative to positional argument)
--limit <number>Maximum URLs to discover
--search <query>Filter URLs by search query
--sitemap <mode>Sitemap handling: include, skip, only
--include-subdomainsInclude subdomains
--ignore-query-parametersTreat URLs with different params as same
--waitWait for map to complete
--timeout <seconds>Timeout in seconds
--jsonOutput as JSON
--output <path>Save output to file
--prettyPretty print JSON output

Interact

Scrape a page, then interact with it using natural language or code. Interact uses the most recent scrape by default, or you can pass a specific scrape ID.
CLI
Available Options:
OptionDescription
-p, --prompt <text>AI prompt (alternative to positional argument)
-c, --code <code>Code to execute in the live page session
-s, --scrape-id <id>Scrape job ID (default: last scrape)
--pythonExecute code as Python/Playwright
--nodeExecute code as Node.js/Playwright (default)
--bashExecute code as Bash
--timeout <seconds>Timeout in seconds (1-300, default: 30)
--output <path>Save output to file
--jsonOutput as JSON format

Crawl

Crawl an entire website starting from a URL.
CLI

Check Crawl Status

CLI

Crawl Options

CLI
Available Options:
OptionDescription
--url <url>URL to crawl (alternative to positional argument)
--waitWait for crawl to complete
--progressShow progress indicator while waiting
--poll-interval <seconds>Polling interval (default: 5)
--timeout <seconds>Timeout when waiting
--statusCheck status of existing crawl job
--limit <number>Maximum pages to crawl
--max-depth <number>Maximum crawl depth
--include-paths <paths>Paths to include (comma-separated)
--exclude-paths <paths>Paths to exclude (comma-separated)
--sitemap <mode>Sitemap handling: include, skip, only
--allow-subdomainsInclude subdomains
--allow-external-linksFollow external links
--crawl-entire-domainCrawl entire domain
--ignore-query-parametersTreat URLs with different params as same
--delay <ms>Delay between requests
--max-concurrency <n>Maximum 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
--cancelCancel an active crawl job by job ID
--output <path>Save output to file
--prettyPretty print JSON output

Monitor

Create recurring scrapes or crawls that diff each run against the previous snapshot. Add a goal when you want Firecrawl to judge which changed pages are meaningful for your use case.
CLI
Monitor goals should stay short and faithful to the user’s intent: say what should trigger an alert, restate any stated scope, and include exclusions only when they are obvious or explicitly requested. If the user asks for “any change”, keep the goal broad. Available Options:
OptionDescription
--name <name>Monitor name
--goal <goal>Goal for meaningful-change judging
--cron <expression>Cron schedule, for example */30 * * * *
--schedule <text>Natural-language schedule, for example hourly
--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 monitor events
--email <list>Comma-separated email recipients
--retention-days <n>Snapshot retention window
--page-status <state>Filter pages on monitor check
--state <state>Set monitor state on monitor update: active/paused

Agent

Search and gather data from the web using natural language prompts.
CLI

Agent Options

CLI
Available Options:
OptionDescription
--urls <urls>Optional list of URLs to focus the agent on (comma-separated)
--model <model>Model to use: spark-1-mini (default, 60% cheaper) or spark-1-pro (higher accuracy)
--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 limit reached)
--webhook <url-or-json>Webhook URL or configuration
--statusCheck status of existing agent job
--cancelCancel an active agent job by job ID
--waitWait for agent to complete before returning results
--poll-interval <seconds>Polling interval when waiting (default: 5)
--timeout <seconds>Timeout when waiting (default: no timeout)
--output <path>Save output to file
--jsonOutput as JSON format

Credit Usage

Check your team’s credit balance and usage.
CLI

Version

Display the CLI version.
CLI

Global Options

These options are available for all commands:
OptionShortDescription
--statusShow version, auth, concurrency, and credits
--api-key <key>-kOverride stored API key for this command
--api-url <url>Use custom API URL (for self-hosted/local development)
--help-hShow help for a command
--version-VShow CLI version

Output Handling

The CLI outputs to stdout by default, making it easy to pipe or redirect:
CLI

Format Behavior

  • Single format: Outputs raw content (markdown text, HTML, etc.)
  • Multiple formats: Outputs JSON with all requested data
CLI

Examples

Quick Scrape

CLI

Full Site Crawl

CLI

Site Discovery

CLI

Research Workflow

CLI

Agent

CLI

Combine with Other Tools

CLI

Telemetry

The CLI collects anonymous usage data during authentication to help improve the product:
  • CLI version, OS, and Node.js version
  • Development tool detection (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:
CLI

Open Source

The Firecrawl CLI and all three skill segments are open source on GitHub:
Are you an AI agent that needs a Firecrawl API key? See firecrawl.dev/agent-onboarding/SKILL.md for automated onboarding instructions.