Firecrawl CLI
Search, scrape, and interact with the web from your terminal or any coding agent — Firecrawl's context API on the command line.
- Source repo
- firecrawl/cli
- Stars
- ★ 677
- Last updated
- today
- Primary language
- TypeScript
- FA score
- 47/100 · Major gaps
At a glance
- Works with
- Platform-specificCodex · Claude CodeOpenAI API · Claude API (Partial support)
- You'll need
- Typical use
- Developers who want Claude Code or Codex to scrape docs and search the web and get markdown back
- Main limitation
- Core operations depend on the Firecrawl cloud API and your account credits; agent jobs need --max-credits to bound spend
- Source review
- 47/100 · Major gaps
What does this agent do, and when should you use it?
Firecrawl CLI is the official command-line client for Firecrawl, a context API for AI agents, installed globally from npm as firecrawl-cli. It wraps scrape, search, map, crawl, batch-scrape, agent, interact, monitor and related operations as subcommands that emit markdown, HTML, screenshots or structured JSON to stdout, a file, or a downstream pipe such as jq or pandoc. Beyond generic web fetching it exposes three specialized retrieval surfaces: developer (public repos, GitHub issues and PRs, docs), gov (US statutes, regulations and court material) and research (roughly 43M paper abstracts with search-papers, inspect-paper, related-papers and read-paper). It also acts as an agent integration layer: init and setup install CLI and workflow skills into Claude Code, Codex, Cursor, Windsurf and other coding agents, setup mcp writes Firecrawl MCP server config into many editors, and setup defaults makes Firecrawl the default web provider for supported agents. Running it needs Node.js and a Firecrawl API key, or a self-hosted instance via --api-url.
The CLI takes URLs, query strings or JSON option files, calls the Firecrawl API (default https://api.firecrawl.dev) and prints results. scrape extracts page content in formats such as markdown, html, rawHtml, links, images, screenshot, summary, json, changeTracking, attributes and branding, with flags like --only-main-content, --wait-for, --screenshot, --schema, --actions and --redact-pii. search queries web, news, images and alexandria sources with --categories research/pdf/developer/gov, time filters via --tbs and optional result scraping via --scrape. map lists site URLs without scraping, while crawl and batch-scrape run asynchronous jobs you can follow with --wait, --progress, --webhook or abort with --cancel. agent drives prompt-based extraction with --schema, --effort, --max-credits and --thread continuation, plus approval gating for Alexandria provider calls. interact drives an already scraped page in a live browser session through natural language or Playwright code (--node, --python, --bash). Output can go to stdout, -o files or --json/--pretty. The setup family installs skills into the shared ~/.agents/skills directory and links them into detected editors; setup mcp writes client MCP configs; setup defaults disables native web fetch in agents so they route through Firecrawl.
- Developers who want Claude Code or Codex to scrape docs and search the web and get markdown back
- Data engineers converting many pages into structured JSON, such as product names and prices
- Growth and SEO teams running crawl and map across a site for audits or competitive research
- Researchers who need biomedical or arXiv literature and citation-graph expansion
- Legal and compliance staff looking up US federal and state statutes, regulations and case law
- Engineering leads standardizing a web-search MCP setup across several coding agents
How do you install or deploy this agent?
Requires Node.js and npm. Install globally:
npm install -g firecrawl-cliOr do the whole setup in one command — install the CLI, authenticate, and install shared skills for detected editors (-y non-interactive, --browser opens the login page):
npx -y firecrawl-cli@latest init -y --browserYou can also scope setup to a single harness with the install script:
curl -fsSL https://firecrawl.dev/install.sh | bash -s -- --agent openclawHow do you use this agent?
The first command prompts for authentication — browser login or a manually entered API key:
firecrawl https://example.com
firecrawl login --api-key fc-your-api-keyAlternatively use the environment variable or point at a self-hosted instance:
firecrawl scrape https://example.com
export FIRECRAWL_API_KEY=fc-your-api-key
export FIRECRAWL_API_URL=http://localhost:3002
firecrawl --api-url http://localhost:3002 scrape https://example.comTypical commands:
firecrawl search "AI news" --limit 10 --scrape
firecrawl map https://example.com --search blog
firecrawl crawl https://example.com --wait --progress
firecrawl agent "Extract product names and prices" --wait --json --prettyWire it into coding agents:
firecrawl setup core
firecrawl setup workflows
firecrawl setup mcp --agent all --global
firecrawl setup defaults --agent codexWhat are this agent's strengths and limitations?
- A single CLI covers the full web surface — scrape, search, map, crawl, batch-scrape, agent, interact, monitor — with pipeable or file output
- Ships three purpose-built indexes (developer, gov, research) including paper subcommands like search-papers, related-papers and read-paper
- Agent-native: setup core/build/workflows installs skills, and setup mcp writes config for Claude Code, Codex, Cursor, Zed and many more in one run
- Works against self-hosted or local instances; --api-url to a non-default host skips authentication entirely
- Core operations depend on the Firecrawl cloud API and your account credits; agent jobs need --max-credits to bound spend
- The repository declares no license (unknown), so enterprises must verify terms before adoption
- Setup writes into user directories (~/.agents/skills, editor settings) and setup defaults changes agents' native web behavior
- Anonymous telemetry is collected at authentication by default and must be disabled with FIRECRAWL_NO_TELEMETRY=1
- Agent tasks usually take 2–5 minutes, and some Alexandria providers require an org admin to accept data terms in the dashboard first
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Firecrawl CLI This agent | 47 · Major gaps | — | ★ 677 | today | TypeScript | Codex · Claude Code |
| Deep Code CLI | 49 · Major gaps | CLIFree + model costs | ★ 2.2k | 1d ago | TypeScript | — |
| Firecrawl Web Research MCP | 66 · Some gaps | MCP serverFreemium | ★ 7.8k | today | JavaScript | Claude.ai |
| wigolo | 54 · Major gaps | CLIFree + model costs | ★ 5.5k | 1d ago | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
How does FollowAgents rate this agent?
Why each dimension lost points
README shows the CLI writes global configs across many editors/agents (setup defaults, setup mcp, setup skills) and by default targets every detected harness, a broad permission surface narrowed only by --agent and --undo, so least_privilege and user_confirmation score 1. Data flow is only described as requests to the Firecrawl API or a custom --api-url; there is no systematic account of how scraped content, API keys, or telemetry (update checks, skill-lock) are transmitted or stored, so data_flow_transparency and sensitive_data_handling are 1 (a --redact-pii flag exists but its default is unstated). Dependency security gets 2: lockfile, pinned firecrawl 4.51.0, SHA-pinned CI actions, and --provenance publishing, though no audit evidence. External effects (editing editor configs, disabling native web tools) have --undo but no transactional rollback narrative, so external_effects and rollback are 1. Source attribution rests on README/package.json claims with an unverified publisher, so 1.
Commands and option tables in README broadly match package.json bin/engines, so self_consistency is 2, though the README is truncated at the gov command and some option tables are incomplete. Dependency availability gets 2 given a lockfile, Node>=22 engine declaration, and an npm publish pipeline. Failure messaging is thin: README mentions non-interactive hints and a per-client summary, but no error codes or exit-code semantics, so failure_messages is 1.
README targets terminal users and multiple coding agents (Claude Code, Codex, Cursor, etc.) across search, scrape, research, and gov scenarios, so audience_and_scenarios is 2. Capability boundaries are stated (gov category cannot combine with others; developer command is deliberately lean), so capability_boundaries is 2. Trigger precision is weaker: skill install and default routing depend on auto-detected harnesses and npx always includes Codex, so trigger_precision is 1. Environment fit gets 2 for self-hosted --api-url, XDG/CLAUDE_CONFIG_DIR handling, and multi-platform binaries.
README is well-structured by command, so information_architecture is 2; install notes are thorough (npm, npx init, curl installer), so install_notes is 2; examples are plentiful, so examples_and_faq is 2. Naming stability is weaker with core/build/workflows plus a skills alias and multiple --agent aliases, so naming_stability is 1. Known limitations are only scattered (e.g., Antigravity/Zed skipped), so known_limitations is 1. License: package.json declares ISC but the description lists license metadata as unknown and no LICENSE file is shown, so license is 1. A version exists in package.json but no CHANGELOG, so versioning_changelog is 1. Maintenance responsibility points only to Firecrawl and an issues link with an unverified publisher, so maintenance_responsibility is 1.
Output usability is solid with markdown/JSON/file output, multiple formats, and --pretty, so output_usability is 2. It adds research/developer/gov indexes and structured extraction beyond native web tools, so marginal_value is 2. Cost-benefit is weaker: it depends on the paid Firecrawl API and an API key, and README does not cover quotas, billing, or offline fallback, so cost_benefit is 1.
Most README capability claims trace to concrete commands and options, but there are no per-claim references to API docs or tests, so claim_traceability is 1. Cross-source corroboration is limited: README, package.json, and CI workflows are mutually consistent (version, publish flow) but there are no tests or third-party corroboration, so cross_source_corroboration is 1. Fact/inference separation is weak since README is largely descriptive without marking which behaviors are verified, so fact_inference_separation is 1.
- setup defaults disables native agent web fetch/search and rewrites global configs across many editors, applying to all detected harnesses by default; confirm --agent scope and keep the --undo path before use.
- The CLI depends on the hosted Firecrawl API and an API key; README does not cover data retention, telemetry (update checks, skill-lock), or billing, so sensitive scraped content needs independent assessment.
- Publisher identity is unverified by the FollowAgents registry, license metadata is unknown, and no LICENSE file is shown; verify licensing and provenance before adoption.
- README is truncated at the gov command, leaving some options and behaviors undocumented, so full capability cannot be inferred from it.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
v1.28.0 Firecrawl CLI v1.28.0
Release notes excerpt
- Merge pull request #370 from firecrawl/release/v1.28.0 - chore(release): bump version to 1.28.0 - feat: add --sort to research search-papers and print row dates (#364)View on GitHub ↗ -
v1.27.0 Firecrawl CLI v1.27.0
Release notes excerpt
- chore(release): bump version to 1.27.0 (#365) - fix(update): run firecrawl update from the installed package (#366) - feat: automatically update global CLI installations (#359)View on GitHub ↗ -
v1.26.25 Firecrawl CLI v1.26.25
Release notes excerpt
- fix: follow the API's main-content default and send crawl --delay in seconds (#354) - Merge pull request #358 from firecrawl/kris/retire-research-search-github - test(search): assert both github category replacements - fix(search): point the removed github category to developer - fix(research): retire search-github and point to firecrawl developerView on GitHub ↗