Skip to content

Commit e3d7270

Browse files
Merge pull request #58 from firecrawl/cross-reference-skill-approach
Cross reference skill approach
2 parents 7e3ba91 + 5a31c2b commit e3d7270

18 files changed

Lines changed: 667 additions & 295 deletions

File tree

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ Command-line interface for Firecrawl. Scrape, crawl, and extract data from any w
88
npm install -g firecrawl-cli
99
```
1010

11-
Or set up everything in one command (install CLI globally, authenticate, and add skills):
11+
Or set up everything in one command (install CLI globally, authenticate, and add skills across all detected coding editors):
1212

1313
```bash
14-
npx -y firecrawl-cli@latest init --all --browser
14+
npx -y firecrawl-cli@latest init -y --browser
1515
```
1616

17-
- `--all` installs the firecrawl skill to every detected AI coding agent
17+
- `-y` runs setup non-interactively
1818
- `--browser` opens the browser for Firecrawl authentication automatically
19+
- skills install globally to every detected AI coding agent by default
1920

2021
### Setup Skills and MCP
2122

@@ -25,6 +26,8 @@ If you are using an AI coding agent like Claude Code, you can also install the s
2526
firecrawl setup skills
2627
```
2728

29+
This installs skills globally across all detected coding editors by default. Use `--agent <agent>` to scope it to one editor.
30+
2831
To install the Firecrawl MCP server into your editors (Cursor, Claude Code, VS Code, etc.):
2932

3033
```bash
@@ -34,7 +37,7 @@ firecrawl setup mcp
3437
Or directly via npx:
3538

3639
```bash
37-
npx skills add firecrawl/cli
40+
npx skills add firecrawl/cli --full-depth --global --all
3841
npx add-mcp "npx -y firecrawl-mcp" --name firecrawl
3942
```
4043

skills/firecrawl-agent/SKILL.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
---
2+
name: firecrawl-agent
3+
description: |
4+
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 "extract structured data", "get all the products", "pull pricing info", "extract as JSON", or when the user provides a JSON schema for website data. More powerful than simple scraping for multi-page structured extraction.
5+
allowed-tools:
6+
- Bash(firecrawl *)
7+
- Bash(npx firecrawl *)
8+
---
9+
10+
# firecrawl agent
11+
12+
AI-powered autonomous extraction. The agent navigates sites and extracts structured data (takes 2-5 minutes).
13+
14+
## When to use
15+
16+
- You need structured data from complex multi-page sites
17+
- Manual scraping would require navigating many pages
18+
- You want the AI to figure out where the data lives
19+
20+
## Quick start
21+
22+
```bash
23+
# Extract structured data
24+
firecrawl agent "extract all pricing tiers" --wait -o .firecrawl/pricing.json
25+
26+
# With a JSON schema for structured output
27+
firecrawl agent "extract products" --schema '{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}}' --wait -o .firecrawl/products.json
28+
29+
# Focus on specific pages
30+
firecrawl agent "get feature list" --urls "<url>" --wait -o .firecrawl/features.json
31+
```
32+
33+
## Options
34+
35+
| Option | Description |
36+
| ---------------------- | ----------------------------------------- |
37+
| `--urls <urls>` | Starting URLs for the agent |
38+
| `--model <model>` | Model to use: spark-1-mini or spark-1-pro |
39+
| `--schema <json>` | JSON schema for structured output |
40+
| `--schema-file <path>` | Path to JSON schema file |
41+
| `--max-credits <n>` | Credit limit for this agent run |
42+
| `--wait` | Wait for agent to complete |
43+
| `--pretty` | Pretty print JSON output |
44+
| `-o, --output <path>` | Output file path |
45+
46+
## Tips
47+
48+
- Always use `--wait` to get results inline. Without it, returns a job ID.
49+
- Use `--schema` for predictable, structured output — otherwise the agent returns freeform data.
50+
- Agent runs consume more credits than simple scrapes. Use `--max-credits` to cap spending.
51+
- For simple single-page extraction, prefer `scrape` — it's faster and cheaper.
52+
53+
## See also
54+
55+
- [firecrawl-scrape](../firecrawl-scrape/SKILL.md) — simpler single-page extraction
56+
- [firecrawl-browser](../firecrawl-browser/SKILL.md) — manual browser automation (more control)
57+
- [firecrawl-crawl](../firecrawl-crawl/SKILL.md) — bulk extraction without AI

skills/firecrawl-browser/SKILL.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
---
2+
name: firecrawl-browser
3+
description: |
4+
Cloud browser automation for pages requiring interaction — clicks, form fills, login, pagination, infinite scroll. Use this skill when the user needs to interact with a webpage, log into a site, click buttons, fill forms, navigate multi-step flows, handle pagination, or when regular scraping fails because content requires JavaScript interaction. Triggers on "click", "fill out the form", "log in to", "paginated", "infinite scroll", "interact with the page", or "scrape failed". Provides remote Chromium sessions with persistent profiles.
5+
allowed-tools:
6+
- Bash(firecrawl *)
7+
- Bash(npx firecrawl *)
8+
---
9+
10+
# firecrawl browser
11+
12+
Cloud Chromium sessions in Firecrawl's remote sandboxed environment. Interact with pages that require clicks, form fills, pagination, or login.
13+
14+
## When to use
15+
16+
- Content requires interaction: clicks, form fills, pagination, login
17+
- `scrape` failed because content is behind JavaScript interaction
18+
- You need to navigate a multi-step flow
19+
- Last resort in the [workflow escalation pattern](firecrawl-cli): search → scrape → map → crawl → **browser**
20+
- **Never use browser for web searches** — use `search` instead
21+
22+
## Quick start
23+
24+
```bash
25+
# Typical browser workflow
26+
firecrawl browser "open <url>"
27+
firecrawl browser "snapshot -i" # see interactive elements with @ref IDs
28+
firecrawl browser "click @e5" # interact with elements
29+
firecrawl browser "fill @e3 'search query'" # fill form fields
30+
firecrawl browser "scrape" -o .firecrawl/page.md # extract content
31+
firecrawl browser close
32+
```
33+
34+
Shorthand auto-launches a session if none exists — no setup required.
35+
36+
## Commands
37+
38+
| Command | Description |
39+
| -------------------- | ---------------------------------------- |
40+
| `open <url>` | Navigate to a URL |
41+
| `snapshot -i` | Get interactive elements with `@ref` IDs |
42+
| `screenshot` | Capture a PNG screenshot |
43+
| `click <@ref>` | Click an element by ref |
44+
| `type <@ref> <text>` | Type into an element |
45+
| `fill <@ref> <text>` | Fill a form field (clears first) |
46+
| `scrape` | Extract page content as markdown |
47+
| `scroll <direction>` | Scroll up/down/left/right |
48+
| `wait <seconds>` | Wait for a duration |
49+
| `eval <js>` | Evaluate JavaScript on the page |
50+
51+
Session management: `launch-session --ttl 600`, `list`, `close`
52+
53+
## Options
54+
55+
| Option | Description |
56+
| ---------------------------- | -------------------------------------------------- |
57+
| `--ttl <seconds>` | Session time-to-live |
58+
| `--ttl-inactivity <seconds>` | Inactivity timeout |
59+
| `--session <id>` | Use a specific session ID |
60+
| `--profile <name>` | Use a named profile (persists state) |
61+
| `--no-save-changes` | Read-only reconnect (don't write to session state) |
62+
| `-o, --output <path>` | Output file path |
63+
64+
## Profiles
65+
66+
Profiles survive close and can be reconnected by name. Use them for login-then-work flows:
67+
68+
```bash
69+
# Session 1: Login and save state
70+
firecrawl browser launch-session --profile my-app
71+
firecrawl browser "open https://app.example.com/login"
72+
firecrawl browser "snapshot -i"
73+
firecrawl browser "fill @e3 'user@example.com'"
74+
firecrawl browser "click @e7"
75+
firecrawl browser "wait 2"
76+
firecrawl browser close
77+
78+
# Session 2: Come back authenticated
79+
firecrawl browser launch-session --profile my-app
80+
firecrawl browser "open https://app.example.com/dashboard"
81+
firecrawl browser "scrape" -o .firecrawl/dashboard.md
82+
firecrawl browser close
83+
```
84+
85+
Read-only reconnect (no writes to session state):
86+
87+
```bash
88+
firecrawl browser launch-session --profile my-app --no-save-changes
89+
```
90+
91+
Shorthand with profile:
92+
93+
```bash
94+
firecrawl browser --profile my-app "open https://example.com"
95+
```
96+
97+
## Tips
98+
99+
- If you get forbidden errors, the session may have expired — create a new one.
100+
- For parallel browser work, launch separate sessions and operate them via `--session <id>`.
101+
- Always `close` sessions when done to free resources.
102+
103+
## See also
104+
105+
- [firecrawl-scrape](../firecrawl-scrape/SKILL.md) — try scrape first, escalate to browser only when needed
106+
- [firecrawl-search](../firecrawl-search/SKILL.md) — for web searches (never use browser for searching)
107+
- [firecrawl-agent](../firecrawl-agent/SKILL.md) — AI-powered extraction (less manual control)

0 commit comments

Comments
 (0)