Firecrawl CLI
Search, scrape, crawl, map, interact with, and monitor the live web. Returns clean, LLM-optimized Markdown and structured JSON.
Command Runner
Run via installed firecrawl binary or ephemeral bun x firecrawl-cli@latest. Do not invoke npx, npm, or raw node.
# Verify status, concurrency limit, and remaining API credits
firecrawl --status
# Or ephemeral
bun x firecrawl-cli@latest --status
Escalation Workflow
Select the narrowest command fitting the task:
- Search: No URL known yet. Find pages, discover sources, query developer/paper indexes.
- Scrape: Specific URL known. Extract clean Markdown or structured JSON. Static or JS-rendered.
- Map + Scrape: Target site known, exact path unknown. Use
map --search to find URLs, then scrape.
- Crawl: Bulk content extraction across an entire domain or documentation section.
- Interact: Post-scrape browser actions (clicks, form fills, auth, pagination, infinite scroll).
- Agent: Multi-hop autonomous extraction into structured JSON schemas across complex sites.
- Monitor: Recurring checks, diffs, and change alerting (email or webhook) instead of manual loops.
Quick Start
# Clean markdown scrape (main article only)
firecrawl scrape "https://example.com" --only-main-content -o .firecrawl/page.md
# Web search with direct page scraping
firecrawl search "query terms" --scrape -o .firecrawl/search.json --json
# Map endpoints matching a path
firecrawl map "https://docs.example.com" --search "auth" -o .firecrawl/urls.txt
# Recursive docs crawl with depth limit
firecrawl crawl "https://docs.example.com" --include-paths "/docs" --limit 50 --wait -o .firecrawl/crawl.json
# Live page interaction after scrape
firecrawl scrape "https://example.com/login"
firecrawl interact "Fill in email with user@example.com and submit"
firecrawl interact stop
Required Follow-up Reads
| Need |
Read |
When |
| Page scraping & extraction |
references/scrape.md |
Scraping URLs, JS hydration, schemas, screenshots, or actions |
| Web & news search |
references/search.md |
Searching the live web, time filters, sources, or credit refunds |
| Developer & bug index |
references/developer-index.md |
Searching issues, merged PRs, READMEs, and developer docs |
| Research paper corpus |
references/research-index.md |
PubMed, bioRxiv, medRxiv, arXiv paper search and citation graphs |
| Bulk site crawling |
references/crawl.md |
Multi-page domain extraction, path regexes, depth, concurrency |
| URL & sitemap mapping |
references/map.md |
Discovering site routes and subdomains before scraping |
| Autonomous AI extraction |
references/agent.md |
Complex multi-page schema extraction using reasoning models |
| Browser session driving |
references/interact.md |
Clicks, forms, session profiles, Playwright/Node/Bash code |
| Change detection & alerts |
references/monitor.md |
Setting up recurring checks, schedules, diffs, and webhooks |
| Monitor goal authoring |
references/monitor-goals.md |
Tuning --goal precision and --queries recall for monitors |
| Structured field diffs |
references/monitor-json-tracking.md |
Per-field JSON change tracking and schema extraction diffs |
| Local document parsing |
references/parse.md |
Converting local PDF, DOCX, XLSX, or HTML files to Markdown |
| Bulk site download |
references/download.md |
Mirroring site hierarchy to local markdown and assets |
| Job feedback & refunds |
references/feedback.md |
Submitting feedback to refund credits and tune search |
| Setup, auth & security |
references/install-and-security.md |
API keys, self-hosted endpoints, prompt injection guards |
Output & Storage Rules
- Always route outputs to
.firecrawl/ using -o to avoid flooding agent context.
- Always quote URLs in shell commands to prevent
& and ? parameter splitting.
- Inspect fetched files with bounded tools (
head, grep, jq, or range reads).
- Single format flag outputs raw text; multiple formats (
--format markdown,links) output JSON.
Environment & Keyless Fallback
- Set
FIRECRAWL_API_KEY for full cloud access, higher rate limits, and crawl/map/agent features.
- Connect to self-hosted instances with
export FIRECRAWL_API_URL="http://localhost:3002" (no key required).
- Keyless free tier supports
scrape, search, and interact with per-IP rate limits.
1---2name: firecrawl3description: Use when scraping, crawling, mapping, searching the web, extracting structured data, or monitoring diffs via Firecrawl.4license: AGPL-3.0-or-later5---67# Firecrawl CLI89Search, scrape, crawl, map, interact with, and monitor the live web. Returns clean, LLM-optimized Markdown and structured JSON.1011## Command Runner1213Run via installed `firecrawl` binary or ephemeral `bun x firecrawl-cli@latest`. Do not invoke `npx`, `npm`, or raw `node`.1415```bash16# Verify status, concurrency limit, and remaining API credits17firecrawl --status18# Or ephemeral19bun x firecrawl-cli@latest --status20```2122## Escalation Workflow2324Select the narrowest command fitting the task:25261. **Search**: No URL known yet. Find pages, discover sources, query developer/paper indexes.272. **Scrape**: Specific URL known. Extract clean Markdown or structured JSON. Static or JS-rendered.283. **Map + Scrape**: Target site known, exact path unknown. Use `map --search` to find URLs, then scrape.294. **Crawl**: Bulk content extraction across an entire domain or documentation section.305. **Interact**: Post-scrape browser actions (clicks, form fills, auth, pagination, infinite scroll).316. **Agent**: Multi-hop autonomous extraction into structured JSON schemas across complex sites.327. **Monitor**: Recurring checks, diffs, and change alerting (email or webhook) instead of manual loops.3334## Quick Start3536```bash37# Clean markdown scrape (main article only)38firecrawl scrape "https://example.com" --only-main-content -o .firecrawl/page.md3940# Web search with direct page scraping41firecrawl search "query terms" --scrape -o .firecrawl/search.json --json4243# Map endpoints matching a path44firecrawl map "https://docs.example.com" --search "auth" -o .firecrawl/urls.txt4546# Recursive docs crawl with depth limit47firecrawl crawl "https://docs.example.com" --include-paths "/docs" --limit 50 --wait -o .firecrawl/crawl.json4849# Live page interaction after scrape50firecrawl scrape "https://example.com/login"51firecrawl interact "Fill in email with user@example.com and submit"52firecrawl interact stop53```5455## Required Follow-up Reads5657| Need | Read | When |58|---|---|---|59| Page scraping & extraction | `references/scrape.md` | Scraping URLs, JS hydration, schemas, screenshots, or actions |60| Web & news search | `references/search.md` | Searching the live web, time filters, sources, or credit refunds |61| Developer & bug index | `references/developer-index.md` | Searching issues, merged PRs, READMEs, and developer docs |62| Research paper corpus | `references/research-index.md` | PubMed, bioRxiv, medRxiv, arXiv paper search and citation graphs |63| Bulk site crawling | `references/crawl.md` | Multi-page domain extraction, path regexes, depth, concurrency |64| URL & sitemap mapping | `references/map.md` | Discovering site routes and subdomains before scraping |65| Autonomous AI extraction | `references/agent.md` | Complex multi-page schema extraction using reasoning models |66| Browser session driving | `references/interact.md` | Clicks, forms, session profiles, Playwright/Node/Bash code |67| Change detection & alerts | `references/monitor.md` | Setting up recurring checks, schedules, diffs, and webhooks |68| Monitor goal authoring | `references/monitor-goals.md` | Tuning `--goal` precision and `--queries` recall for monitors |69| Structured field diffs | `references/monitor-json-tracking.md` | Per-field JSON change tracking and schema extraction diffs |70| Local document parsing | `references/parse.md` | Converting local PDF, DOCX, XLSX, or HTML files to Markdown |71| Bulk site download | `references/download.md` | Mirroring site hierarchy to local markdown and assets |72| Job feedback & refunds | `references/feedback.md` | Submitting feedback to refund credits and tune search |73| Setup, auth & security | `references/install-and-security.md` | API keys, self-hosted endpoints, prompt injection guards |7475## Output & Storage Rules7677- Always route outputs to `.firecrawl/` using `-o` to avoid flooding agent context.78- Always quote URLs in shell commands to prevent `&` and `?` parameter splitting.79- Inspect fetched files with bounded tools (`head`, `grep`, `jq`, or range reads).80- Single format flag outputs raw text; multiple formats (`--format markdown,links`) output JSON.8182## Environment & Keyless Fallback8384- Set `FIRECRAWL_API_KEY` for full cloud access, higher rate limits, and crawl/map/agent features.85- Connect to self-hosted instances with `export FIRECRAWL_API_URL="http://localhost:3002"` (no key required).86- Keyless free tier supports `scrape`, `search`, and `interact` with per-IP rate limits.