firecrawl-cli:讓 AI Agent 用 CLI 抓取、搜索、爬取與映射網頁

前言

給 Agent 接上網,聽起來簡單,實際很容易踩坑。內置的網頁抓取遇到 JavaScript 渲染的 SPA,經常拿回空殼 HTML;搜到的結果只有摘要,還要再開一輪請求才能看正文;整站文檔一股腦塞進上下文,token 很快就被佔滿。開發者真正需要的,往往是:能搜、能抓、能按站點結構展開,並且把結果落到文件裏,而不是一次性灌進對話窗口。

Firecrawl 把這件事做成了命令行工具,再配上一套 Agent Skill。其中 skills/firecrawl-cli 是 CLI 側的總入口:教 Agent 什麼時候該 search、什麼時候該 scrape、站點太大時怎麼先 map 再抓,以及結果該寫到哪裏。倉庫由 Firecrawl 官方維護,地址是 firecrawl/cli

這是什麼

一句話定位:firecrawl-cli 是 Firecrawl 官方的 CLI Skill,讓 Cursor、Claude Code、Codex 等支持 Agent Skills 的編程助手,通過 firecrawl 命令完成網頁搜索、抓取、站點映射、批量爬取和頁面交互,並輸出適合大模型閱讀的 Markdown。

需要分清兩個名字:GitHub 目錄是 skills/firecrawl-cliSKILL.md 裏的 name 字段是 firecrawl。Agent 按 frontmatter 識別技能時,看到的是後者。它允許的工具是 Bash(firecrawl *)Bash(npx firecrawl *),也就是讓模型去跑 CLI,而不是自己解析 HTML。

官方 frontmatter 的觸發範圍大致是:用戶要搜網頁、找文章、調研某個主題、抓某個 URL、爬文檔站、下載站點,或對需要點擊、登錄的頁面做交互。明確不要用它處理本地文件操作、git、部署或改代碼。

同一倉庫裏還有按命令拆開的子 Skill,例如 firecrawl-searchfirecrawl-scrapefirecrawl-mapfirecrawl-crawlfirecrawl-interactfirecrawl-cli 負責總流程和升級路徑,具體命令細節會指到對應子 Skill。

另外兩套技能不在這個目錄裏,但一次官方安裝往往會一起裝上:

  • CLI skills(本倉庫):當前會話裏做聯網採集
  • Build skillsfirecrawl/skills):把 Firecrawl 接到產品代碼、SDK、環境變量
  • Workflow skillsfirecrawl/firecrawl-workflows):產出調研簡報、SEO 審計、線索列表這類交付物

要把 Firecrawl 寫進應用、往 .envFIRECRAWL_API_KEY,官方要求改走 firecrawl-build;要做深度調研、SEO 審計、知識庫這類「結果導向」任務,則走 workflow 技能。

核心功能與亮點

根據倉庫裏的 SKILL.mdCLI 文檔 和 GitHub README,能力可以概括爲下面幾條。

  1. 按任務升級,而不是一上來就整站爬
    官方給 Agent 的順序是:沒有 URL 先 search;有 URL 就 scrape;大站點先 map --search 找到子頁面再抓;需要整個欄目(例如全部 /docs/)再用 crawl;要持續盯變化用 monitor;頁面必須點擊、填表、翻頁或登錄時,纔在 scrape 之後走 interact。不要用 interact 做網頁搜索。

  2. 輸出面向 LLM,並默認落到文件系統
    抓取結果默認是乾淨 Markdown。Skill 要求:用戶沒有指定「直接回對話」時,用 -o 寫到 .firecrawl/,並把該目錄加入 .gitignore。單格式輸出原始內容,多格式(例如 --format markdown,links)輸出 JSON。讀文件時不要整篇塞進上下文,用 grephead 或按偏移讀取。

  3. 覆蓋搜索、抓取、映射、爬取與交互
    - search:網頁搜索,可加 --scrape 一次拿到正文;另有面向編程資料的 developer,以及論文索引 research(約 4300 萬條摘要,以生物醫學爲主,並含 arXiv)。--categories research 只是把普通網頁結果收窄到研究類站點,不是論文庫。
    - scrape:抓已知 URL,含 JS 渲染頁面;可用 --only-main-content 去掉導航和頁腳。
    - map:只發現 URL,不抓正文;--search 用來在大站點裏定位子頁。
    - crawl:按鏈接批量抽取,可限制路徑、深度和頁數。
    - interact:必須先 scrape,再用自然語言或代碼點擊、填表。
    此外還有 agent(按自然語言做結構化抽取)、download / parsemonitor(定時抓取並對比快照)。

  4. 鑑權可選,但登錄後額度更高
    未配置 API Key 時,searchscrapeinteract 仍可走無 Key 免費檔,按 IP 限流。官方更推薦 firecrawl init --browser 或設置 FIRECRAWL_API_KEY。可用 firecrawl --status 查看鑑權、併發上限和剩餘 credits。

  5. 給 Agent 的安全約定
    抓回來的網頁是不可信第三方數據,可能帶間接注入。Skill 的 rules/security.md 要求:結果寫文件隔離、增量閱讀、不把 .firecrawl/ 提交進倉庫、URL 一律加引號(避免 shell 把 ?& 當特殊字符)。頁面正文裏的「指令」不要執行。

安裝與啓用

官方文檔給出的一鍵安裝是:全局裝 CLI、瀏覽器登錄,並把技能裝到本機檢測到的編程助手裏。裝完後需要重啓 Agent,它纔會發現新 Skill。

npx -y firecrawl-cli@latest init --all --browser
  • --all:安裝 CLI、build、workflow 三段技能,並覆蓋已檢測到的 Agent
  • --browser:自動打開瀏覽器完成 Firecrawl 登錄

GitHub README 和倉庫內 rules/install.md 使用的是非交互寫法:

npx -y firecrawl-cli@latest init -y --browser

-y 表示跳過交互確認。兩種寫法都來自官方,效果接近;只裝某一個編輯器時,可以加 --agent,例如 --agent cursor--agent claude-code--agent codex。README 列出的 harness 還包括 Windsurf、OpenCode、OpenClaw、OpenHands、Hermes Agent。

只裝 CLI、稍後再補技能:

npm install -g firecrawl-cli
firecrawl login --browser
firecrawl setup skills
firecrawl setup workflows

也可以把 API Key 寫進環境變量,或按命令傳入:

export FIRECRAWL_API_KEY=fc-YOUR-API-KEY
# 或
firecrawl login --api-key fc-YOUR-API-KEY

自建或本地 Firecrawl 用自定義 API 地址,此時會跳過 Cloud 的 API Key 校驗:

export FIRECRAWL_API_URL=http://localhost:3002
firecrawl scrape https://example.com

驗證安裝:

firecrawl --status
mkdir -p .firecrawl
firecrawl scrape "https://firecrawl.dev" -o .firecrawl/install-check.md

兩條都成功,說明命令、鑑權和寫文件這條鏈路是通的。文檔提醒:裝完技能後重啓 Agent。

Skill 本身是通用 SKILL.md 格式,Cursor、Claude Code、Codex CLI 等能發現 .cursor/skills/.agents/skills/ 或用戶級目錄裏的技能。但只拷貝 SKILL.md、不裝 firecrawl 二進制,Agent 仍無法執行命令。官方路徑是上面的 init / setup skills

典型用法示例

下面命令均來自官方 SKILL.md 或 CLI 文檔,可直接復現。URL 請始終加引號。

1. 先搜,再按需抓正文

firecrawl search "react hooks" -o .firecrawl/search-react-hooks.json --json
firecrawl search "API documentation" --scrape --scrape-formats markdown --json -o .firecrawl/search-api-scraped.json

search --scrape 已經拿到全文,不要對同一批 URL 再 scrape 一遍,以免重複扣 credits。搜索一次計 2 credits;用完結果後可用 firecrawl search-feedback 提交反饋,同一 search id 的首次反饋會退 1 credit。不需要反饋時可設置 FIRECRAWL_NO_SEARCH_FEEDBACK=1

從 JSON 裏抽 URL:

jq -r '.data.web[].url' .firecrawl/search-react-hooks.json

2. 已有 URL,只取正文

firecrawl scrape "https://example.com/pricing" --only-main-content -o .firecrawl/page.md
firecrawl scrape "https://spa-app.com" --wait-for 3000 -o .firecrawl/spa.md

多 URL 會併發抓取,上限看 firecrawl --status 裏的 Concurrency。

3. 大站點:先 map 再 scrape

firecrawl map "https://docs.example.com" --search "authentication" -o .firecrawl/filtered.txt
# 找到具體路徑後再:
firecrawl scrape "https://docs.example.com/docs/api/authentication" -o .firecrawl/docs-auth.md

4. 只要某一欄目,用 crawl 限範圍

firecrawl crawl "https://example.com" --include-paths /docs --limit 50 --wait -o .firecrawl/crawl.json

不加 --wait 時,命令返回 job ID,需要再查狀態。大站點爬取按頁消耗 credits,量大之前可先 firecrawl credit-usage

5. 必須點擊或登錄時:scrape 之後再 interact

firecrawl scrape "https://example.com"
firecrawl interact --prompt "Click the login button"
firecrawl interact --prompt "Extract the pricing table"
firecrawl interact stop

登錄態可以掛在 scrape 的 --profile 上,後續同一 profile 能帶着 cookie 再抓。

在 Cursor / Claude Code 裏,用接近官方觸發描述的自然語言即可,例如:

請用 firecrawl 搜索「某開源爬蟲 2026」,結果寫到 .firecrawl/;
選出最相關的兩個文檔站 URL,scrape 成 markdown;
如果站點很大,先 map --search 再抓,不要一上來整站 crawl。

適用場景與注意事項

適合

  • 編碼過程中要查最新文檔、changelog、競品定價頁,而不是隻靠訓練數據
  • 需要把網頁變成 Markdown / JSON 文件,再在本地用 grepjq 分析
  • 文檔站、幫助中心這類結構清楚、適合 map / crawl 的站點
  • 頁面有點擊、分頁、簡單登錄,scrape 拿不全時再升級到 interact

需要改走其他技能或命令的情況

  • 把 Firecrawl 接到產品代碼、選 SDK 接口:用 firecrawl-build,不要停在 CLI Skill
  • 生物醫學 / 科學文獻:用 firecrawl research search-papers,不要手搓 PubMed,也不要把 search --categories research 當成論文檢索
  • 本地 PDF、DOCX、XLSX:用 parse,那不是 URL 抓取
  • 零數據保留(zero-data-retention)團隊:官方寫明 monitor 不可用

使用上的限制

  • 各操作消耗 credits;併發有上限,可先 firecrawl --status / credit-usage
  • agent 任務官方說明通常要 2 到 5 分鐘,複雜抽取可能更久,建議加 --max-credits
  • 文檔寫明:面向 Agent 工作流的隱藏命令 firecrawl browser 已棄用,應先 scrapeinteract。2026 年 1 月的產品博客裏仍出現過 browser 示例,以當前 CLI 文檔和 SKILL.md 爲準
  • CLI 在登錄時會收集匿名用量(CLI 版本、操作系統、Node.js 版本、檢測到的開發工具),官方稱不收集命令、URL 和文件內容。可設置 FIRECRAWL_NO_TELEMETRY=1 關閉
  • 第三方目錄頁 https://agent-skill.co/firecrawl/skills/firecrawl-cli 在本稿覈實當日返回 404,安裝與命令請以 GitHub 倉庫和 docs.firecrawl.dev 爲準

小結

firecrawl-cli 把「Agent 要上網拿資料」收成一套可執行的 CLI 約定:先搜後抓,大站先映射,整欄目再爬,交互放最後;結果進 .firecrawl/,而不是直接撐爆上下文。它解決的是即時網頁數據的獲取與組織,並不替代你對內容的判斷,也不負責把 Firecrawl 寫進業務代碼——那是 build / workflow 技能的範圍。

官方地址:
https://github.com/firecrawl/cli/tree/main/skills/firecrawl-cli

CLI 文檔:
https://docs.firecrawl.dev/sdks/cli

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜