* Add firecrawl doctor command (ENG-4883)
* Fix doctor support diagnostics
* Refine doctor credit label
* Polish doctor option handling
* Respect terminal color support in doctor
* Bump CLI version to 1.18.7
* Refactor package dependencies to replace '@mendable/firecrawl-js' with 'firecrawl' in package.json and update related imports across the codebase. This change ensures consistency and aligns with the new package naming convention.
* Update import statement for Firecrawl in client.ts to use named import for consistency with new package structure.
Update vendored scaffold references and default remote to use firecrawl/web-agent. Adjusted header comments in create.ts, create-flow.ts, credentials.ts, manifest.ts, scaffold.ts, and ui.ts, and changed DEFAULT_REMOTE in manifest.ts from 'firecrawl/firecrawl-agent' to 'firecrawl/web-agent' so the scaffolder clones the web-agent repo for templates.
Replaces the `npx firecrawl-agent-cli` delegator with an in-process
scaffolder vendored from firecrawl/firecrawl-agent. No separate npm
package for the agent CLI — the root firecrawl-cli clones the public
agent repo at runtime to fetch templates + agent-core.
- Vendor under src/utils/agent-scaffold/ (manifest, scaffold,
credentials, ui, create-flow). Upstream-tracked; keep in sync.
- manifest.ts: strip the "bundled next to CLI" branch (doesn't apply
here), always clone the public repo. Nested-manifest fallback
handles the current `.internal/cli/agent-manifest.json` location.
- Extract handleCreate from upstream init.ts; drop the commander
wrapper since the root CLI owns the command surface.
- create.ts now lazy-imports the scaffolder so non-create paths stay
snappy.
Smoke-tested end-to-end against a local agent repo via --from: next
template scaffolds correctly with agent-core, .env.local, and
expected file layout.
* Add agent command for AI-powered web data extraction
Implement the agent endpoint that allows users to extract data from the web
using natural language prompts. Supports structured output via JSON schemas,
URL targeting, credit limits, and async job handling with polling.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add --model option to agent command
Support selecting between fire-1 (default) and fire-1-mini (faster, cheaper)
models for agent extraction tasks.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update firecrawl-js SDK to 4.12.0 with model support
- Upgrade @mendable/firecrawl-js from 4.10.0 to 4.12.0
- Update model types to match SDK: spark-1-mini and spark-1-pro
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add spinner animation for agent command
- Add spinner utility for CLI feedback
- Show animated spinner while agent is starting and processing
- Display success/fail indicators when complete
- Remove --progress flag (spinner now always shown)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Handle Ctrl+C gracefully in agent command
When user interrupts with Ctrl+C while waiting for agent completion,
show helpful message with the command to check job status later.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Allow --wait when checking agent job status
Now you can use `firecrawl agent <job-id> --wait` to continuously
poll an existing job until it completes, with the same spinner
animation and Ctrl+C handling.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Improve error handling in agent command
- Stop spinner before showing error messages
- Extract detailed error messages from API responses
- Show full error details to help debug issues
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Extract error details from Firecrawl SDK errors
Show helpful error messages like "Invalid option: expected one of
spark-1-pro|spark-1-mini" instead of just "Bad Request".
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Validate model option before API call
Show clear error message for invalid models instead of waiting
for API rejection.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* add agent to skill
* only command for now
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Add support for local/custom API URLs
For custom API URLs (e.g., local development with Docker), the CLI now:
- Skips API key requirement when using non-cloud URLs
- Allows optional API key input during login
- Skips browser auth flow for custom URLs
This enables use with local Firecrawl instances that have
USE_DB_AUTHENTICATION=false.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add --api-url option to commands
Add --api-url flag at both global and command levels (scrape, crawl,
map, search, credit-usage) similar to --api-key. When a custom API URL
is provided, authentication is skipped allowing requests to local or
self-hosted Firecrawl instances without an API key.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: Add --api-url option documentation
Document the --api-url option for self-hosted and local development
use cases in the README, including examples for environment variables
and CI/CD usage.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: Add --api-url to login and config examples
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Firecrawl returns UUID v7 job IDs, but the regex only matched UUID v4.
This caused `firecrawl crawl <job-id>` to fail with a URL validation error
instead of checking job status.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Fix array format output for links and images
The links and images formats return arrays from Firecrawl API,
but writeOutput expected a string, causing endsWith() to fail.
Now converts arrays to newline-separated strings for CLI-friendly output.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add multiple format support for scrape command
- Allow comma-separated formats: --format markdown,links,images
- Single format outputs raw content (backward compatible)
- Multiple formats output JSON with all requested data
- Case-insensitive format input (rawHtml, RAWHTML both work)
- Add format validation with helpful error messages
- Update help text to clarify multiple format usage
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>