Skip to content

feat(providers): add Firecrawl as a built-in browser provider#1456

Open
rakshith48 wants to merge 2 commits into
vercel-labs:mainfrom
rakshith48:feat/firecrawl-browser-provider
Open

feat(providers): add Firecrawl as a built-in browser provider#1456
rakshith48 wants to merge 2 commits into
vercel-labs:mainfrom
rakshith48:feat/firecrawl-browser-provider

Conversation

@rakshith48

Copy link
Copy Markdown

Draft / RFC — opening for discussion before polishing.

Adds Firecrawl as a built-in browser.provider, alongside Browserbase / Browserless / Kernel / Browser Use / AgentCore. Firecrawl's Browser Sandbox returns a CDP WebSocket URL, so it slots into the existing provider model directly.

What's here

  • cli/src/native/providers.rsconnect_firecrawl(): POST {FIRECRAWL_API_URL}/v2/browser with Authorization: Bearer $FIRECRAWL_API_KEY, returns the response cdpUrl; optional FIRECRAWL_PROFILE_NAME for persistent login profiles. Session cleanup via DELETE /v2/browser/{id}. Wired into the provider match + the "unknown provider" message.
  • cli/src/doctor/providers.rsFIRECRAWL_API_KEY presence check.
  • Docs — providers/firecrawl page, nav + page-title registration, README provider section.

Usage:

export FIRECRAWL_API_KEY=fc-...
agent-browser -p firecrawl open https://example.com

Notes / open questions

  • Mirrors the Browserbase/Kernel patterns (env-based config, reqwest, ProviderSession cleanup). No new deps.
  • I have not been able to cargo build/fmt locally in my environment — relying on CI here; happy to adjust to match lint/test conventions.
  • Dashboard provider icon (packages/dashboard/public/providers/*.svg) not included yet — can add if you'd like it in this PR.
  • Context: there's also a standalone plugin (firecrawl/agent-browser-plugin-firecrawl) using the browser.provider + command.run plugin protocol; this PR is the in-core provider equivalent per the docs' "new providers can start as plugins, then graduate to core" guidance. Glad to keep it as a plugin instead if you'd prefer.

🤖 Generated with Claude Code

Adds Firecrawl (cloud browser via its Browser Sandbox) alongside
Browserbase/Browserless/Kernel/etc.:
- native/providers.rs: connect_firecrawl() (POST /v2/browser -> cdpUrl,
  FIRECRAWL_API_KEY/URL env, optional FIRECRAWL_PROFILE_NAME) + session
  cleanup (DELETE /v2/browser/{id}) + match/error wiring
- doctor/providers.rs: FIRECRAWL_API_KEY presence check
- docs: providers/firecrawl page + nav + title registration; README section

Usable via `agent-browser -p firecrawl open <url>`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

@rakshith48 is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Firecrawl renamed the browser-session endpoint; point connect_firecrawl()
and its session cleanup at /v2/interact (same contract; /v2/browser remains
a backward-compat alias). Docs/README updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rakshith48 rakshith48 marked this pull request as ready for review June 17, 2026 01:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant