| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Command-line interface for Firecrawl. Search, scrape, interact, crawl, map, and run agent jobs directly from your terminal.
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.16.2 init -y --browserIf 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.
The init command installs all Firecrawl agent skill segments into AI coding agents (Cursor, Claude Code, Windsurf, etc.):
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 mcpJust run a command - the CLI will prompt you to authenticate if needed:
firecrawl https://example.comOn 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]:
# 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-keyFor 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.
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.dev| 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 |
| --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 |
| 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 |
# 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 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"| 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 |
# 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 15Quickly 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 500| 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 |
# 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 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 3| 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 |
# 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 --pretty# Show credit usage
firecrawl credit-usage
# Output as JSON
firecrawl credit-usage --json --prettyRun 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-credits to 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> --wait| 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 |
# 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 10Scrape 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 stop| 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 |
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"# Configure with custom API URL
firecrawl config --api-url https://firecrawl.mycompany.com
firecrawl config --api-url http://localhost:3002 --api-key fc-xxx# View current configuration and authentication status
firecrawl view-configShows authentication status and stored credentials location.
# 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 logoutThese 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 |
firecrawl --status🔥 firecrawl cli v1.16.2 ● Authenticated via stored credentials Concurrency: 0/100 jobs (parallel scrape limit) Credits: 500,000 / 1,000,000 (50% left this cycle)
# 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 --pretty# Raw markdown output
firecrawl https://example.com --format markdown
# JSON output with multiple formats
firecrawl https://example.com --format markdown,links,images# Just pass multiple URLs -- results are saved to .firecrawl/
firecrawl scrape https://firecrawl.dev https://firecrawl.dev/blog https://docs.firecrawl.dev# 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"# 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.mdThe CLI collects anonymous usage data during authentication to help improve the product:
No command data, URLs, or file contents are collected via the CLI.
To disable telemetry, set the environment variable:
export FIRECRAWL_NO_TELEMETRY=1Experimental commands live under firecrawl experimental (alias: firecrawl x).
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" -yThe 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 workflowsFor more details, visit the Firecrawl Documentation.
| Back | FazBrowse Home | New Git URL |