firecrawl-cli 1.12.2 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -239
- package/dist/__tests__/commands/init.test.js +4 -2
- package/dist/__tests__/commands/init.test.js.map +1 -1
- package/dist/__tests__/commands/setup.test.js +4 -2
- package/dist/__tests__/commands/setup.test.js.map +1 -1
- package/dist/commands/experimental/index.d.ts.map +1 -1
- package/dist/commands/experimental/index.js +3 -71
- package/dist/commands/experimental/index.js.map +1 -1
- package/dist/commands/experimental/shared.d.ts +2 -2
- package/dist/commands/experimental/shared.d.ts.map +1 -1
- package/dist/commands/experimental/shared.js +3 -5
- package/dist/commands/experimental/shared.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +55 -26
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +27 -12
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/skills-install.d.ts +11 -0
- package/dist/commands/skills-install.d.ts.map +1 -1
- package/dist/commands/skills-install.js +11 -1
- package/dist/commands/skills-install.js.map +1 -1
- package/dist/commands/skills-native.d.ts +13 -0
- package/dist/commands/skills-native.d.ts.map +1 -0
- package/dist/commands/skills-native.js +396 -0
- package/dist/commands/skills-native.js.map +1 -0
- package/dist/index.js +16 -8
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ npm install -g firecrawl-cli
|
|
|
11
11
|
Or set up everything in one command (install CLI globally, authenticate, and add skills across all detected coding editors):
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
npx -y firecrawl-cli@
|
|
14
|
+
npx -y firecrawl-cli@1.14.0 init -y --browser
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
- `-y` runs setup non-interactively
|
|
@@ -28,6 +28,16 @@ firecrawl setup skills
|
|
|
28
28
|
|
|
29
29
|
This installs skills globally across all detected coding editors by default. Use `--agent <agent>` to scope it to one editor.
|
|
30
30
|
|
|
31
|
+
### Agent skills
|
|
32
|
+
|
|
33
|
+
This CLI ships with an agent skill that teaches AI coding agents (Cursor, Claude Code, Windsurf, etc.) how to use the Firecrawl CLI effectively, including non-interactive flags, output formats, and common pitfalls.
|
|
34
|
+
|
|
35
|
+
To install skills for Firecrawl's full platform (API, CLI, SDKs, and best practices) from the central skills repository:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx skills add firecrawl/skills
|
|
39
|
+
```
|
|
40
|
+
|
|
31
41
|
To install the Firecrawl MCP server into your editors (Cursor, Claude Code, VS Code, etc.):
|
|
32
42
|
|
|
33
43
|
```bash
|
|
@@ -465,80 +475,53 @@ firecrawl agent abc123-def456-... --wait --poll-interval 10
|
|
|
465
475
|
|
|
466
476
|
---
|
|
467
477
|
|
|
468
|
-
### `
|
|
478
|
+
### `interact` - Interact with scraped pages
|
|
469
479
|
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
Launch and control cloud browser sessions. By default, commands are sent to agent-browser (pre-installed in every sandbox). Use `--python` or `--node` to run Playwright code directly instead.
|
|
480
|
+
Scrape a page, then interact with it in a live browser session using natural language or code. No manual session management required.
|
|
473
481
|
|
|
474
482
|
```bash
|
|
475
|
-
# 1.
|
|
476
|
-
firecrawl
|
|
477
|
-
|
|
478
|
-
# 2. Execute agent-browser commands (default)
|
|
479
|
-
firecrawl browser execute "open https://example.com"
|
|
480
|
-
firecrawl browser execute "snapshot"
|
|
481
|
-
firecrawl browser execute "click @e5"
|
|
482
|
-
firecrawl browser execute "scrape"
|
|
483
|
+
# 1. Scrape a page first
|
|
484
|
+
firecrawl scrape https://example.com
|
|
483
485
|
|
|
484
|
-
#
|
|
485
|
-
firecrawl
|
|
486
|
-
firecrawl
|
|
486
|
+
# 2. Interact with it
|
|
487
|
+
firecrawl interact "Click the pricing tab"
|
|
488
|
+
firecrawl interact "Fill in the email field with test@example.com"
|
|
489
|
+
firecrawl interact "Extract the pricing table"
|
|
487
490
|
|
|
488
|
-
#
|
|
489
|
-
firecrawl
|
|
491
|
+
# 3. Code execution (Playwright)
|
|
492
|
+
firecrawl interact -c "await page.title()"
|
|
493
|
+
firecrawl interact -c "print(await page.title())" --python
|
|
490
494
|
|
|
491
|
-
#
|
|
492
|
-
firecrawl
|
|
495
|
+
# 4. Stop the session
|
|
496
|
+
firecrawl interact stop
|
|
493
497
|
```
|
|
494
498
|
|
|
495
|
-
####
|
|
499
|
+
#### Interact Options
|
|
496
500
|
|
|
497
|
-
| Option
|
|
498
|
-
|
|
|
499
|
-
|
|
|
500
|
-
|
|
|
501
|
-
|
|
|
502
|
-
|
|
|
503
|
-
| `--
|
|
501
|
+
| Option | Description |
|
|
502
|
+
| ---------------------- | ---------------------------------------------- |
|
|
503
|
+
| `-p, --prompt <text>` | AI prompt (alternative to positional argument) |
|
|
504
|
+
| `-c, --code <code>` | Code to execute in the browser sandbox |
|
|
505
|
+
| `-s, --scrape-id <id>` | Scrape job ID (default: last scrape) |
|
|
506
|
+
| `--python` | Execute code as Python/Playwright |
|
|
507
|
+
| `--node` | Execute code as Node.js/Playwright (default) |
|
|
508
|
+
| `--bash` | Execute code as Bash |
|
|
509
|
+
| `--timeout <seconds>` | Timeout in seconds (1-300, default: 30) |
|
|
510
|
+
| `-o, --output <path>` | Save output to file |
|
|
511
|
+
| `--json` | Output as JSON format |
|
|
504
512
|
|
|
505
|
-
####
|
|
513
|
+
#### Profiles
|
|
506
514
|
|
|
507
|
-
|
|
508
|
-
| --------------------- | ------------------------------------------------------------------ |
|
|
509
|
-
| `--python` | Execute as Playwright Python code |
|
|
510
|
-
| `--node` | Execute as Playwright JavaScript code |
|
|
511
|
-
| `--bash` | Execute bash commands in the sandbox (agent-browser pre-installed) |
|
|
512
|
-
| `--session <id>` | Target a specific session (auto-saved on launch) |
|
|
513
|
-
| `-o, --output <path>` | Save output to file |
|
|
514
|
-
| `--json` | Output as JSON format |
|
|
515
|
-
|
|
516
|
-
By default (no flag), commands are sent to agent-browser. `--python`, `--node`, and `--bash` are mutually exclusive.
|
|
517
|
-
|
|
518
|
-
#### Examples
|
|
515
|
+
Use `--profile` on the scrape to persist browser state across scrapes:
|
|
519
516
|
|
|
520
517
|
```bash
|
|
521
|
-
#
|
|
522
|
-
firecrawl
|
|
523
|
-
firecrawl
|
|
524
|
-
firecrawl browser execute "click @e5"
|
|
525
|
-
firecrawl browser execute "fill @e3 'search query'"
|
|
526
|
-
firecrawl browser execute "scrape"
|
|
527
|
-
|
|
528
|
-
# Playwright Python
|
|
529
|
-
firecrawl browser execute --python "await page.goto('https://example.com'); print(await page.title())"
|
|
530
|
-
|
|
531
|
-
# Playwright JavaScript
|
|
532
|
-
firecrawl browser execute --node "await page.goto('https://example.com'); await page.title()"
|
|
533
|
-
|
|
534
|
-
# Bash (arbitrary commands in the sandbox)
|
|
535
|
-
firecrawl browser execute --bash "ls /tmp"
|
|
536
|
-
|
|
537
|
-
# Launch with extended TTL
|
|
538
|
-
firecrawl browser launch --ttl 900 --ttl-inactivity 120
|
|
518
|
+
# Login and save state
|
|
519
|
+
firecrawl scrape "https://app.example.com/login" --profile my-app
|
|
520
|
+
firecrawl interact "Fill in email and click login"
|
|
539
521
|
|
|
540
|
-
#
|
|
541
|
-
firecrawl
|
|
522
|
+
# Come back authenticated later
|
|
523
|
+
firecrawl scrape "https://app.example.com/dashboard" --profile my-app
|
|
524
|
+
firecrawl interact "Extract the dashboard data"
|
|
542
525
|
```
|
|
543
526
|
|
|
544
527
|
---
|
|
@@ -600,7 +583,7 @@ firecrawl --status
|
|
|
600
583
|
```
|
|
601
584
|
|
|
602
585
|
```
|
|
603
|
-
🔥 firecrawl cli v1.
|
|
586
|
+
🔥 firecrawl cli v1.14.0
|
|
604
587
|
|
|
605
588
|
● Authenticated via stored credentials
|
|
606
589
|
Concurrency: 0/100 jobs (parallel scrape limit)
|
|
@@ -678,83 +661,6 @@ firecrawl scrape https://example.com -o output.md
|
|
|
678
661
|
|
|
679
662
|
---
|
|
680
663
|
|
|
681
|
-
## `download` - Bulk Site Download
|
|
682
|
-
|
|
683
|
-
A convenience command that combines `map` + `scrape` to save a site as local files. Maps the site first to discover pages, then scrapes each one into nested directories under `.firecrawl/`. All [scrape options](#scrape-options) work with download. Run without flags for an interactive wizard that walks you through format, screenshot, and path selection.
|
|
684
|
-
|
|
685
|
-
```bash
|
|
686
|
-
# Interactive wizard (picks format, screenshots, paths for you)
|
|
687
|
-
firecrawl download https://docs.firecrawl.dev
|
|
688
|
-
|
|
689
|
-
# Download with screenshots
|
|
690
|
-
firecrawl download https://docs.firecrawl.dev --screenshot --limit 20 -y
|
|
691
|
-
|
|
692
|
-
# Full page screenshots
|
|
693
|
-
firecrawl download https://docs.firecrawl.dev --full-page-screenshot --limit 20 -y
|
|
694
|
-
|
|
695
|
-
# Multiple formats (each saved as its own file per page)
|
|
696
|
-
firecrawl download https://docs.firecrawl.dev --format markdown,links --screenshot --limit 20 -y
|
|
697
|
-
# Creates per page: index.md + links.txt + screenshot.png
|
|
698
|
-
|
|
699
|
-
# Download as HTML
|
|
700
|
-
firecrawl download https://docs.firecrawl.dev --html --limit 20 -y
|
|
701
|
-
|
|
702
|
-
# Main content only
|
|
703
|
-
firecrawl download https://docs.firecrawl.dev --only-main-content --limit 50 -y
|
|
704
|
-
|
|
705
|
-
# Filter to specific paths
|
|
706
|
-
firecrawl download https://docs.firecrawl.dev --include-paths "/features,/sdks"
|
|
707
|
-
|
|
708
|
-
# Skip localized pages
|
|
709
|
-
firecrawl download https://docs.firecrawl.dev --exclude-paths "/zh,/ja,/fr,/es,/pt-BR"
|
|
710
|
-
|
|
711
|
-
# Include subdomains
|
|
712
|
-
firecrawl download https://firecrawl.dev --allow-subdomains
|
|
713
|
-
|
|
714
|
-
# Combine everything
|
|
715
|
-
firecrawl download https://docs.firecrawl.dev \
|
|
716
|
-
--include-paths "/features,/sdks" \
|
|
717
|
-
--exclude-paths "/zh,/ja,/fr,/es,/pt-BR" \
|
|
718
|
-
--only-main-content \
|
|
719
|
-
--screenshot \
|
|
720
|
-
-y
|
|
721
|
-
```
|
|
722
|
-
|
|
723
|
-
#### Download Options
|
|
724
|
-
|
|
725
|
-
| Option | Description |
|
|
726
|
-
| ------------------------- | ---------------------------------------------- |
|
|
727
|
-
| `--limit <number>` | Max pages to download |
|
|
728
|
-
| `--search <query>` | Filter pages by search query |
|
|
729
|
-
| `--include-paths <paths>` | Only download matching paths (comma-separated) |
|
|
730
|
-
| `--exclude-paths <paths>` | Skip matching paths (comma-separated) |
|
|
731
|
-
| `--allow-subdomains` | Include subdomains when mapping |
|
|
732
|
-
| `-y, --yes` | Skip confirmation prompt and wizard |
|
|
733
|
-
|
|
734
|
-
All [scrape options](#scrape-options) also work with download (formats, screenshots, tags, geo-targeting, etc.)
|
|
735
|
-
|
|
736
|
-
#### Output Structure
|
|
737
|
-
|
|
738
|
-
Each format is saved as its own file per page:
|
|
739
|
-
|
|
740
|
-
```
|
|
741
|
-
.firecrawl/
|
|
742
|
-
docs.firecrawl.dev/
|
|
743
|
-
features/
|
|
744
|
-
scrape/
|
|
745
|
-
index.md # markdown content
|
|
746
|
-
links.txt # one link per line
|
|
747
|
-
screenshot.png # actual PNG image
|
|
748
|
-
crawl/
|
|
749
|
-
index.md
|
|
750
|
-
screenshot.png
|
|
751
|
-
sdks/
|
|
752
|
-
python/
|
|
753
|
-
index.md
|
|
754
|
-
```
|
|
755
|
-
|
|
756
|
-
---
|
|
757
|
-
|
|
758
664
|
## Telemetry
|
|
759
665
|
|
|
760
666
|
The CLI collects anonymous usage data during authentication to help improve the product:
|
|
@@ -772,122 +678,47 @@ export FIRECRAWL_NO_TELEMETRY=1
|
|
|
772
678
|
|
|
773
679
|
---
|
|
774
680
|
|
|
775
|
-
## Experimental
|
|
681
|
+
## Experimental
|
|
776
682
|
|
|
777
|
-
|
|
683
|
+
Experimental commands live under `firecrawl experimental` (alias: `firecrawl x`).
|
|
778
684
|
|
|
779
|
-
|
|
780
|
-
# Claude Code (available now)
|
|
781
|
-
firecrawl claude competitor-analysis
|
|
782
|
-
firecrawl claude deep-research
|
|
783
|
-
firecrawl claude lead-research
|
|
784
|
-
firecrawl claude seo-audit
|
|
785
|
-
firecrawl claude qa
|
|
786
|
-
|
|
787
|
-
# Codex and OpenCode -- coming soon
|
|
788
|
-
firecrawl codex competitor-analysis
|
|
789
|
-
firecrawl opencode competitor-analysis
|
|
790
|
-
```
|
|
685
|
+
### `download` - Bulk Site Download
|
|
791
686
|
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
---
|
|
795
|
-
|
|
796
|
-
## Testing Workflows Locally
|
|
797
|
-
|
|
798
|
-
After building the CLI (`pnpm run build`), every workflow works with all three backends — just swap the command name:
|
|
687
|
+
Combines `map` + `scrape` to save a site as local files under `.firecrawl/`.
|
|
799
688
|
|
|
800
689
|
```bash
|
|
801
|
-
|
|
802
|
-
firecrawl
|
|
803
|
-
firecrawl
|
|
804
|
-
firecrawl opencode --help
|
|
690
|
+
firecrawl x download https://docs.firecrawl.dev
|
|
691
|
+
firecrawl x download https://docs.firecrawl.dev --screenshot --limit 20 -y
|
|
692
|
+
firecrawl x download https://docs.firecrawl.dev --include-paths "/features,/sdks" -y
|
|
805
693
|
```
|
|
806
694
|
|
|
807
|
-
###
|
|
808
|
-
|
|
809
|
-
```bash
|
|
810
|
-
firecrawl claude qa https://myapp.com
|
|
811
|
-
firecrawl codex qa https://myapp.com
|
|
812
|
-
firecrawl opencode qa https://myapp.com
|
|
813
|
-
```
|
|
814
|
-
|
|
815
|
-
### Product Demo Walkthrough
|
|
816
|
-
|
|
817
|
-
```bash
|
|
818
|
-
firecrawl claude demo https://resend.com
|
|
819
|
-
firecrawl codex demo https://neon.tech
|
|
820
|
-
firecrawl opencode demo https://linear.app
|
|
821
|
-
```
|
|
822
|
-
|
|
823
|
-
### Competitor Analysis
|
|
824
|
-
|
|
825
|
-
```bash
|
|
826
|
-
firecrawl claude competitor-analysis https://firecrawl.dev
|
|
827
|
-
firecrawl codex competitor-analysis https://crawlee.dev
|
|
828
|
-
firecrawl opencode competitor-analysis https://apify.com
|
|
829
|
-
```
|
|
695
|
+
### AI Workflows
|
|
830
696
|
|
|
831
|
-
|
|
697
|
+
Launch pre-built AI workflows that combine Firecrawl with your coding agent. One command spins up an interactive session with the right system prompt, tools, and instructions.
|
|
832
698
|
|
|
833
699
|
```bash
|
|
834
|
-
|
|
835
|
-
firecrawl
|
|
836
|
-
firecrawl
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
# Lead research
|
|
843
|
-
firecrawl claude lead-research "Vercel"
|
|
844
|
-
firecrawl codex lead-research "Stripe"
|
|
845
|
-
|
|
846
|
-
# SEO audit
|
|
847
|
-
firecrawl opencode seo-audit https://example.com
|
|
848
|
-
|
|
849
|
-
# Knowledge base
|
|
850
|
-
firecrawl claude knowledge-base https://docs.langchain.com
|
|
851
|
-
|
|
852
|
-
# Research papers
|
|
853
|
-
firecrawl codex research-papers "web scraping compliance HIPAA"
|
|
854
|
-
|
|
855
|
-
# Shopping
|
|
856
|
-
firecrawl claude shop "best mechanical keyboard for developers"
|
|
857
|
-
```
|
|
700
|
+
# Claude Code (available now)
|
|
701
|
+
firecrawl x claude competitor-analysis https://firecrawl.dev
|
|
702
|
+
firecrawl x claude deep-research "RAG pipeline data ingestion tools"
|
|
703
|
+
firecrawl x claude lead-research "Vercel"
|
|
704
|
+
firecrawl x claude seo-audit https://example.com
|
|
705
|
+
firecrawl x claude qa https://myapp.com
|
|
706
|
+
firecrawl x claude demo https://resend.com
|
|
707
|
+
firecrawl x claude shop "best mechanical keyboard for developers"
|
|
858
708
|
|
|
859
|
-
|
|
709
|
+
# Natural language (no workflow name)
|
|
710
|
+
firecrawl x claude "scrape the firecrawl docs and summarize"
|
|
860
711
|
|
|
861
|
-
|
|
862
|
-
firecrawl
|
|
863
|
-
firecrawl
|
|
864
|
-
firecrawl opencode "compare Firecrawl and Apify features"
|
|
712
|
+
# Codex and OpenCode -- coming soon
|
|
713
|
+
firecrawl x codex competitor-analysis https://crawlee.dev
|
|
714
|
+
firecrawl x opencode deep-research "browser automation frameworks"
|
|
865
715
|
```
|
|
866
716
|
|
|
867
|
-
Add `-y` to
|
|
868
|
-
|
|
869
|
-
### Live View
|
|
870
|
-
|
|
871
|
-
Use `firecrawl scrape <url>` + `firecrawl interact` to interact with pages. For advanced use cases requiring a raw CDP session, you can still use `firecrawl browser launch --json` to get a live view URL:
|
|
872
|
-
|
|
873
|
-
```bash
|
|
874
|
-
# Preferred: scrape + interact workflow
|
|
875
|
-
firecrawl scrape https://myapp.com
|
|
876
|
-
firecrawl interact --prompt "Click on the login button and fill in the form"
|
|
877
|
-
|
|
878
|
-
# Advanced: Launch a browser session and grab the live view URL
|
|
879
|
-
LIVE_URL=$(firecrawl browser launch --json | jq -r '.liveViewUrl')
|
|
880
|
-
|
|
881
|
-
# Pass it to Claude Code
|
|
882
|
-
claude --append-system-prompt "A cloud browser session is running. Live view: $LIVE_URL -- use \`firecrawl interact\` to interact with scraped pages." \
|
|
883
|
-
--dangerously-skip-permissions \
|
|
884
|
-
"QA test https://myapp.com"
|
|
717
|
+
Add `-y` to auto-approve tool permissions.
|
|
885
718
|
|
|
886
|
-
|
|
887
|
-
firecrawl claude demo https://resend.com
|
|
888
|
-
```
|
|
719
|
+
See the full documentation: **[Experimental Workflows ->](src/commands/experimental/README.md)**
|
|
889
720
|
|
|
890
|
-
|
|
721
|
+
#### Prerequisites
|
|
891
722
|
|
|
892
723
|
Each backend requires its CLI to be installed separately:
|
|
893
724
|
|
|
@@ -15,15 +15,16 @@ vitest_1.vi.mock('child_process', () => ({
|
|
|
15
15
|
(0, vitest_1.afterEach)(() => {
|
|
16
16
|
vitest_1.vi.restoreAllMocks();
|
|
17
17
|
});
|
|
18
|
-
(0, vitest_1.it)('installs skills globally across all detected agents in non-interactive mode', async () => {
|
|
18
|
+
(0, vitest_1.it)('installs skills from both repos globally across all detected agents in non-interactive mode', async () => {
|
|
19
19
|
await (0, init_1.handleInitCommand)({
|
|
20
20
|
yes: true,
|
|
21
21
|
skipInstall: true,
|
|
22
22
|
skipAuth: true,
|
|
23
23
|
});
|
|
24
24
|
(0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y skills add firecrawl/cli --full-depth --global --all --yes', { stdio: 'inherit' });
|
|
25
|
+
(0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y skills add firecrawl/skills --full-depth --global --all --yes', { stdio: 'inherit' });
|
|
25
26
|
});
|
|
26
|
-
(0, vitest_1.it)('scopes non-interactive skills install to one agent when provided', async () => {
|
|
27
|
+
(0, vitest_1.it)('scopes non-interactive skills install to one agent across both repos when provided', async () => {
|
|
27
28
|
await (0, init_1.handleInitCommand)({
|
|
28
29
|
yes: true,
|
|
29
30
|
skipInstall: true,
|
|
@@ -31,6 +32,7 @@ vitest_1.vi.mock('child_process', () => ({
|
|
|
31
32
|
agent: 'cursor',
|
|
32
33
|
});
|
|
33
34
|
(0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y skills add firecrawl/cli --full-depth --global --yes --agent cursor', { stdio: 'inherit' });
|
|
35
|
+
(0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y skills add firecrawl/skills --full-depth --global --yes --agent cursor', { stdio: 'inherit' });
|
|
34
36
|
});
|
|
35
37
|
});
|
|
36
38
|
//# sourceMappingURL=init.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../../src/__tests__/commands/init.test.ts"],"names":[],"mappings":";;AAAA,mCAAyE;AACzE,iDAAyC;AACzC,8CAAwD;AAExD,WAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,QAAQ,EAAE,WAAE,CAAC,EAAE,EAAE;CAClB,CAAC,CAAC,CAAC;AAEJ,IAAA,iBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,WAAE,CAAC,aAAa,EAAE,CAAC;QACnB,WAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtD,WAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,WAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,
|
|
1
|
+
{"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../../src/__tests__/commands/init.test.ts"],"names":[],"mappings":";;AAAA,mCAAyE;AACzE,iDAAyC;AACzC,8CAAwD;AAExD,WAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,QAAQ,EAAE,WAAE,CAAC,EAAE,EAAE;CAClB,CAAC,CAAC,CAAC;AAEJ,IAAA,iBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,WAAE,CAAC,aAAa,EAAE,CAAC;QACnB,WAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtD,WAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,WAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;QAC3G,MAAM,IAAA,wBAAiB,EAAC;YACtB,GAAG,EAAE,IAAI;YACT,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,wBAAQ,CAAC,CAAC,oBAAoB,CACnC,mEAAmE,EACnE,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;QACF,IAAA,eAAM,EAAC,wBAAQ,CAAC,CAAC,oBAAoB,CACnC,sEAAsE,EACtE,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,IAAA,wBAAiB,EAAC;YACtB,GAAG,EAAE,IAAI;YACT,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,wBAAQ,CAAC,CAAC,oBAAoB,CACnC,4EAA4E,EAC5E,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;QACF,IAAA,eAAM,EAAC,wBAAQ,CAAC,CAAC,oBAAoB,CACnC,+EAA+E,EAC/E,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -13,13 +13,15 @@ vitest_1.vi.mock('child_process', () => ({
|
|
|
13
13
|
(0, vitest_1.afterEach)(() => {
|
|
14
14
|
vitest_1.vi.restoreAllMocks();
|
|
15
15
|
});
|
|
16
|
-
(0, vitest_1.it)('installs skills globally across all detected agents by default', async () => {
|
|
16
|
+
(0, vitest_1.it)('installs skills globally across all detected agents from both repos by default', async () => {
|
|
17
17
|
await (0, setup_1.handleSetupCommand)('skills', {});
|
|
18
18
|
(0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y skills add firecrawl/cli --full-depth --global --all', { stdio: 'inherit' });
|
|
19
|
+
(0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y skills add firecrawl/skills --full-depth --global --all', { stdio: 'inherit' });
|
|
19
20
|
});
|
|
20
|
-
(0, vitest_1.it)('installs skills globally for a specific agent without using --all', async () => {
|
|
21
|
+
(0, vitest_1.it)('installs skills globally for a specific agent from both repos without using --all', async () => {
|
|
21
22
|
await (0, setup_1.handleSetupCommand)('skills', { agent: 'cursor' });
|
|
22
23
|
(0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y skills add firecrawl/cli --full-depth --global --agent cursor', { stdio: 'inherit' });
|
|
24
|
+
(0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y skills add firecrawl/skills --full-depth --global --agent cursor', { stdio: 'inherit' });
|
|
23
25
|
});
|
|
24
26
|
});
|
|
25
27
|
//# sourceMappingURL=setup.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../../src/__tests__/commands/setup.test.ts"],"names":[],"mappings":";;AAAA,mCAAyE;AACzE,iDAAyC;AACzC,gDAA0D;AAE1D,WAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,QAAQ,EAAE,WAAE,CAAC,EAAE,EAAE;CAClB,CAAC,CAAC,CAAC;AAEJ,IAAA,iBAAQ,EAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,WAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,WAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,
|
|
1
|
+
{"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../../src/__tests__/commands/setup.test.ts"],"names":[],"mappings":";;AAAA,mCAAyE;AACzE,iDAAyC;AACzC,gDAA0D;AAE1D,WAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,QAAQ,EAAE,WAAE,CAAC,EAAE,EAAE;CAClB,CAAC,CAAC,CAAC;AAEJ,IAAA,iBAAQ,EAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,WAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,WAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,IAAA,0BAAkB,EAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEvC,IAAA,eAAM,EAAC,wBAAQ,CAAC,CAAC,oBAAoB,CACnC,6DAA6D,EAC7D,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;QACF,IAAA,eAAM,EAAC,wBAAQ,CAAC,CAAC,oBAAoB,CACnC,gEAAgE,EAChE,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,IAAA,0BAAkB,EAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAExD,IAAA,eAAM,EAAC,wBAAQ,CAAC,CAAC,oBAAoB,CACnC,sEAAsE,EACtE,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;QACF,IAAA,eAAM,EAAC,wBAAQ,CAAC,CAAC,oBAAoB,CACnC,yEAAyE,EACzE,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/experimental/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/experimental/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyMpC,wBAAgB,mBAAmB,IAAI,OAAO,CAM7C;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAM5C;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAM/C"}
|
|
@@ -136,76 +136,12 @@ Pass -y to auto-approve all tool permissions.
|
|
|
136
136
|
`;
|
|
137
137
|
}
|
|
138
138
|
// ─── Passthrough (natural language fallback) ─────────────────────────────────
|
|
139
|
-
|
|
140
|
-
'browser',
|
|
141
|
-
'session',
|
|
142
|
-
'profile',
|
|
143
|
-
'click',
|
|
144
|
-
'snapshot',
|
|
145
|
-
'navigate',
|
|
146
|
-
'login',
|
|
147
|
-
'signup',
|
|
148
|
-
'sign up',
|
|
149
|
-
'fill',
|
|
150
|
-
'form',
|
|
151
|
-
'interact',
|
|
152
|
-
'automate',
|
|
153
|
-
'playwright',
|
|
154
|
-
'cdp',
|
|
155
|
-
'cloud browser',
|
|
156
|
-
'cart',
|
|
157
|
-
'add to cart',
|
|
158
|
-
'wishlist',
|
|
159
|
-
'checkout',
|
|
160
|
-
'purchase',
|
|
161
|
-
'buy',
|
|
162
|
-
'order',
|
|
163
|
-
'book',
|
|
164
|
-
'reserve',
|
|
165
|
-
'amazon',
|
|
166
|
-
'account',
|
|
167
|
-
];
|
|
168
|
-
function isBrowserRelated(text) {
|
|
169
|
-
const lower = text.toLowerCase();
|
|
170
|
-
return BROWSER_KEYWORDS.some((kw) => lower.includes(kw));
|
|
171
|
-
}
|
|
172
|
-
function buildPassthroughSystemPrompt(userInput) {
|
|
173
|
-
const browserSpecific = isBrowserRelated(userInput);
|
|
174
|
-
const browserBlock = browserSpecific
|
|
175
|
-
? `\n\n**Since this task involves browser interactions**, first launch a browser session with live view so the user can watch:
|
|
176
|
-
|
|
177
|
-
\`\`\`bash
|
|
178
|
-
firecrawl browser launch-session --json
|
|
179
|
-
\`\`\`
|
|
180
|
-
|
|
181
|
-
Show the **Live View URL** to the user immediately so they can open it and watch you work in real-time.
|
|
182
|
-
|
|
183
|
-
Then run \`firecrawl browser --help\` to understand sessions, profiles, execute commands, and all browser capabilities.
|
|
184
|
-
|
|
185
|
-
### Profiles (persistent Chrome profiles -- NOT sessions)
|
|
186
|
-
|
|
187
|
-
A profile is a persistent Chrome profile (cookies, login state, localStorage). It is NOT a session -- it exists independently and survives across sessions.
|
|
188
|
-
|
|
189
|
-
- **Use a profile:** \`firecrawl browser "open <url>" --profile <name>\` -- creates a new session using the saved Chrome profile data (cookies, auth, etc.)
|
|
190
|
-
- **DO NOT** run \`firecrawl browser list\` to look for profiles. Just use \`--profile <name>\` directly.
|
|
191
|
-
- After the first \`open\` with \`--profile\`, subsequent browser commands don't need the flag.
|
|
192
|
-
|
|
193
|
-
If the user mentions "my amazon profile" or "amazon account", just run:
|
|
194
|
-
\`firecrawl browser "open https://www.amazon.com" --profile amazon\`
|
|
195
|
-
|
|
196
|
-
### Browser commands
|
|
197
|
-
- \`firecrawl browser "open <url>"\` -- Navigate (auto-launches session if needed)
|
|
198
|
-
- \`firecrawl browser "snapshot"\` -- Get page state (accessibility tree)
|
|
199
|
-
- \`firecrawl browser "click @<ref>"\` -- Click an element
|
|
200
|
-
- \`firecrawl browser "type @<ref> <text>"\` -- Type into an input
|
|
201
|
-
- \`firecrawl browser "scrape"\` -- Get full page content as markdown
|
|
202
|
-
- \`firecrawl browser "scroll down"\` / \`"scroll up"\` -- Scroll`
|
|
203
|
-
: '';
|
|
139
|
+
function buildPassthroughSystemPrompt(_userInput) {
|
|
204
140
|
return `You are a Firecrawl power user. You have the full Firecrawl CLI at your disposal to accomplish any web task the user describes.
|
|
205
141
|
|
|
206
142
|
## First Steps
|
|
207
143
|
|
|
208
|
-
**Run \`firecrawl --help\` to see all available commands and capabilities.** This is critical -- read the output carefully before proceeding
|
|
144
|
+
**Run \`firecrawl --help\` to see all available commands and capabilities.** This is critical -- read the output carefully before proceeding.
|
|
209
145
|
|
|
210
146
|
Then run \`firecrawl <command> --help\` for whichever specific commands you need.
|
|
211
147
|
|
|
@@ -219,11 +155,7 @@ Quick reference:
|
|
|
219
155
|
- \`firecrawl scrape <url> --format html\` -- Scrape as HTML
|
|
220
156
|
- \`firecrawl map <url>\` -- Discover all URLs on a site
|
|
221
157
|
- \`firecrawl crawl <url>\` -- Crawl an entire site
|
|
222
|
-
- \`firecrawl
|
|
223
|
-
- \`firecrawl browser "open <url>"\` -- Cloud browser session
|
|
224
|
-
- \`firecrawl browser "snapshot"\` -- Get page state
|
|
225
|
-
- \`firecrawl browser "click @<ref>"\` -- Click an element
|
|
226
|
-
- \`firecrawl browser "type @<ref> <text>"\` -- Type into an input
|
|
158
|
+
- \`firecrawl interact "Click the login button"\` -- Interact with a scraped page
|
|
227
159
|
- \`firecrawl agent "<prompt>"\` -- AI agent for complex extraction
|
|
228
160
|
|
|
229
161
|
## Guidelines
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/experimental/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/experimental/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ export declare const validateRequired: (label: string) => (value: string) => tru
|
|
|
8
8
|
export declare function normalizeUrl(url: string): string;
|
|
9
9
|
/** Normalize a source that might be a URL or a plain topic string. */
|
|
10
10
|
export declare function normalizeSource(source: string): string;
|
|
11
|
-
export declare const FIRECRAWL_TOOLS_BLOCK = "## Your Tools -- READ THIS FIRST\n\nUse ONLY `firecrawl` for ALL web operations. It is already installed and authenticated. Run firecrawl commands via Bash. Do not use any other tools, skills, plugins, or built-in web features for web access -- only `firecrawl`. If the CLI has issues, you may fall back to Firecrawl MCP tools if available.\n\n**First step: run `firecrawl --help` to see all available commands.** Then run `firecrawl <command> --help` for any command you plan to use heavily.\n\nQuick reference:\n- `firecrawl search \"<query>\"` -- Search the web\n- `firecrawl scrape <url>` -- Scrape a page as markdown\n- `firecrawl map <url>` -- Discover all URLs on a site\n- `firecrawl crawl <url>` -- Crawl an entire site\n- `firecrawl
|
|
12
|
-
export declare const QA_TOOLS_BLOCK = "## Your Tools -- READ THIS FIRST\n\nUse ONLY `firecrawl` for ALL web operations. It is already installed and authenticated. Run firecrawl commands via Bash. Do not use any other tools, skills, plugins, or built-in web features for web access -- only `firecrawl`. If the CLI has issues, you may fall back to Firecrawl MCP tools if available.\n\n**First step: run `firecrawl --help`
|
|
11
|
+
export declare const FIRECRAWL_TOOLS_BLOCK = "## Your Tools -- READ THIS FIRST\n\nUse ONLY `firecrawl` for ALL web operations. It is already installed and authenticated. Run firecrawl commands via Bash. Do not use any other tools, skills, plugins, or built-in web features for web access -- only `firecrawl`. If the CLI has issues, you may fall back to Firecrawl MCP tools if available.\n\n**First step: run `firecrawl --help` to see all available commands.** Then run `firecrawl <command> --help` for any command you plan to use heavily.\n\nQuick reference:\n- `firecrawl search \"<query>\"` -- Search the web\n- `firecrawl scrape <url>` -- Scrape a page as markdown\n- `firecrawl map <url>` -- Discover all URLs on a site\n- `firecrawl crawl <url>` -- Crawl an entire site\n- `firecrawl interact \"Click the login button\"` -- Interact with a scraped page\n- `firecrawl agent \"<prompt>\"` -- AI agent for complex extraction";
|
|
12
|
+
export declare const QA_TOOLS_BLOCK = "## Your Tools -- READ THIS FIRST\n\nUse ONLY `firecrawl` for ALL web operations. It is already installed and authenticated. Run firecrawl commands via Bash. Do not use any other tools, skills, plugins, or built-in web features for web access -- only `firecrawl`. If the CLI has issues, you may fall back to Firecrawl MCP tools if available.\n\n**First step: run `firecrawl --help` to see all available commands.** Tell each subagent to do the same.\n\n## IMPORTANT: Launch Browser with Live View FIRST\n\nBefore doing anything else, launch a browser session with streaming enabled so the user can watch in real-time:\n\n```bash\nfirecrawl browser launch-session --json\n```\n\nThis prints a **Live View URL**. Try to open it automatically for the user:\n\n```bash\nopen \"<liveViewUrl>\" # macOS\nxdg-open \"<liveViewUrl>\" # Linux\n```\n\nIf the `open` command fails or errors, just print the URL clearly so the user can copy-paste it into their browser. Either way, make sure the user sees the live view URL before you start working.\n\nQuick reference:\n- `firecrawl browser \"open <url>\"` -- Navigate to a URL in a cloud browser\n- `firecrawl browser \"snapshot\"` -- Get the current page state (accessibility tree)\n- `firecrawl browser \"click @<ref>\"` -- Click an element by its reference ID\n- `firecrawl browser \"type @<ref> <text>\"` -- Type text into an input\n- `firecrawl browser \"scrape\"` -- Get the full page content as markdown\n- `firecrawl browser \"scroll down\"` / `\"scroll up\"` -- Scroll the page\n- `firecrawl scrape <url>` -- Quick scrape without browser session\n- `firecrawl map <url>` -- Discover all URLs on the site";
|
|
13
13
|
export declare const SUBAGENT_INSTRUCTIONS = "**IMPORTANT:** When spawning agents with the Agent tool:\n- Use `subagent_type: \"general-purpose\"` for each agent\n- Give each agent a clear, specific mandate in the prompt\n- Tell each agent: \"Use ONLY firecrawl for all web access via Bash. Do not use any other tools, skills, or plugins for web access. If the CLI has issues, fall back to Firecrawl MCP tools. Run `firecrawl --help` first.\"\n- Launch ALL agents in a SINGLE message (parallel, not sequential)\n- Each agent should return structured findings with source URLs";
|
|
14
14
|
/** Join non-empty parts into a message string. */
|
|
15
15
|
export declare function buildMessage(parts: string[]): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/commands/experimental/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAY,MAAM,YAAY,CAAC;AAIpD,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,IAAI,GAAG,MAQlD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC1B,OAAO,MAAM,MACb,OAAO,MAAM,KAAG,IAAI,GAAG,MACsB,CAAC;AAIjD,0CAA0C;AAC1C,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD;AAID,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/commands/experimental/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAY,MAAM,YAAY,CAAC;AAIpD,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,IAAI,GAAG,MAQlD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC1B,OAAO,MAAM,MACb,OAAO,MAAM,KAAG,IAAI,GAAG,MACsB,CAAC;AAIjD,0CAA0C;AAC1C,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD;AAID,eAAO,MAAM,qBAAqB,q3BAYkC,CAAC;AAErE,eAAO,MAAM,cAAc,ooDA+BgC,CAAC;AAE5D,eAAO,MAAM,qBAAqB,shBAK8B,CAAC;AAIjE,kDAAkD;AAClD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAEpD;AAID,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAwB1E"}
|
|
@@ -82,15 +82,13 @@ Quick reference:
|
|
|
82
82
|
- \`firecrawl scrape <url>\` -- Scrape a page as markdown
|
|
83
83
|
- \`firecrawl map <url>\` -- Discover all URLs on a site
|
|
84
84
|
- \`firecrawl crawl <url>\` -- Crawl an entire site
|
|
85
|
-
- \`firecrawl
|
|
86
|
-
- \`firecrawl
|
|
87
|
-
- \`firecrawl browser "click @<ref>"\` -- Click an element
|
|
88
|
-
- \`firecrawl browser "type @<ref> <text>"\` -- Type into an input`;
|
|
85
|
+
- \`firecrawl interact "Click the login button"\` -- Interact with a scraped page
|
|
86
|
+
- \`firecrawl agent "<prompt>"\` -- AI agent for complex extraction`;
|
|
89
87
|
exports.QA_TOOLS_BLOCK = `## Your Tools -- READ THIS FIRST
|
|
90
88
|
|
|
91
89
|
Use ONLY \`firecrawl\` for ALL web operations. It is already installed and authenticated. Run firecrawl commands via Bash. Do not use any other tools, skills, plugins, or built-in web features for web access -- only \`firecrawl\`. If the CLI has issues, you may fall back to Firecrawl MCP tools if available.
|
|
92
90
|
|
|
93
|
-
**First step: run \`firecrawl --help\`
|
|
91
|
+
**First step: run \`firecrawl --help\` to see all available commands.** Tell each subagent to do the same.
|
|
94
92
|
|
|
95
93
|
## IMPORTANT: Launch Browser with Live View FIRST
|
|
96
94
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/experimental/shared.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBH,oCAEC;AAGD,0CAIC;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/experimental/shared.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBH,oCAEC;AAGD,0CAIC;AA6DD,oCAEC;AAID,8CAwBC;AA1HD,yCAAoD;AAEpD,+EAA+E;AAExE,MAAM,WAAW,GAAG,CAAC,KAAa,EAAiB,EAAE;IAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,iBAAiB,CAAC;IAC5C,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,0BAA0B,CAAC;IACpC,CAAC;AACH,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB;AAEK,MAAM,gBAAgB,GAC3B,CAAC,KAAa,EAAE,EAAE,CAClB,CAAC,KAAa,EAAiB,EAAE,CAC/B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,cAAc,CAAC;AAHpC,QAAA,gBAAgB,oBAGoB;AAEjD,+EAA+E;AAE/E,0CAA0C;AAC1C,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC;AACzD,CAAC;AAED,sEAAsE;AACtE,SAAgB,eAAe,CAAC,MAAc;IAC5C,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7C,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,WAAW,MAAM,EAAE,CAAC;IACxD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAElE,QAAA,qBAAqB,GAAG;;;;;;;;;;;;oEAY+B,CAAC;AAExD,QAAA,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DA+B6B,CAAC;AAE/C,QAAA,qBAAqB,GAAG;;;;;gEAK2B,CAAC;AAEjE,+EAA+E;AAE/E,kDAAkD;AAClD,SAAgB,YAAY,CAAC,KAAe;IAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AAChD,CAAC;AAED,+EAA+E;AAExE,KAAK,UAAU,iBAAiB,CAAC,OAAgB;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;IACrD,MAAM,MAAM,GAAG,mBAAQ,CAAC,OAAO,CAAC,CAAC;IAEjC,MAAM,SAAS,GACb,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gCAAgC,CAAC;IAEzE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;QACxB,OAAO,EAAE,+CAA+C;QACxD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,gCAAgC;gBACtC,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,oDAAoD,SAAS,GAAG;aAC9E;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,GAAG,MAAM,CAAC,WAAW,kEAAkE;aACrG;SACF;KACF,CAAC,CAAC;IAEH,OAAO,IAAI,KAAK,MAAM,CAAC;AACzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAUD,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,SAAS,EAAE,aAAa,EAsDpC,CAAC;AAqXF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAMpE;AAED,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwC1E;AAED,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAyCf"}
|