Model or dataset
firecrawl/cli avatar
firecrawl/cli

Firecrawl CLI: wiring live web scraping into coding agents

CLI and Agent Skill for Firecrawl - Add scrape, search, and browsing capabilities to your AI agents

631 stars100 forksTypeScriptLicense varies

At a glance

What is it?
The Firecrawl CLI is a TypeScript command-line tool plus a skill catalog that gives coding agents scrape, search, crawl and map abilities. It is useful if your agent needs the live web, and it is the wrong tool if you only need one HTTP fetch.
Who is it for?
Adopt the Firecrawl CLI if your agents already do web work and you want that work routed through one provider with skills installed into Claude Code, Codex, Cursor or the other supported harnesses. Do not adopt it if you need a permissive, clearly documented licence before shipping, or if a single fetch call in your own code is enough.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The gap between an agent and a live web page

A coding agent that only reads your repository cannot answer questions about a page that changed this morning. The Firecrawl CLI exists to close that gap from the terminal. Its README describes it as a command-line interface for Firecrawl that can "Search, scrape, interact, crawl, map, search research papers and developer sources, and run agent jobs directly from your terminal." The audience is narrow and specific: developers who already run an AI coding agent and want that agent to reach the web through a tool it knows how to call. The second half of the project is not the binary at all. It is the skill catalog, which teaches agents how to invoke the CLI and how to produce deliverables such as research briefs, SEO audits, QA reports, lead lists, knowledge bases and design-system extraction. That split matters when you evaluate it. You are adopting a command-line client and a set of prompt-side instructions, and the two have separate release and contribution paths.

One binary, two install surfaces: the CLI and the skill catalog

The mechanism has two layers. The first is the firecrawl command itself, installed with npm install -g firecrawl-cli. It talks to the Firecrawl API, and the README shows it prompting for authentication on first run, either through a browser login or a manually entered API key. The second layer is the skills, which are markdown instruction sets written into the configuration directories of detected coding agents. The init command installs the CLI skills by default and offers workflow skills as optional extras. Skill families are separated by purpose: core covers scrape, search, crawl and interact primitives, build covers integrating the Firecrawl API into application code, and workflows covers end-to-end recipes. Individual skills can be installed by name, and the firecrawl- prefix is optional, so firecrawl setup seo-audit and firecrawl setup developer-index both work. The routing layer is the part worth understanding before you run anything, because by default skills go to every detected harness on the machine.

Harness routing and the defaults switch

The CLI detects coding agents and writes skills into each one unless you restrict it. The README lists eight supported harnesses with their --agent values: claude-code, codex, cursor, windsurf, opencode, openclaw, openhands and hermes-agent. Scoping is available at every entry point. The install script forwards arguments after bash -s -- to firecrawl init, so curl -fsSL https://firecrawl.dev/install.sh | bash -s -- --agent openclaw installs for OpenClaw alone. Once installed, firecrawl setup skills --agent openclaw and firecrawl setup workflows --agent openclaw do the same for individual families. Run interactively without --agent, init shows a checkbox of detected harnesses with all of them selected, which is a sensible default for a personal machine and a poor one for a shared or locked-down environment. There is a more invasive option as well: firecrawl setup defaults, aliased as firecrawl make default, disables native web fetch and search in supported agents so that web work routes through Firecrawl instead. The README states this applies where supported and asks harness by harness in interactive mode. Undo exists as firecrawl setup defaults --undo, with --agent to target one harness. Treat the defaults command as a configuration change to your editor setup, not as a package install, and read what it disables before running it with -y.

Scrape, crawl and map from the shell

The command surface is broad and mostly self-describing. firecrawl https://example.com and firecrawl scrape https://example.com both extract a page and output markdown. Flags change the output shape: --html or -H returns raw HTML, and --format markdown,links,images returns JSON instead. Multiple URLs are scraped concurrently, and the README says each result is saved to .firecrawl/ automatically, which means a scrape run leaves files behind in your working directory. Output can be redirected with -o output.md. Beyond scraping, the same binary exposes search, interact, crawl, map and agent jobs, plus the research and developer index skills. The README does not spell out the flag set for crawl, map or the agent subcommand in the portion available here, so check firecrawl --help or the documentation site before scripting those. The scrape path is the one with enough detail in the material to describe confidently.

Authentication, self-hosting and the custom URL shortcut

Authentication resolves in a fixed order. The CLI prompts when it needs a key, firecrawl login opens a browser flow, firecrawl login --api-key fc-your-api-key takes a key directly, and the FIRECRAWL_API_KEY environment variable works without any login step. A per-command --api-key flag also exists. The interesting behaviour is the custom API URL path. Point the CLI at anything other than https://api.firecrawl.dev with --api-url or FIRECRAWL_API_URL and authentication is skipped automatically, which the README frames as a way to use local instances without a key. That is convenient for a local Firecrawl on http://localhost:3002, and it is also a silent failure mode: a typo in the host, or a staging URL that happens to be reachable, produces an unauthenticated client rather than an error. If you self-host behind a gateway that does require a key, you must pass --api-key explicitly, because the skip rule is triggered by the URL alone. The README gives the self-hosted example as firecrawl --api-url https://firecrawl.mycompany.com --api-key fc-xxx scrape https://example.com, which confirms the combination is supported.

Where the CLI gets in the way

Three limits are visible in the material. First, the licence is not stated. The repository metadata supplied here lists the licence as unknown, and no LICENSE text appears in the README. For a tool that writes configuration into your editors and, through setup defaults, disables built-in web fetch, that is a gap you should resolve by reading the repository rather than assuming. Second, the non-interactive behaviour is deliberately quiet. The README says that if no API key is found afterwards, an interactive terminal offers a browser login, while non-interactive runs never block: they print a hint and the skills walk agents through setup on first use. In CI or a container that means a missing key surfaces later, inside an agent run, not at install time. Third, the skill catalog is spread across three repositories with different contribution rules. CLI skills including the research and developer index skills go to this repo under skills/, build and SDK skills go to the firecrawl monorepo, workflow skills go to firecrawl/firecrawl-workflows, and the firecrawl/skills catalog is described as read-only and must not be PR'd directly. If your team plans to maintain private skills, that layout determines where your fork or patch lives.

Firecrawl CLI against calling the API from your own code

The obvious alternative is not another CLI. It is skipping the CLI and calling the Firecrawl API from your application or agent toolchain directly, which is what the build skills are for. The difference is where the logic lives. With the CLI, the agent shells out to firecrawl scrape and reads the result; the tool contract is the command line, the output lands in .firecrawl/ or stdout, and the agent needs no Firecrawl SDK in its runtime. With direct API calls, your code owns retries, pagination, concurrency and output parsing, and the agent needs a tool wrapper you wrote. The CLI is the faster path when the consumer is an agent that already knows how to run shell commands and when you want the same behaviour across several harnesses without writing a wrapper per editor. Direct API integration is the better path when the consumer is a service, when you need typed responses in a build pipeline, or when you want no global npm package and no skill files written into editor configuration. A narrower third option: if you need one page fetched once, a plain HTTP request in your own code is cheaper than installing a global CLI and a skill catalog.

Upgrades, skill drift and what to check before rolling out

The release cadence is fast. The supplied history shows v1.23.3 on 2026-08-27, v1.23.1 and v1.23.0 both on 2026-08-21, and the last push to the default branch on 2026-09-09. Three releases in a week at the 1.23 line suggests frequent patch-level change. Because npx -y firecrawl-cli@latest init pulls the newest version at run time, an unpinned setup command can produce a different skill set on two machines provisioned a day apart. Pin the version in any scripted bootstrap, and treat skill updates as a reviewable change: skills are instructions your agent will follow, and they are installed outside your repository, so they will not show up in a normal code review. The practical check before adopting is small. Confirm the licence by reading the repository. Confirm which harnesses you actually use, then scope with firecrawl init --agent <name> rather than accepting the all-selected checkbox. Confirm whether firecrawl setup defaults is acceptable for your team, since it changes native web fetch and search behaviour in supported agents and is undone with firecrawl setup defaults --undo. Then run one scrape against a page you know and inspect what lands in .firecrawl/.

Editorial conclusion

Adopt the Firecrawl CLI if your agents already do web work and you want that work routed through one provider with skills installed into Claude Code, Codex, Cursor or the other supported harnesses. Do not adopt it if you need a permissive, clearly documented licence before shipping, or if a single fetch call in your own code is enough. Before installing, check the repository for a LICENSE file, because the supplied material does not state one, and confirm which harnesses your team actually uses so you can scope the install with firecrawl init --agent <name> instead of writing skills into every editor on the machine.

Official sources

  1. firecrawl/cli on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
Community notes

Community notes