直接在终端中执行搜索、抓取、交互、爬取、Map,并运行代理任务。Firecrawl CLI 既可独立使用,也可结合技能;Codex、Claude Code、Cursor 和 OpenCode 等 AI 编码代理可以自动发现并使用这些技能。
安装#
如果你正在使用某个 AI 代理,例如 Codex、Claude Code、Cursor 或 OpenCode,你可以安装下面的 Firecrawl 技能,代理将为你完成设置。
--all会跳过代理选择,并初始化所有检测到的代理--browser会自动打开浏览器以完成 Firecrawl 身份验证
安装这些技能后,请重启你的代理,以便其发现它们。
你也可以使用 npm 手动全局安装 Firecrawl CLI:
身份验证#
使用 CLI 之前,您需要使用 Firecrawl API 密钥进行身份验证。
登录#
查看配置#
退出登录#
将 CLI 连接到自托管的 Firecrawl#
首先,按照自托管指南完成一次抓取。然后通过 --api-url 或 FIRECRAWL_API_URL 将 CLI 指向该 API:
使用自定义 API URL 而非 https://api.firecrawl.dev 时,CLI 会跳过 Firecrawl Cloud API 密钥身份验证。这与受信任网络快速入门中的设置一致:USE_DB_AUTHENTICATION=false。
请仅在受信任网络中运行未经身份验证的 API。如果添加身份验证 代理或其他访问控制层,请先确认 CLI 能够发送该层所需的 凭据,再采用此方式。
CLI 只能调用部署中已启用的功能。使用仅限 Cloud 或依赖提供商的命令前,请查看自托管功能支持。
检查状态#
验证安装和身份验证,并查看速率限制:
就绪时的输出:
- 并发数 (Concurrency) :最大并行任务数。并行操作应尽量接近该上限,但不要超过。
- 额度 (Credits) :剩余 API 额度。每次抓取/爬取都会消耗额度。
命令#
隐藏的 firecrawl browser 命令已弃用,不再用于代理工作流。请先使用 firecrawl scrape <url>,再结合生成的抓取会话使用 firecrawl interact ...。
Scrape#
抓取单个 URL,并以多种 formats 输出其内容。
使用 --only-main-content 即可获取不含导航栏、页脚和广告的干净输出。对于大多数只需要文章或主页面内容的用例,推荐使用该选项。
输出 formats 类型#
抓取选项#
可用选项:
| 选项 | 简写 | 描述 |
|---|---|---|
--url <url> | -u | 要抓取的 URL (位置参数的替代方式) |
--format <formats> | -f | 输出 formats (逗号分隔) :markdown, html, rawHtml, links, screenshot, json, images, summary, changeTracking, attributes, branding |
--html | -H | --format html 的快捷方式 |
--only-main-content | 仅提取主要内容 | |
--wait-for <ms> | 等待 JS 渲染的时间 (毫秒) | |
--screenshot | 生成页面截图 | |
--full-page-screenshot | 生成整页截图 | |
--include-tags <tags> | 要包含的 HTML 标签 (逗号分隔) | |
--exclude-tags <tags> | 要排除的 HTML 标签 (逗号分隔) | |
--schema <json> | 用于结构化提取的 JSON schema | |
--schema-file <path> | JSON schema 文件路径 | |
--actions <json> | 抓取期间要执行的 JSON actions 数组 | |
--actions-file <path> | JSON actions 文件路径 | |
--proxy <proxy> | 抓取使用的代理模式 (例如 auto 或 basic) | |
--redact-pii | 对返回内容中的个人身份识别信息进行脱敏处理 | |
--output <path> | -o | 将输出保存到文件 |
--json | 即使只有单一 format 也强制输出 JSON | |
--pretty | 对 JSON 输出进行格式化打印 | |
--timing | 显示请求耗时和其他有用信息 |
搜索#
搜索网页,并按需抓取结果。
搜索选项#
可用选项:
| 选项 | 描述 |
|---|---|
--limit <number> | 结果数量上限 (默认:5,最大:100) |
--sources <sources> | 要搜索的数据源:web、images、news (逗号分隔) |
--categories <categories> | 按类别过滤:research、pdf、developer (逗号分隔) |
--tbs <value> | 时间过滤:qdr:h (小时) 、qdr:d (天) 、qdr:w (周) 、qdr:m (月) 、qdr:y (年) |
--location <location> | 地域定向 (例如:"Berlin,Germany") |
--country <code> | ISO 国家代码 (默认:US) |
--timeout <ms> | 以毫秒为单位的超时时间 (默认:60000) |
--ignore-invalid-urls | 排除对其他 Firecrawl 端点无效的 URL |
--scrape | 抓取搜索结果 |
--scrape-formats <formats> | 抓取内容的 formats (默认:markdown) |
--only-main-content | 抓取时仅包含主要内容 (默认:true) |
--json | 以 JSON 格式输出 |
--output <path> | 将输出保存到文件 |
--pretty | 以易读格式打印 JSON 输出 |
开发者#
搜索 Developer Index——涵盖公开代码仓库中的 issue、已合并的 pull request 和 README,以及精选文档站点。
可用选项:
| 选项 | 描述 |
|---|---|
--limit <number> | 返回结果数量 (默认值:10,最大值:100) |
--skills-only | 仅搜索已编入索引的 agent-skill 文件 (默认值:false) |
--json | 以紧凑的 JSON 格式输出 |
--output <path> | 将输出保存到文件 |
--pretty | 以易读格式打印 JSON 输出 |
Map#
快速发现站点中的所有 URL。
Map 命令选项#
可用选项:
| 选项 | 描述 |
|---|---|
--url <url> | 要进行 Map 的 URL (可替代位置参数) |
--limit <number> | 要发现的最大 URL 数量 |
--search <query> | 根据搜索查询筛选 URL |
--sitemap <mode> | Sitemap 处理模式:include、skip、only |
--include-subdomains | 包含子域名 |
--ignore-query-parameters | 将带有不同参数的 URL 视为同一 URL |
--wait | 等待 Map 完成 |
--timeout <seconds> | 超时时间 (秒) |
--json | 以 JSON 格式输出 |
--output <path> | 将输出保存到文件 |
--pretty | 以易读格式打印 JSON 输出 |
交互#
先抓取网页,然后使用自然语言或代码与页面交互。交互默认使用最近一次抓取的结果,也可以传入指定的抓取 ID。
可用选项:
| 选项 | 描述 |
|---|---|
-p, --prompt <text> | AI prompt (可替代位置参数) |
-c, --code <code> | 在当前页面会话中执行代码 |
-s, --scrape-id <id> | 抓取任务 ID (默认:最近一次抓取) |
--python | 以 Python/Playwright 执行代码 |
--node | 以 Node.js/Playwright 执行代码 (默认) |
--bash | 以 Bash 执行代码 |
--timeout <seconds> | 超时时间 (秒) (1-300,默认:30) |
--output <path> | 将输出保存到文件 |
--json | 以 JSON 格式输出 |
Crawl#
从单个 URL 出发爬取整个网站。
查看抓取状态#
Crawl 选项#
可用选项:
| 选项 | 描述 |
|---|---|
--url <url> | 要爬取的 URL (位置参数的替代方式) |
--wait | 等待爬取完成 |
--progress | 等待期间显示进度指示器 |
--poll-interval <seconds> | 轮询间隔 (默认:5 秒) |
--timeout <seconds> | 等待时的超时时长 |
--status | 检查已有爬取任务的状态 |
--limit <number> | 最大爬取页面数 |
--max-depth <number> | 最大爬取深度 |
--include-paths <paths> | 要包含的路径 (逗号分隔) |
--exclude-paths <paths> | 要排除的路径 (逗号分隔) |
--sitemap <mode> | Sitemap 处理方式:include、skip、only |
--allow-subdomains | 包含子域名 |
--allow-external-links | 跟随外部链接 |
--crawl-entire-domain | 爬取整个域名 |
--ignore-query-parameters | 将具有不同参数的 URL 视为相同 |
--delay <ms> | 请求之间的延迟 |
--max-concurrency <n> | 最大并发请求数 |
--scrape-options <json> | 传递给每个页面的 JSON 抓取选项 |
--scrape-options-file <path> | 抓取选项 JSON 文件路径 |
--webhook <url-or-json> | Webhook URL 或配置 |
--cancel | 通过 job ID 取消活动中的爬取任务 |
--output <path> | 将输出保存到文件 |
--pretty | 以更易读的格式输出 JSON |
监控#
创建周期性抓取或爬取任务,并将每次运行结果与上一次快照进行差异比对。当你希望 Firecrawl 判断哪些页面变化对你的用例真正有意义时,可添加目标。
监控目标应简短,并忠实反映用户意图:说明什么情况应触发告警,重述已说明的范围,并且仅在排除条件显而易见或被明确要求时才写出。如果用户要求“任何变化”,请保持目标宽泛。
可用选项:
| Option | Description |
|---|---|
--name <name> | 监控名称 |
--goal <goal> | 用于判断是否为有意义变更的目标 |
--cron <expression> | Cron 调度表达式,例如 */30 * * * * |
--schedule <text> | 自然语言调度,例如 hourly |
--timezone <tz> | 调度时区,默认 UTC |
--page <url> | 每次检查时要抓取的单个页面 URL |
--scrape-urls <list> | 每次检查时要抓取的页面 URL,多个值以逗号分隔 |
--crawl-url <url> | 爬取目标的根 URL |
--webhook-url <url> | Webhook 接收地址 |
--webhook-events <list> | 以逗号分隔的监控事件列表 |
--email <list> | 以逗号分隔的电子邮件收件人 |
--retention-days <n> | 快照保留时长 |
--page-status <state> | 在 monitor check 时按状态筛选页面 |
--state <state> | 在 monitor update 时设置监控状态:active/paused |
Agent#
使用自然语言指令在网上搜索和获取数据。
代理 选项#
可用选项:
| 选项 | 说明 |
|---|---|
--urls <urls> | 可选的 URL 列表,用于限定代理的处理范围 (用逗号分隔) |
--model <model> | 要使用的模型。默认值为 spark-2,所有运行均使用该模型。Spark 1 模型已弃用,并会路由到 spark-2 |
--schema <json> | 用于结构化输出的 JSON schema (内联 JSON 字符串) |
--schema-file <path> | 用于结构化输出的 JSON schema 文件路径 |
--max-credits <number> | 最多可消耗的额度 (达到上限时任务失败) |
--webhook <url-or-json> | Webhook URL 或配置 |
--status | 检查已有代理任务的状态 |
--cancel | 通过任务 ID 取消正在运行的代理任务 |
--wait | 等待代理任务完成后再返回结果 |
--poll-interval <seconds> | 等待时的轮询间隔 (默认:5) |
--timeout <seconds> | 等待时的超时时间 (默认:无限制) |
--output <path> | 将输出保存到文件 |
--json | 以 JSON 格式输出 |
额度使用情况#
查看你团队的额度余额和使用明细。
Version#
显示 CLI 的版本。
全局选项#
以下选项适用于所有命令:
| 选项 | 简写 | 说明 |
|---|---|---|
--status | 显示版本、认证状态、并发数和额度 | |
--api-key <key> | -k | 在此命令中临时覆盖已保存的 API 密钥 |
--api-url <url> | 使用自定义 API URL (用于自托管/本地开发) | |
--help | -h | 显示命令帮助信息 |
--version | -V | 显示 CLI 版本 |
init 还接受 --skip-auth、--skip-install、--skip-skills 和 --agent <name>。请参见 firecrawl init --help。
输出处理#
CLI 默认将结果输出到 stdout,便于通过管道或重定向进行处理:
formats 的行为#
- 单一 format:输出原始内容 (markdown 文本、HTML 等)
- 多个 formats:输出包含所有请求数据的 JSON
示例#
快速抓取#
整站爬取#
站点发现#
研究工作流#
智能体#
与其他工具结合使用#
遥测#
CLI 在身份验证过程中会收集匿名使用数据,以帮助改进产品:
- CLI 版本、操作系统和 Node.js 版本
- 检测到的开发工具 (例如 Cursor、VS Code、Claude Code)
CLI 不会收集任何命令数据、URL 或文件内容。
如需禁用遥测,请设置以下环境变量:
开源#
Firecrawl CLI 和全部三个技能分段都已开源,并可在 GitHub 上获取:
firecrawl/cli— CLI 和 CLI 技能 (实时网页工作)firecrawl/skills— 构建技能 (将 Firecrawl 集成到应用程序代码中)firecrawl/firecrawl-workflows— 工作流技能 (可重复生成的交付成果,例如研究简报、SEO 审计、潜在客户列表和设计克隆)
你是需要 Firecrawl API 密钥的 AI 代理吗?请参见 firecrawl.dev/agent-onboarding/SKILL.md 获取自动化入门说明。

