/firecrawl-interact
Control and interact with a live browser session on any scraped page — click buttons, fill forms, navigate flows, and extract data using natural language prompts or code. Use when the user needs to interact with a webpage beyond simple scraping: logging into a site, submitting
$ npx -y skills add firecrawl/firecrawl-claude-plugin --skill firecrawl-interact --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/firecrawl-interact
Context preview
The summary Claude sees to decide when to auto-load this skill.
Control and interact with a live browser session on any scraped page — click buttons, fill forms, navigate flows, and extract data using natural language prompts or code. Use when the user needs to interact with a webpage beyond simple scraping: logging into a site, submitting
SKILL.md
firecrawl-interact.SKILL.mdname: firecrawl-interact
description: |
Control and interact with a live browser session on any scraped page — click buttons, fill forms, navigate flows, and extract data using natural language prompts or code. Use when the user needs to interact with a webpage beyond simple scraping: logging into a site, submitting forms, clicking through pagination, handling infinite scroll, navigating multi-step checkout or wizard flows, or when a regular scrape failed because content is behind JavaScript interaction. Also useful for authenticated scraping via profiles. Triggers on "interact", "click", "fill out the form", "log in to", "sign in", "submit", "paginated", "next page", "infinite scroll", "interact with the page", "navigate to", "open a session", or "scrape failed".
allowed-tools:
- Bash(firecrawl *)
- Bash(npx firecrawl *)
firecrawl interact
Interact with scraped pages in a live browser session. Scrape a page first, then use natural language prompts or code to click, fill forms, navigate, and extract data.
When to use
- Content requires interaction: clicks, form fills, pagination, login
- `scrape` failed because content is behind JavaScript interaction
- You need to navigate a multi-step flow
- Last resort in the [workflow escalation pattern](firecrawl-cli): search → scrape → map → crawl → **interact**
- **Never use interact for web searches** — use `search` instead
Quick start
# 1. Scrape a page (scrape ID is saved automatically)
firecrawl scrape "<url>"
# 2. Interact with the page using natural language
firecrawl interact --prompt "Click the login button"
firecrawl interact --prompt "Fill in the email field with test@example.com"
firecrawl interact --prompt "Extract the pricing table"
# 3. Or use code for precise control
firecrawl interact --code "agent-browser click @e5" --language bash
firecrawl interact --code "agent-browser snapshot -i" --language bash
# 4. Stop the session when done
firecrawl interact stop
Options
| Option | Description | | --------------------- | ------------------------------------------------- | | `--prompt <text>` | Natural language instruction (use this OR --code) | | `--code <code>` | Code to execute in the browser session | | `--language <lang>` | Language for code: bash, python, node | | `--timeout <seconds>` | Execution timeout (default: 30, max: 300) | | `--scrape-id <id>` | Target a specific scrape (default: last scrape) | | `-o, --output <path>` | Output file path |
Profiles
Use `--profile` on the scrape to persist browser state (cookies, localStorage) across scrapes:
# Session 1: Login and save state
firecrawl scrape "https://app.example.com/login" --profile my-app
firecrawl interact --prompt "Fill in email with user@example.com and click login"
# Session 2: Come back authenticated
firecrawl scrape "https://app.example.com/dashboard" --profile my-app
firecrawl interact --prompt "Extract the dashboard data"
Read-only reconnect (no writes to profile state):
firecrawl scrape "https://app.example.com" --profile my-app --no-save-changes
Tips
- Always scrape first — `interact` requires a scrape ID from a previous `firecrawl scrape` call
- The scrape ID is saved automatically, so you don't need `--scrape-id` for subsequent interact calls
- Use `firecrawl interact stop` to free resources when done
- For parallel work, scrape multiple pages and interact with each using `--scrape-id`
See also
- [firecrawl-scrape](../firecrawl-scrape/SKILL.md) — try scrape first, escalate to interact only when needed
- [firecrawl-search](../firecrawl-search/SKILL.md) — for web searches (never use interact for searching)
- [firecrawl-agent](../firecrawl-agent/SKILL.md) — AI-powered extraction (less manual control)
Read more
name: firecrawl-interact description: | Control and interact with a live browser session on any scraped page — click buttons, fill forms, navigate flows, and extract data using natural language prompts or code. Use when the user needs to interact with a webpage beyond simple scraping: logging into a site, submitting forms, clicking through pagination, handling infinite scroll, navigating multi-step checkout or wizard flows, or when a regular scrape failed because content is behind JavaScript interaction. Also useful for authenticated scraping via profiles. Triggers on "interact", "click", "fill out the form", "log in to", "sign in", "submit", "paginated", "next page", "infinite scroll", "interact with the page", "navigate to", "open a session", or "scrape failed". allowed-tools: - Bash(firecrawl *) - Bash(npx firecrawl *)
firecrawl interact
Interact with scraped pages in a live browser session. Scrape a page first, then use natural language prompts or code to click, fill forms, navigate, and extract data.
When to use
- Content requires interaction: clicks, form fills, pagination, login
- `scrape` failed because content is behind JavaScript interaction
- You need to navigate a multi-step flow
- Last resort in the [workflow escalation pattern](firecrawl-cli): search → scrape → map → crawl → **interact**
- **Never use interact for web searches** — use `search` instead
Quick start
# 1. Scrape a page (scrape ID is saved automatically) firecrawl scrape "<url>" # 2. Interact with the page using natural language firecrawl interact --prompt "Click the login button" firecrawl interact --prompt "Fill in the email field with test@example.com" firecrawl interact --prompt "Extract the pricing table" # 3. Or use code for precise control firecrawl interact --code "agent-browser click @e5" --language bash firecrawl interact --code "agent-browser snapshot -i" --language bash # 4. Stop the session when done firecrawl interact stop
Options
| Option | Description | | --------------------- | ------------------------------------------------- | | `--prompt <text>` | Natural language instruction (use this OR --code) | | `--code <code>` | Code to execute in the browser session | | `--language <lang>` | Language for code: bash, python, node | | `--timeout <seconds>` | Execution timeout (default: 30, max: 300) | | `--scrape-id <id>` | Target a specific scrape (default: last scrape) | | `-o, --output <path>` | Output file path |
Profiles
Use `--profile` on the scrape to persist browser state (cookies, localStorage) across scrapes:
# Session 1: Login and save state firecrawl scrape "https://app.example.com/login" --profile my-app firecrawl interact --prompt "Fill in email with user@example.com and click login" # Session 2: Come back authenticated firecrawl scrape "https://app.example.com/dashboard" --profile my-app firecrawl interact --prompt "Extract the dashboard data"
Read-only reconnect (no writes to profile state):
firecrawl scrape "https://app.example.com" --profile my-app --no-save-changes
Tips
- Always scrape first — `interact` requires a scrape ID from a previous `firecrawl scrape` call
- The scrape ID is saved automatically, so you don't need `--scrape-id` for subsequent interact calls
- Use `firecrawl interact stop` to free resources when done
- For parallel work, scrape multiple pages and interact with each using `--scrape-id`
See also
- [firecrawl-scrape](../firecrawl-scrape/SKILL.md) — try scrape first, escalate to interact only when needed
- [firecrawl-search](../firecrawl-search/SKILL.md) — for web searches (never use interact for searching)
- [firecrawl-agent](../firecrawl-agent/SKILL.md) — AI-powered extraction (less manual control)
Turn any website into clean, LLM-ready markdown or structured data — directly from Claude Code. This plugin adds the Firecrawl CLI as a skill to Claude Code, giving it the ability to scrape, search, crawl, and map the web.
Repo: firecrawl/firecrawl-claude-plugin
Other skills on firecrawl.
- /firecrawl-agent
AI-powered autonomous data extraction that navigates complex sites and returns structured JSON. Use this skill when the user wants structured data from websites, needs to extract pricing tiers, product listings, directory entries, or any data as JSON with a schema. Triggers on
Open skill - /firecrawl-cli
Search, scrape, and interact with the web via the Firecrawl CLI. Use this skill whenever the user wants to search the web, find articles, research a topic, look something up online, scrape a webpage, grab content from a URL, get data from a website, crawl documentation, download
Open skill - /firecrawl-crawl
Bulk extract content from an entire website or site section. Use this skill when the user wants to crawl a site, extract all pages from a docs section, bulk-scrape multiple pages following links, or says "crawl", "get all the pages", "extract everything under /docs", "bulk
Open skill - /firecrawl-download
Download an entire website as local files — markdown, screenshots, or multiple formats per page. Use this skill when the user wants to save a site locally, download documentation for offline use, bulk-save pages as files, or says "download the site", "save as local files",
Open skill - /firecrawl-map
Discover and list all URLs on a website, with optional search filtering. Use this skill when the user wants to find a specific page on a large site, list all URLs, see the site structure, find where something is on a domain, or says "map the site", "find the URL for", "what
Open skill - /firecrawl-monitor
Detect when content on a website changes and get notified by webhook or email — no cron jobs, scrapers, or diff scripts required. Use this skill whenever the user wants to track changes on a page, watch competitor pricing, alert on new job postings or blog posts, monitor
Open skill

