{"id":44372602,"url":"https://github.com/firecrawl/cli","last_synced_at":"2026-04-09T04:06:22.965Z","repository":{"id":333760227,"uuid":"1130001700","full_name":"firecrawl/cli","owner":"firecrawl","description":"CLI and Agent Skill for Firecrawl - Add scrape, search, and browsing capabilities to your AI agents","archived":false,"fork":false,"pushed_at":"2026-04-02T00:10:59.000Z","size":682,"stargazers_count":242,"open_issues_count":7,"forks_count":35,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-02T12:23:02.790Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://docs.firecrawl.dev/cli","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/firecrawl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-07T22:19:37.000Z","updated_at":"2026-04-02T00:11:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/firecrawl/cli","commit_stats":null,"previous_names":["firecrawl/firecrawl-cli","firecrawl/cli"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/firecrawl/cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firecrawl%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firecrawl%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firecrawl%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firecrawl%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/firecrawl","download_url":"https://codeload.github.com/firecrawl/cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firecrawl%2Fcli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31584855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-11T20:25:45.752Z","updated_at":"2026-04-09T04:06:22.958Z","avatar_url":"https://github.com/firecrawl.png","language":"TypeScript","funding_links":[],"categories":["精选技能","Web \u0026 Search"],"sub_categories":["技术开发"],"readme":"# 🔥 Firecrawl CLI\n\nCommand-line interface for Firecrawl. Scrape, crawl, and extract data from any website directly from your terminal.\n\n## Installation\n\n```bash\nnpm install -g firecrawl-cli\n```\n\nOr set up everything in one command (install CLI globally, authenticate, and add skills across all detected coding editors):\n\n```bash\nnpx -y firecrawl-cli@1.13.0 init -y --browser\n```\n\n- `-y` runs setup non-interactively\n- `--browser` opens the browser for Firecrawl authentication automatically\n- skills install globally to every detected AI coding agent by default\n\n### Setup Skills and MCP\n\nIf you are using an AI coding agent like Claude Code, you can also install the skill individually with:\n\n```bash\nfirecrawl setup skills\n```\n\nThis installs skills globally across all detected coding editors by default. Use `--agent \u003cagent\u003e` to scope it to one editor.\n\n### Agent skills\n\nThis CLI ships with an agent skill that teaches AI coding agents (Cursor, Claude Code, Windsurf, etc.) how to use the Firecrawl CLI effectively, including non-interactive flags, output formats, and common pitfalls.\n\nTo install skills for Firecrawl's full platform (API, CLI, SDKs, and best practices) from the central skills repository:\n\n```bash\nnpx skills add firecrawl/skills\n```\n\nTo install the Firecrawl MCP server into your editors (Cursor, Claude Code, VS Code, etc.):\n\n```bash\nfirecrawl setup mcp\n```\n\nOr directly via npx:\n\n```bash\nnpx skills add firecrawl/cli --full-depth --global --all\nnpx add-mcp \"npx -y firecrawl-mcp\" --name firecrawl\n```\n\n## Quick Start\n\nJust run a command - the CLI will prompt you to authenticate if needed:\n\n```bash\nfirecrawl https://example.com\n```\n\n## Authentication\n\nOn first run, you'll be prompted to authenticate:\n\n```\n  🔥 firecrawl cli\n  Turn websites into LLM-ready data\n\nWelcome! To get started, authenticate with your Firecrawl account.\n\n  1. Login with browser (recommended)\n  2. Enter API key manually\n\nTip: You can also set FIRECRAWL_API_KEY environment variable\n\nEnter choice [1/2]:\n```\n\n### Authentication Methods\n\n```bash\n# Interactive (prompts automatically when needed)\nfirecrawl\n\n# Browser login\nfirecrawl login\n\n# Direct API key\nfirecrawl login --api-key fc-your-api-key\n\n# Environment variable\nexport FIRECRAWL_API_KEY=fc-your-api-key\n\n# Per-command API key\nfirecrawl scrape https://example.com --api-key fc-your-api-key\n```\n\n### Self-hosted / Local Development\n\nFor self-hosted Firecrawl instances or local development, use the `--api-url` option:\n\n```bash\n# Use a local Firecrawl instance (no API key required)\nfirecrawl --api-url http://localhost:3002 scrape https://example.com\n\n# Or set via environment variable\nexport FIRECRAWL_API_URL=http://localhost:3002\nfirecrawl scrape https://example.com\n\n# Self-hosted with API key\nfirecrawl --api-url https://firecrawl.mycompany.com --api-key fc-xxx scrape https://example.com\n```\n\nWhen 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.\n\n---\n\n## Commands\n\n### `scrape` - Scrape URLs\n\nExtract content from any webpage. Pass multiple URLs to scrape them concurrently -- each result is saved to `.firecrawl/` automatically.\n\n```bash\n# Basic usage (outputs markdown)\nfirecrawl https://example.com\nfirecrawl scrape https://example.com\n\n# Get raw HTML\nfirecrawl https://example.com --html\nfirecrawl https://example.com -H\n\n# Multiple formats (outputs JSON)\nfirecrawl https://example.com --format markdown,links,images\n\n# Save to file\nfirecrawl https://example.com -o output.md\nfirecrawl https://example.com --format json -o data.json --pretty\n\n# Multiple URLs (scraped concurrently, each saved to .firecrawl/)\nfirecrawl scrape https://firecrawl.dev https://firecrawl.dev/blog https://docs.firecrawl.dev\n```\n\n#### Scrape Options\n\n| Option                     | Description                                             |\n| -------------------------- | ------------------------------------------------------- |\n| `-f, --format \u003cformats\u003e`   | Output format(s), comma-separated                       |\n| `-H, --html`               | Shortcut for `--format html`                            |\n| `-S, --summary`            | Shortcut for `--format summary`                         |\n| `--only-main-content`      | Extract only main content (removes navs, footers, etc.) |\n| `--wait-for \u003cms\u003e`          | Wait time before scraping (for JS-rendered content)     |\n| `--screenshot`             | Take a screenshot                                       |\n| `--full-page-screenshot`   | Take a full page screenshot                             |\n| `--include-tags \u003ctags\u003e`    | Only include specific HTML tags                         |\n| `--exclude-tags \u003ctags\u003e`    | Exclude specific HTML tags                              |\n| `--max-age \u003cmilliseconds\u003e` | Maximum age of cached content in milliseconds           |\n| `-o, --output \u003cpath\u003e`      | Save output to file                                     |\n| `--json`                   | Output as JSON format                                   |\n| `--pretty`                 | Pretty print JSON output                                |\n| `--timing`                 | Show request timing info                                |\n\n#### Available Formats\n\n| Format           | Description                  |\n| ---------------- | ---------------------------- |\n| `markdown`       | Clean markdown (default)     |\n| `html`           | Cleaned HTML                 |\n| `rawHtml`        | Original HTML                |\n| `links`          | All links on the page        |\n| `images`         | All images on the page       |\n| `screenshot`     | Screenshot as base64         |\n| `summary`        | AI-generated summary         |\n| `json`           | Structured JSON extraction   |\n| `changeTracking` | Track changes on the page    |\n| `attributes`     | Page attributes and metadata |\n| `branding`       | Brand identity extraction    |\n\n#### Examples\n\n```bash\n# Extract only main content as markdown\nfirecrawl https://blog.example.com --only-main-content\n\n# Wait for JS to render, then scrape\nfirecrawl https://spa-app.com --wait-for 3000\n\n# Get all links from a page\nfirecrawl https://example.com --format links\n\n# Screenshot + markdown\nfirecrawl https://example.com --format markdown --screenshot\n\n# Extract specific elements only\nfirecrawl https://example.com --include-tags article,main\n\n# Exclude navigation and ads\nfirecrawl https://example.com --exclude-tags nav,aside,.ad\n```\n\n---\n\n### `search` - Search the web\n\nSearch the web and optionally scrape content from search results.\n\n```bash\n# Basic search\nfirecrawl search \"firecrawl web scraping\"\n\n# Limit results\nfirecrawl search \"AI news\" --limit 10\n\n# Search news sources\nfirecrawl search \"tech startups\" --sources news\n\n# Search images\nfirecrawl search \"landscape photography\" --sources images\n\n# Multiple sources\nfirecrawl search \"machine learning\" --sources web,news,images\n\n# Filter by category (GitHub, research papers, PDFs)\nfirecrawl search \"web scraping python\" --categories github\nfirecrawl search \"transformer architecture\" --categories research\nfirecrawl search \"machine learning\" --categories github,research\n\n# Time-based search\nfirecrawl search \"AI announcements\" --tbs qdr:d   # Past day\nfirecrawl search \"tech news\" --tbs qdr:w          # Past week\n\n# Location-based search\nfirecrawl search \"restaurants\" --location \"San Francisco,California,United States\"\nfirecrawl search \"local news\" --country DE\n\n# Search and scrape results\nfirecrawl search \"firecrawl tutorials\" --scrape\nfirecrawl search \"API documentation\" --scrape --scrape-formats markdown,links\n\n# Output as pretty JSON\nfirecrawl search \"web scraping\"\n```\n\n#### Search Options\n\n| Option                       | Description                                                                                 |\n| ---------------------------- | ------------------------------------------------------------------------------------------- |\n| `--limit \u003cn\u003e`                | Maximum results (default: 5, max: 100)                                                      |\n| `--sources \u003csources\u003e`        | Comma-separated: `web`, `images`, `news` (default: web)                                     |\n| `--categories \u003ccategories\u003e`  | Comma-separated: `github`, `research`, `pdf`                                                |\n| `--tbs \u003cvalue\u003e`              | Time filter: `qdr:h` (hour), `qdr:d` (day), `qdr:w` (week), `qdr:m` (month), `qdr:y` (year) |\n| `--location \u003clocation\u003e`      | Geo-targeting (e.g., \"Germany\", \"San Francisco,California,United States\")                   |\n| `--country \u003ccode\u003e`           | ISO country code (default: US)                                                              |\n| `--timeout \u003cms\u003e`             | Timeout in milliseconds (default: 60000)                                                    |\n| `--ignore-invalid-urls`      | Exclude URLs invalid for other Firecrawl endpoints                                          |\n| `--scrape`                   | Enable scraping of search results                                                           |\n| `--scrape-formats \u003cformats\u003e` | Scrape formats when `--scrape` enabled (default: markdown)                                  |\n| `--only-main-content`        | Include only main content when scraping (default: true)                                     |\n| `-o, --output \u003cpath\u003e`        | Save to file                                                                                |\n| `--json`                     | Output as compact JSON                                                                      |\n\n#### Examples\n\n```bash\n# Research a topic with recent results\nfirecrawl search \"React Server Components\" --tbs qdr:m --limit 10\n\n# Find GitHub repositories\nfirecrawl search \"web scraping library\" --categories github --limit 20\n\n# Search and get full content\nfirecrawl search \"firecrawl documentation\" --scrape --scrape-formats markdown --json -o results.json\n\n# Find research papers\nfirecrawl search \"large language models\" --categories research --json\n\n# Search with location targeting\nfirecrawl search \"best coffee shops\" --location \"Berlin,Germany\" --country DE\n\n# Get news from the past week\nfirecrawl search \"AI startups funding\" --sources news --tbs qdr:w --limit 15\n```\n\n---\n\n### `map` - Discover all URLs on a website\n\nQuickly discover all URLs on a website without scraping content.\n\n```bash\n# List all URLs (one per line)\nfirecrawl map https://example.com\n\n# Output as JSON\nfirecrawl map https://example.com --json\n\n# Search for specific URLs\nfirecrawl map https://example.com --search \"blog\"\n\n# Limit results\nfirecrawl map https://example.com --limit 500\n```\n\n#### Map Options\n\n| Option                      | Description                       |\n| --------------------------- | --------------------------------- |\n| `--limit \u003cn\u003e`               | Maximum URLs to discover          |\n| `--search \u003cquery\u003e`          | Filter URLs by search query       |\n| `--sitemap \u003cmode\u003e`          | `include`, `skip`, or `only`      |\n| `--include-subdomains`      | Include subdomains                |\n| `--ignore-query-parameters` | Dedupe URLs with different params |\n| `--timeout \u003cseconds\u003e`       | Request timeout                   |\n| `--json`                    | Output as JSON                    |\n| `-o, --output \u003cpath\u003e`       | Save to file                      |\n\n#### Examples\n\n```bash\n# Find all product pages\nfirecrawl map https://shop.example.com --search \"product\"\n\n# Get sitemap URLs only\nfirecrawl map https://example.com --sitemap only\n\n# Save URL list to file\nfirecrawl map https://example.com -o urls.txt\n\n# Include subdomains\nfirecrawl map https://example.com --include-subdomains --limit 1000\n```\n\n---\n\n### `crawl` - Crawl an entire website\n\nCrawl multiple pages from a website.\n\n```bash\n# Start a crawl (returns job ID)\nfirecrawl crawl https://example.com\n\n# Wait for crawl to complete\nfirecrawl crawl https://example.com --wait\n\n# With progress indicator\nfirecrawl crawl https://example.com --wait --progress\n\n# Check crawl status\nfirecrawl crawl \u003cjob-id\u003e\n\n# Limit pages\nfirecrawl crawl https://example.com --limit 100 --max-depth 3\n```\n\n#### Crawl Options\n\n| Option                      | Description                              |\n| --------------------------- | ---------------------------------------- |\n| `--wait`                    | Wait for crawl to complete               |\n| `--progress`                | Show progress while waiting              |\n| `--limit \u003cn\u003e`               | Maximum pages to crawl                   |\n| `--max-depth \u003cn\u003e`           | Maximum crawl depth                      |\n| `--include-paths \u003cpaths\u003e`   | Only crawl matching paths                |\n| `--exclude-paths \u003cpaths\u003e`   | Skip matching paths                      |\n| `--sitemap \u003cmode\u003e`          | `include`, `skip`, or `only`             |\n| `--allow-subdomains`        | Include subdomains                       |\n| `--allow-external-links`    | Follow external links                    |\n| `--crawl-entire-domain`     | Crawl entire domain                      |\n| `--ignore-query-parameters` | Treat URLs with different params as same |\n| `--delay \u003cms\u003e`              | Delay between requests                   |\n| `--max-concurrency \u003cn\u003e`     | Max concurrent requests                  |\n| `--timeout \u003cseconds\u003e`       | Timeout when waiting                     |\n| `--poll-interval \u003cseconds\u003e` | Status check interval                    |\n\n#### Examples\n\n```bash\n# Crawl blog section only\nfirecrawl crawl https://example.com --include-paths /blog,/posts\n\n# Exclude admin pages\nfirecrawl crawl https://example.com --exclude-paths /admin,/login\n\n# Crawl with rate limiting\nfirecrawl crawl https://example.com --delay 1000 --max-concurrency 2\n\n# Deep crawl with high limit\nfirecrawl crawl https://example.com --limit 1000 --max-depth 10 --wait --progress\n\n# Save results\nfirecrawl crawl https://example.com --wait -o crawl-results.json --pretty\n```\n\n---\n\n### `credit-usage` - Check your credits\n\n```bash\n# Show credit usage\nfirecrawl credit-usage\n\n# Output as JSON\nfirecrawl credit-usage --json --pretty\n```\n\n---\n\n### `agent` - AI-powered web data extraction\n\nRun an AI agent that autonomously browses and extracts structured data from the web based on natural language prompts.\n\n\u003e **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.\n\n```bash\n# Basic usage (returns job ID immediately)\nfirecrawl agent \"Find the pricing plans for Firecrawl\"\n\n# Wait for completion\nfirecrawl agent \"Extract all product names and prices from this store\" --wait\n\n# Focus on specific URLs\nfirecrawl agent \"Get the main features listed\" --urls https://example.com/features\n\n# Use structured output with JSON schema\nfirecrawl agent \"Extract company info\" --schema '{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"employees\":{\"type\":\"number\"}}}'\n\n# Load schema from file\nfirecrawl agent \"Extract product data\" --schema-file ./product-schema.json --wait\n\n# Check status of an existing job\nfirecrawl agent \u003cjob-id\u003e\nfirecrawl agent \u003cjob-id\u003e --wait\n```\n\n#### Agent Options\n\n| Option                      | Description                                                   |\n| --------------------------- | ------------------------------------------------------------- |\n| `--urls \u003curls\u003e`             | Comma-separated URLs to focus extraction on                   |\n| `--model \u003cmodel\u003e`           | `spark-1-mini` (default, cheaper) or `spark-1-pro` (accurate) |\n| `--schema \u003cjson\u003e`           | JSON schema for structured output (inline JSON string)        |\n| `--schema-file \u003cpath\u003e`      | Path to JSON schema file for structured output                |\n| `--max-credits \u003cnumber\u003e`    | Maximum credits to spend (job fails if exceeded)              |\n| `--status`                  | Check status of existing agent job                            |\n| `--wait`                    | Wait for agent to complete before returning results           |\n| `--poll-interval \u003cseconds\u003e` | Polling interval in seconds when waiting (default: 5)         |\n| `--timeout \u003cseconds\u003e`       | Timeout in seconds when waiting (default: no timeout)         |\n| `-o, --output \u003cpath\u003e`       | Save output to file                                           |\n| `--json`                    | Output as JSON format                                         |\n| `--pretty`                  | Pretty print JSON output                                      |\n\n#### Examples\n\n```bash\n# Research task with timeout\nfirecrawl agent \"Find the top 5 competitors of Notion and their pricing\" --wait --timeout 300\n\n# Extract data with cost limit\nfirecrawl agent \"Get all blog post titles and dates\" --urls https://blog.example.com --max-credits 100 --wait\n\n# Use higher accuracy model for complex extraction\nfirecrawl agent \"Extract detailed technical specifications\" --model spark-1-pro --wait --pretty\n\n# Save structured results to file\nfirecrawl agent \"Extract contact information\" --schema-file ./contact-schema.json --wait -o contacts.json --pretty\n\n# Check job status without waiting\nfirecrawl agent abc123-def456-... --json\n\n# Poll a running job until completion\nfirecrawl agent abc123-def456-... --wait --poll-interval 10\n```\n\n---\n\n### `interact` - Interact with scraped pages\n\nScrape a page, then interact with it in a live browser session using natural language or code. No manual session management required.\n\n```bash\n# 1. Scrape a page first\nfirecrawl scrape https://example.com\n\n# 2. Interact with it\nfirecrawl interact \"Click the pricing tab\"\nfirecrawl interact \"Fill in the email field with test@example.com\"\nfirecrawl interact \"Extract the pricing table\"\n\n# 3. Code execution (Playwright)\nfirecrawl interact -c \"await page.title()\"\nfirecrawl interact -c \"print(await page.title())\" --python\n\n# 4. Stop the session\nfirecrawl interact stop\n```\n\n#### Interact Options\n\n| Option                 | Description                                    |\n| ---------------------- | ---------------------------------------------- |\n| `-p, --prompt \u003ctext\u003e`  | AI prompt (alternative to positional argument) |\n| `-c, --code \u003ccode\u003e`    | Code to execute in the browser sandbox         |\n| `-s, --scrape-id \u003cid\u003e` | Scrape job ID (default: last scrape)           |\n| `--python`             | Execute code as Python/Playwright              |\n| `--node`               | Execute code as Node.js/Playwright (default)   |\n| `--bash`               | Execute code as Bash                           |\n| `--timeout \u003cseconds\u003e`  | Timeout in seconds (1-300, default: 30)        |\n| `-o, --output \u003cpath\u003e`  | Save output to file                            |\n| `--json`               | Output as JSON format                          |\n\n#### Profiles\n\nUse `--profile` on the scrape to persist browser state across scrapes:\n\n```bash\n# Login and save state\nfirecrawl scrape \"https://app.example.com/login\" --profile my-app\nfirecrawl interact \"Fill in email and click login\"\n\n# Come back authenticated later\nfirecrawl scrape \"https://app.example.com/dashboard\" --profile my-app\nfirecrawl interact \"Extract the dashboard data\"\n```\n\n---\n\n### `config` - Configure settings\n\n```bash\n# Configure with custom API URL\nfirecrawl config --api-url https://firecrawl.mycompany.com\nfirecrawl config --api-url http://localhost:3002 --api-key fc-xxx\n```\n\n### `view-config` - View current configuration\n\n```bash\n# View current configuration and authentication status\nfirecrawl view-config\n```\n\nShows authentication status and stored credentials location.\n\n---\n\n### `login` / `logout`\n\n```bash\n# Login\nfirecrawl login\nfirecrawl login --method browser\nfirecrawl login --method manual\nfirecrawl login --api-key fc-xxx\n\n# Login to self-hosted instance\nfirecrawl login --api-url https://firecrawl.mycompany.com\nfirecrawl login --api-url http://localhost:3002 --api-key fc-xxx\n\n# Logout\nfirecrawl logout\n```\n\n---\n\n## Global Options\n\nThese options work with any command:\n\n| Option                | Description                                            |\n| --------------------- | ------------------------------------------------------ |\n| `--status`            | Show version, auth, concurrency, and credits           |\n| `-k, --api-key \u003ckey\u003e` | Use specific API key                                   |\n| `--api-url \u003curl\u003e`     | Use custom API URL (for self-hosted/local development) |\n| `-V, --version`       | Show version                                           |\n| `-h, --help`          | Show help                                              |\n\n### Check Status\n\n```bash\nfirecrawl --status\n```\n\n```\n  🔥 firecrawl cli v1.13.0\n\n  ● Authenticated via stored credentials\n  Concurrency: 0/100 jobs (parallel scrape limit)\n  Credits: 500,000 / 1,000,000 (50% left this cycle)\n```\n\n---\n\n## Output Handling\n\n### Stdout vs File\n\n```bash\n# Output to stdout (default)\nfirecrawl https://example.com\n\n# Pipe to another command\nfirecrawl https://example.com | head -50\n\n# Save to file\nfirecrawl https://example.com -o output.md\n\n# JSON output\nfirecrawl https://example.com --format links --pretty\n```\n\n### Format Behavior\n\n- **Single format**: Outputs raw content (markdown text, HTML, etc.)\n- **Multiple formats**: Outputs JSON with all requested data\n\n```bash\n# Raw markdown output\nfirecrawl https://example.com --format markdown\n\n# JSON output with multiple formats\nfirecrawl https://example.com --format markdown,links,images\n```\n\n---\n\n## Tips \u0026 Tricks\n\n### Scrape multiple URLs\n\n```bash\n# Just pass multiple URLs -- results are saved to .firecrawl/\nfirecrawl scrape https://firecrawl.dev https://firecrawl.dev/blog https://docs.firecrawl.dev\n```\n\n### Combine with other tools\n\n```bash\n# Extract links and process with jq\nfirecrawl https://example.com --format links | jq '.links[].url'\n\n# Convert to PDF (with pandoc)\nfirecrawl https://example.com | pandoc -o document.pdf\n\n# Search within scraped content\nfirecrawl https://example.com | grep -i \"keyword\"\n```\n\n### CI/CD Usage\n\n```bash\n# Set API key via environment\nexport FIRECRAWL_API_KEY=${{ secrets.FIRECRAWL_API_KEY }}\nfirecrawl crawl https://docs.example.com --wait -o docs.json\n\n# Use self-hosted instance\nexport FIRECRAWL_API_URL=${{ secrets.FIRECRAWL_API_URL }}\nfirecrawl scrape https://example.com -o output.md\n```\n\n---\n\n## Telemetry\n\nThe CLI collects anonymous usage data during authentication to help improve the product:\n\n- CLI version, OS, and Node.js version\n- Detect development tools (e.g., Cursor, VS Code, Claude Code)\n\n**No command data, URLs, or file contents are collected via the CLI.**\n\nTo disable telemetry, set the environment variable:\n\n```bash\nexport FIRECRAWL_NO_TELEMETRY=1\n```\n\n---\n\n## Experimental\n\nExperimental commands live under `firecrawl experimental` (alias: `firecrawl x`).\n\n### `download` - Bulk Site Download\n\nCombines `map` + `scrape` to save a site as local files under `.firecrawl/`.\n\n```bash\nfirecrawl x download https://docs.firecrawl.dev\nfirecrawl x download https://docs.firecrawl.dev --screenshot --limit 20 -y\nfirecrawl x download https://docs.firecrawl.dev --include-paths \"/features,/sdks\" -y\n```\n\n### AI Workflows\n\nLaunch pre-built AI workflows that combine Firecrawl with your coding agent. One command spins up an interactive session with the right system prompt, tools, and instructions.\n\n```bash\n# Claude Code (available now)\nfirecrawl x claude competitor-analysis https://firecrawl.dev\nfirecrawl x claude deep-research \"RAG pipeline data ingestion tools\"\nfirecrawl x claude lead-research \"Vercel\"\nfirecrawl x claude seo-audit https://example.com\nfirecrawl x claude qa https://myapp.com\nfirecrawl x claude demo https://resend.com\nfirecrawl x claude shop \"best mechanical keyboard for developers\"\n\n# Natural language (no workflow name)\nfirecrawl x claude \"scrape the firecrawl docs and summarize\"\n\n# Codex and OpenCode -- coming soon\nfirecrawl x codex competitor-analysis https://crawlee.dev\nfirecrawl x opencode deep-research \"browser automation frameworks\"\n```\n\nAdd `-y` to auto-approve tool permissions.\n\nSee the full documentation: **[Experimental Workflows -\u003e](src/commands/experimental/README.md)**\n\n#### Prerequisites\n\nEach backend requires its CLI to be installed separately:\n\n| Backend  | Install                                               |\n| -------- | ----------------------------------------------------- |\n| Claude   | `npm install -g @anthropic-ai/claude-code`            |\n| Codex    | `npm install -g @openai/codex`                        |\n| OpenCode | [opencode.ai/docs/cli](https://opencode.ai/docs/cli/) |\n\n---\n\n## Documentation\n\nFor more details, visit the [Firecrawl Documentation](https://docs.firecrawl.dev).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirecrawl%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffirecrawl%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirecrawl%2Fcli/lists"}