$npx -y skills add firecrawl/cli --skill firecrawl-cliSearch, scrape, and interact with the web via the Firecrawl CLI. Use this skill whenever the user wants to search the web, find articles, research a topic, look something up online, scrape a webpage, grab content from a URL, get data from a website, crawl documentation, download
| 1 | # Firecrawl CLI |
| 2 | |
| 3 | Search, scrape, and interact with the web. Returns clean markdown optimized for LLM context windows. |
| 4 | |
| 5 | Run `firecrawl --help` or `firecrawl <command> --help` for full option details. |
| 6 | |
| 7 | If the task is to integrate Firecrawl into an application, add `FIRECRAWL_API_KEY` to a project, or choose endpoint usage in product code, use the `firecrawl-build` skills. If the task is an outcome workflow such as deep research, SEO audit, QA, lead generation, knowledge-base creation, dashboard reporting, shopping research, or website design-system extraction, use the `firecrawl-workflows` skills. They are already installed alongside this CLI skill when you run `firecrawl init`. |
| 8 | |
| 9 | ## Prerequisites |
| 10 | |
| 11 | Must be installed. Check with `firecrawl --status`. |
| 12 | |
| 13 | ``` |
| 14 | 🔥 firecrawl cli v1.8.0 |
| 15 | |
| 16 | ● Authenticated via FIRECRAWL_API_KEY |
| 17 | Concurrency: 0/100 jobs (parallel scrape limit) |
| 18 | Credits: 500,000 remaining |
| 19 | ``` |
| 20 | |
| 21 | - **Concurrency**: Max parallel jobs. Run parallel operations up to this limit. |
| 22 | - **Credits**: Remaining API credits. Each operation consumes credits. |
| 23 | |
| 24 | Authenticating gives the best results. Prefer a free account via `firecrawl init --browser` (browser login) or a `FIRECRAWL_API_KEY` whenever the human can sign up. If you cannot obtain a key and the human cannot sign up, you can still search, scrape, and interact without an API key on the keyless free tier (rate-limited). See [agent onboarding](https://www.firecrawl.dev/agent-onboarding/SKILL.md) for the full set of onboarding paths. |
| 25 | |
| 26 | If not ready, see [rules/install.md](rules/install.md). For output handling guidelines, see [rules/security.md](rules/security.md). |
| 27 | |
| 28 | Before doing real work, verify the setup with one small request: |
| 29 | |
| 30 | ```bash |
| 31 | mkdir -p .firecrawl |
| 32 | firecrawl scrape "https://firecrawl.dev" -o .firecrawl/install-check.md |
| 33 | ``` |
| 34 | |
| 35 | ```bash |
| 36 | firecrawl search "query" --scrape --limit 3 |
| 37 | ``` |
| 38 | |
| 39 | ## Workflow |
| 40 | |
| 41 | Follow this escalation pattern: |
| 42 | |
| 43 | 1. **Search** - No specific URL yet. Find pages, answer questions, discover sources. |
| 44 | 2. **Scrape** - Have a URL. Extract its content directly. |
| 45 | 3. **Map + Scrape** - Large site or need a specific subpage. Use `map --search` to find the right URL, then scrape it. |
| 46 | 4. **Crawl** - Need bulk content from an entire site section (e.g., all /docs/). |
| 47 | 5. **Monitor** - Need recurring checks or ongoing alerts. Prefer setting a monitor with `--page` plus `--goal` instead of doing repeated one-off scrapes. |
| 48 | 6. **Interact** - Scrape first, then interact with the page (pagination, modals, form submissions, multi-step navigation). |
| 49 | |
| 50 | | Need | Command | When | |
| 51 | | --------------------------- | --------------------- | --------------------------------------------------------- | |
| 52 | | Find pages on a topic | `search` | No specific URL yet | |
| 53 | | Get a page's content | `scrape` | Have a URL, page is static or JS-rendered | |
| 54 | | Find URLs within a site | `map` | Need to locate a specific subpage | |
| 55 | | Bulk extract a site section | `crawl` | Need many pages (e.g., all /docs/) | |
| 56 | | AI-powered data extraction | `agent` | Need structured data from complex sites | |
| 57 | | Interact with a page | `scrape` + `interact` | Content requires clicks, form fills, pagination, or login | |
| 58 | | Download a site to files | `download` | Save an entire site as local files | |
| 59 | | Parse a local file | `parse` | File on disk (PDF, DOCX, XLSX, etc.) — not a URL | |
| 60 | | Watch pages for changes | `monitor` | Schedule recurring scrapes/crawls, diff against snapshots | |
| 61 | |
| 62 | For detailed command reference, run `firecrawl <command> --help`. |
| 63 | |
| 64 | **Scrape vs interact:** |
| 65 | |
| 66 | - Use `scrape` first. It handles static pages and JS-rendered SPAs. |
| 67 | - Use `scrape` + `interact` when you need to interact with a page, such as clicking buttons, filling out forms, navigating through a complex site, infinite scroll, or when scrape fails to grab all the content you need. |
| 68 | - Neve |