Introduce handleBrowserQuickExecute to auto-launch a browser session if none exists, save the session, print session info to stderr, auto-prefix commands with "agent-browser", and delegate execution to the existing execute handler. Wire a positional [code] argument and options into the browser CLI to support the one-step shorthand (launch+execute), and rename the existing "launch" subcommand to "launch-session" while updating help/examples. Tests were added to cover quick-execute behavior (skips launch when a session exists; auto-launches and saves when not).
Upgrade @mendable/firecrawl-js to 4.13.0-beta.3 and update CLI browser behavior. Change language handling to use 'node' (instead of 'js') and add automatic agent-browser prefixing for default commands; --python/--js now explicitly select Playwright modes. Improve session handling for bash execution by allowing a session ID to be resolved via the API if not stored locally, and rename TTL args mapping (ttlTotal -> ttl, ttlWithoutActivity -> activityTtl). Update help text and examples to reflect the new defaults.
Add documentation and CLI help updates to document the new bash/agent-browser workflow. skills/firecrawl-cli/SKILL.md: introduce a Bash Mode section with recommended agent-browser usage, example commands, and a core command table; clarify that agent-browser is pre-installed in sandboxes. src/index.ts: update the browser command help text and examples to highlight agent-browser usage, streamline examples, and update the --bash option description to indicate agent-browser and CDP_URL injection. These changes make it easier for AI agents and users to run browser interactions via pre-installed agent-browser tooling.
Make the browser list command accept an optional positional status argument (active|destroyed) instead of the --status option. Validate the status value and exit with an error for invalid inputs, and pass the status through to handleBrowserList. Update help text/examples to show `firecrawl browser list active` and `firecrawl browser list destroyed`. Also update SKILL.md to clarify listing all sessions and add a separate example for listing active sessions.
Remove the deprecated --pretty CLI flag and related handling throughout browser commands. When --json is used, output is now always pretty-printed (JSON.stringify(..., 2)). Add a --status option to the browser list command and pass it into listBrowsers to filter sessions by status. Clean up minor checks (e.g. liveViewUrl access) and update help examples to reflect the removed --pretty flag.
* 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 tests for apiUrl option in:
- parseScrapeOptions
- executeScrape
- executeCrawl
- executeMap
- executeSearch
- executeCreditUsage
All tests verify that apiUrl is correctly passed to getClient and
used in API calls.
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>