You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

firecrawl-cli

Package Overview
Dependencies
Maintainers
2
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

firecrawl-cli - npm Package Compare versions

Comparing version
1.9.4
to
1.9.5
+19
dist/commands/experimental/backends.d.ts
/**
* Backend definitions for AI workflow agents.
*
* Each backend (Claude Code, Codex, OpenCode) has its own CLI binary,
* argument builder, and spawn configuration.
*/
export type Backend = 'claude' | 'codex' | 'opencode';
export interface BackendConfig {
bin: string;
displayName: string;
installHint: string;
buildArgs: (systemPrompt: string, userMessage: string, skipPermissions: boolean) => string[];
}
export declare const BACKENDS: Record<Backend, BackendConfig>;
/**
* Launch an interactive agent session
*/
export declare function launchAgent(backend: Backend, systemPrompt: string, userMessage: string, skipPermissions: boolean): void;
//# sourceMappingURL=backends.d.ts.map
{"version":3,"file":"backends.d.ts","sourceRoot":"","sources":["../../../src/commands/experimental/backends.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,CACT,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,OAAO,KACrB,MAAM,EAAE,CAAC;CACf;AAID,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,CAqCnD,CAAC;AAIF;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,OAAO,GACvB,IAAI,CAsBN"}
"use strict";
/**
* Backend definitions for AI workflow agents.
*
* Each backend (Claude Code, Codex, OpenCode) has its own CLI binary,
* argument builder, and spawn configuration.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.BACKENDS = void 0;
exports.launchAgent = launchAgent;
const child_process_1 = require("child_process");
// ─── Backend registry ───────────────────────────────────────────────────────
exports.BACKENDS = {
claude: {
bin: 'claude',
displayName: 'Claude Code',
installHint: 'npm install -g @anthropic-ai/claude-code',
buildArgs: (systemPrompt, userMessage, skipPermissions) => {
const args = ['--append-system-prompt', systemPrompt];
if (skipPermissions)
args.push('--dangerously-skip-permissions');
args.push(userMessage);
return args;
},
},
codex: {
bin: 'codex',
displayName: 'Codex',
installHint: 'npm install -g @openai/codex',
buildArgs: (systemPrompt, userMessage, skipPermissions) => {
const args = [];
if (skipPermissions)
args.push('--full-auto');
// Codex takes the prompt as a positional arg; system prompt via config override
args.push('--config', `instructions=${systemPrompt}`);
args.push(userMessage);
return args;
},
},
opencode: {
bin: 'opencode',
displayName: 'OpenCode (coming soon)',
installHint: 'See https://opencode.ai/docs/cli/',
buildArgs: (_systemPrompt, _userMessage, _skipPermissions) => {
console.error('OpenCode integration is coming soon. Use claude or codex for now.');
process.exit(1);
return [];
},
},
};
// ─── Launch helper ──────────────────────────────────────────────────────────
/**
* Launch an interactive agent session
*/
function launchAgent(backend, systemPrompt, userMessage, skipPermissions) {
const config = exports.BACKENDS[backend];
const args = config.buildArgs(systemPrompt, userMessage, skipPermissions);
const child = (0, child_process_1.spawn)(config.bin, args, {
stdio: 'inherit',
});
child.on('error', (error) => {
if (error.code === 'ENOENT') {
console.error(`\nError: ${config.displayName} CLI not found. Install it with:\n\n ${config.installHint}\n`);
}
else {
console.error(`Error launching ${config.displayName}:`, error.message);
}
process.exit(1);
});
child.on('exit', (code) => {
process.exit(code ?? 0);
});
}
//# sourceMappingURL=backends.js.map
{"version":3,"file":"backends.js","sourceRoot":"","sources":["../../../src/commands/experimental/backends.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAiEH,kCA2BC;AA1FD,iDAAsC;AAiBtC,+EAA+E;AAElE,QAAA,QAAQ,GAAmC;IACtD,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,0CAA0C;QACvD,SAAS,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE;YACxD,MAAM,IAAI,GAAG,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;YACtD,IAAI,eAAe;gBAAE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IACD,KAAK,EAAE;QACL,GAAG,EAAE,OAAO;QACZ,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE;YACxD,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,IAAI,eAAe;gBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9C,gFAAgF;YAChF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,YAAY,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,UAAU;QACf,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE,mCAAmC;QAChD,SAAS,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE;YAC3D,OAAO,CAAC,KAAK,CACX,mEAAmE,CACpE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;KACF;CACF,CAAC;AAEF,+EAA+E;AAE/E;;GAEG;AACH,SAAgB,WAAW,CACzB,OAAgB,EAChB,YAAoB,EACpB,WAAmB,EACnB,eAAwB;IAExB,MAAM,MAAM,GAAG,gBAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;QACpC,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1B,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,KAAK,CACX,YAAY,MAAM,CAAC,WAAW,yCAAyC,MAAM,CAAC,WAAW,IAAI,CAC9F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,WAAW,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
/**
* Experimental: AI Workflow commands
*
* Launches interactive coding agent sessions with pre-built system prompts.
* Similar to `ollama run <model>` -- one command spins up a specialized agent.
*
* Supports multiple backends: Claude Code, Codex (OpenAI), OpenCode.
*/
import { Command } from 'commander';
export declare function createClaudeCommand(): Command;
export declare function createCodexCommand(): Command;
export declare function createOpenCodeCommand(): Command;
//# sourceMappingURL=index.d.ts.map
{"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;AAwOpC,wBAAgB,mBAAmB,IAAI,OAAO,CAM7C;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAM5C;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAM/C"}
"use strict";
/**
* Experimental: AI Workflow commands
*
* Launches interactive coding agent sessions with pre-built system prompts.
* Similar to `ollama run <model>` -- one command spins up a specialized agent.
*
* Supports multiple backends: Claude Code, Codex (OpenAI), OpenCode.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.createClaudeCommand = createClaudeCommand;
exports.createCodexCommand = createCodexCommand;
exports.createOpenCodeCommand = createOpenCodeCommand;
const commander_1 = require("commander");
const backends_1 = require("./backends");
const competitor_analysis_1 = require("./workflows/competitor-analysis");
const deep_research_1 = require("./workflows/deep-research");
const lead_research_1 = require("./workflows/lead-research");
const seo_audit_1 = require("./workflows/seo-audit");
const qa_1 = require("./workflows/qa");
const knowledge_base_1 = require("./workflows/knowledge-base");
const research_papers_1 = require("./workflows/research-papers");
const demo_1 = require("./workflows/demo");
const shop_1 = require("./workflows/shop");
// ─── Workflow Registration (shared across backends) ──────────────────────────
function registerWorkflows(parentCmd, backend) {
(0, competitor_analysis_1.register)(parentCmd, backend);
(0, deep_research_1.register)(parentCmd, backend);
(0, lead_research_1.register)(parentCmd, backend);
(0, seo_audit_1.register)(parentCmd, backend);
(0, qa_1.register)(parentCmd, backend);
(0, knowledge_base_1.register)(parentCmd, backend);
(0, research_papers_1.register)(parentCmd, backend);
(0, demo_1.register)(parentCmd, backend);
(0, shop_1.register)(parentCmd, backend);
}
// ─── Help text (shared) ─────────────────────────────────────────────────────
function buildHelpText(cmdName) {
return `
Workflows:
competitor-analysis Scrape a site + competitors, compare features, pricing, positioning
deep-research Multi-source research with configurable depth (5-25+ sources)
lead-research Pre-meeting intelligence brief on a company or person
seo-audit Map a site, check meta/headings, compare to competitors
qa Spawn parallel browser agents to QA test a live site
knowledge-base Build a knowledge base from web content (docs, RAG, fine-tuning)
research-papers Find and synthesize research papers, whitepapers, and PDFs
demo Walk through a product's key flows using cloud browser
shop Research products across the web, then buy using your saved Amazon session
Examples:
Prep for a sales call -- research the company, key people, and talking points:
$ firecrawl ${cmdName} lead-research "Vercel"
$ firecrawl ${cmdName} lead-research "Stripe"
Scope out the competition before a pitch:
$ firecrawl ${cmdName} competitor-analysis https://firecrawl.dev
$ firecrawl ${cmdName} competitor-analysis https://crawlee.dev
Research a market, integration opportunity, or partnership angle:
$ firecrawl ${cmdName} deep-research "RAG pipeline data ingestion tools landscape"
$ firecrawl ${cmdName} deep-research "Cursor AI editor architecture and extensions"
Scrape docs so you actually understand a product before the call:
$ firecrawl ${cmdName} knowledge-base https://docs.langchain.com
$ firecrawl ${cmdName} knowledge-base https://sdk.vercel.ai/docs
Build a fine-tuning dataset or RAG corpus from web content:
$ firecrawl ${cmdName} knowledge-base "Neon serverless postgres"
Walk through a product's UX -- signup, pricing, docs, dashboard:
$ firecrawl ${cmdName} demo https://resend.com
$ firecrawl ${cmdName} demo https://neon.tech
QA test a site before a demo or client handoff:
$ firecrawl ${cmdName} qa https://myapp.com
Audit a site's SEO and get specific fix recommendations:
$ firecrawl ${cmdName} seo-audit https://example.com
Find and synthesize research papers on a topic:
$ firecrawl ${cmdName} research-papers "web scraping compliance healthcare HIPAA"
Research and shop -- find the best deal, then add to your Amazon cart:
$ firecrawl ${cmdName} shop "mac mini for SF office delivery"
$ firecrawl ${cmdName} shop "best mechanical keyboard for developers"
$ firecrawl ${cmdName} shop "noise cancelling earbuds under 200"
Run any workflow fully interactive (no args, prompts guide you):
$ firecrawl ${cmdName} competitor-analysis
$ firecrawl ${cmdName} deep-research
Pass -y to auto-approve all tool permissions.
`;
}
// ─── Passthrough (natural language fallback) ─────────────────────────────────
const BROWSER_KEYWORDS = [
'browser',
'session',
'profile',
'click',
'snapshot',
'navigate',
'login',
'signup',
'sign up',
'fill',
'form',
'interact',
'automate',
'playwright',
'cdp',
'cloud browser',
'cart',
'add to cart',
'wishlist',
'checkout',
'purchase',
'buy',
'order',
'book',
'reserve',
'amazon',
'account',
];
function isBrowserRelated(text) {
const lower = text.toLowerCase();
return BROWSER_KEYWORDS.some((kw) => lower.includes(kw));
}
function buildPassthroughSystemPrompt(userInput) {
const browserSpecific = isBrowserRelated(userInput);
const browserBlock = browserSpecific
? `\n\n**Since this task involves browser interactions**, first launch a browser session with live view so the user can watch:
\`\`\`bash
firecrawl browser launch-session --json
\`\`\`
Show the **Live View URL** to the user immediately so they can open it and watch you work in real-time.
Then run \`firecrawl browser --help\` to understand sessions, profiles, execute commands, and all browser capabilities.
### Profiles (persistent Chrome profiles -- NOT sessions)
A profile is a persistent Chrome profile (cookies, login state, localStorage). It is NOT a session -- it exists independently and survives across sessions.
- **Use a profile:** \`firecrawl browser "open <url>" --profile <name>\` -- creates a new session using the saved Chrome profile data (cookies, auth, etc.)
- **DO NOT** run \`firecrawl browser list\` to look for profiles. Just use \`--profile <name>\` directly.
- After the first \`open\` with \`--profile\`, subsequent browser commands don't need the flag.
If the user mentions "my amazon profile" or "amazon account", just run:
\`firecrawl browser "open https://www.amazon.com" --profile amazon\`
### Browser commands
- \`firecrawl browser "open <url>"\` -- Navigate (auto-launches session if needed)
- \`firecrawl browser "snapshot"\` -- Get page state (accessibility tree)
- \`firecrawl browser "click @<ref>"\` -- Click an element
- \`firecrawl browser "type @<ref> <text>"\` -- Type into an input
- \`firecrawl browser "scrape"\` -- Get full page content as markdown
- \`firecrawl browser "scroll down"\` / \`"scroll up"\` -- Scroll`
: '';
return `You are a Firecrawl power user. You have the full Firecrawl CLI at your disposal to accomplish any web task the user describes.
## First Steps
**Run \`firecrawl --help\` to see all available commands and capabilities.** This is critical -- read the output carefully before proceeding.${browserBlock}
Then run \`firecrawl <command> --help\` for whichever specific commands you need.
## Available Tools
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.
Quick reference:
- \`firecrawl search "<query>"\` -- Search the web
- \`firecrawl scrape <url>\` -- Scrape a page as markdown
- \`firecrawl scrape <url> --format html\` -- Scrape as HTML
- \`firecrawl map <url>\` -- Discover all URLs on a site
- \`firecrawl crawl <url>\` -- Crawl an entire site
- \`firecrawl download <url>\` -- Download a site into .firecrawl/
- \`firecrawl browser "open <url>"\` -- Cloud browser session
- \`firecrawl browser "snapshot"\` -- Get page state
- \`firecrawl browser "click @<ref>"\` -- Click an element
- \`firecrawl browser "type @<ref> <text>"\` -- Type into an input
- \`firecrawl agent "<prompt>"\` -- AI agent for complex extraction
## Guidelines
- Figure out the right firecrawl commands for the task by reading --help output
- Be resourceful -- combine multiple commands if needed
- Show your work and explain what you're doing
- Start working immediately`;
}
function createBackendCommand(name, description, backend) {
const cmd = new commander_1.Command(name)
.description(description)
.argument('[input...]', 'Natural language task or workflow name')
.option('-y, --yes', 'Auto-approve all tool permissions')
.allowUnknownOption()
.addHelpText('after', buildHelpText(name));
registerWorkflows(cmd, backend);
// Catch-all: if no subcommand matched, treat args as natural language
cmd.action(async (input, options) => {
const userInput = input.join(' ').trim();
if (!userInput) {
cmd.outputHelp();
return;
}
const config = backends_1.BACKENDS[backend];
const skipPermissions = true;
console.log(`\nLaunching ${config.displayName}...\n`);
(0, backends_1.launchAgent)(backend, buildPassthroughSystemPrompt(userInput), userInput, skipPermissions);
});
return cmd;
}
// ─── Command Exports ─────────────────────────────────────────────────────────
function createClaudeCommand() {
return createBackendCommand('claude', 'AI workflows powered by Claude Code', 'claude');
}
function createCodexCommand() {
return createBackendCommand('codex', 'AI workflows powered by Codex (coming soon)', 'codex');
}
function createOpenCodeCommand() {
return createBackendCommand('opencode', 'AI workflows powered by OpenCode (coming soon)', 'opencode');
}
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/experimental/index.ts"],"names":[],"mappings":"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"}
/**
* Shared constants and helpers for AI workflows.
*/
import { type Backend } from './backends';
export declare const validateUrl: (value: string) => true | string;
export declare const validateRequired: (label: string) => (value: string) => true | string;
/** Ensure a URL has a protocol prefix. */
export declare function normalizeUrl(url: string): string;
/** Normalize a source that might be a URL or a plain topic string. */
export declare function normalizeSource(source: string): string;
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 browser \"open <url>\"` -- Cloud browser session\n- `firecrawl browser \"snapshot\"` -- Get page state\n- `firecrawl browser \"click @<ref>\"` -- Click an element\n- `firecrawl browser \"type @<ref> <text>\"` -- Type into an input";
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` and `firecrawl browser --help` to see all 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";
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";
/** Join non-empty parts into a message string. */
export declare function buildMessage(parts: string[]): string;
export declare function askPermissionMode(backend: Backend): Promise<boolean>;
//# sourceMappingURL=shared.d.ts.map
{"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,k9BAciC,CAAC;AAEpE,eAAO,MAAM,cAAc,ypDA+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"}
"use strict";
/**
* Shared constants and helpers for AI workflows.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.SUBAGENT_INSTRUCTIONS = exports.QA_TOOLS_BLOCK = exports.FIRECRAWL_TOOLS_BLOCK = exports.validateRequired = exports.validateUrl = void 0;
exports.normalizeUrl = normalizeUrl;
exports.normalizeSource = normalizeSource;
exports.buildMessage = buildMessage;
exports.askPermissionMode = askPermissionMode;
const backends_1 = require("./backends");
// ─── Validators ─────────────────────────────────────────────────────────────
const validateUrl = (value) => {
if (!value.trim())
return 'URL is required';
try {
new URL(value.startsWith('http') ? value : `https://${value}`);
return true;
}
catch {
return 'Please enter a valid URL';
}
};
exports.validateUrl = validateUrl;
const validateRequired = (label) => (value) => value.trim() ? true : `${label} is required`;
exports.validateRequired = validateRequired;
// ─── URL helpers ────────────────────────────────────────────────────────────
/** Ensure a URL has a protocol prefix. */
function normalizeUrl(url) {
return url.startsWith('http') ? url : `https://${url}`;
}
/** Normalize a source that might be a URL or a plain topic string. */
function normalizeSource(source) {
if (source.startsWith('http'))
return source;
if (/\.\w{2,}/.test(source))
return `https://${source}`;
return source;
}
// ─── Prompt blocks ──────────────────────────────────────────────────────────
exports.FIRECRAWL_TOOLS_BLOCK = `## Your Tools -- READ THIS FIRST
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.
**First step: run \`firecrawl --help\` to see all available commands.** Then run \`firecrawl <command> --help\` for any command you plan to use heavily.
Quick reference:
- \`firecrawl search "<query>"\` -- Search the web
- \`firecrawl scrape <url>\` -- Scrape a page as markdown
- \`firecrawl map <url>\` -- Discover all URLs on a site
- \`firecrawl crawl <url>\` -- Crawl an entire site
- \`firecrawl browser "open <url>"\` -- Cloud browser session
- \`firecrawl browser "snapshot"\` -- Get page state
- \`firecrawl browser "click @<ref>"\` -- Click an element
- \`firecrawl browser "type @<ref> <text>"\` -- Type into an input`;
exports.QA_TOOLS_BLOCK = `## Your Tools -- READ THIS FIRST
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.
**First step: run \`firecrawl --help\` and \`firecrawl browser --help\` to see all commands.** Tell each subagent to do the same.
## IMPORTANT: Launch Browser with Live View FIRST
Before doing anything else, launch a browser session with streaming enabled so the user can watch in real-time:
\`\`\`bash
firecrawl browser launch-session --json
\`\`\`
This prints a **Live View URL**. Try to open it automatically for the user:
\`\`\`bash
open "<liveViewUrl>" # macOS
xdg-open "<liveViewUrl>" # Linux
\`\`\`
If 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.
Quick reference:
- \`firecrawl browser "open <url>"\` -- Navigate to a URL in a cloud browser
- \`firecrawl browser "snapshot"\` -- Get the current page state (accessibility tree)
- \`firecrawl browser "click @<ref>"\` -- Click an element by its reference ID
- \`firecrawl browser "type @<ref> <text>"\` -- Type text into an input
- \`firecrawl browser "scrape"\` -- Get the full page content as markdown
- \`firecrawl browser "scroll down"\` / \`"scroll up"\` -- Scroll the page
- \`firecrawl scrape <url>\` -- Quick scrape without browser session
- \`firecrawl map <url>\` -- Discover all URLs on the site`;
exports.SUBAGENT_INSTRUCTIONS = `**IMPORTANT:** When spawning agents with the Agent tool:
- Use \`subagent_type: "general-purpose"\` for each agent
- Give each agent a clear, specific mandate in the prompt
- 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."
- Launch ALL agents in a SINGLE message (parallel, not sequential)
- Each agent should return structured findings with source URLs`;
// ─── Message builder ────────────────────────────────────────────────────────
/** Join non-empty parts into a message string. */
function buildMessage(parts) {
return parts.filter(Boolean).join('. ') + '.';
}
// ─── Permission helper ──────────────────────────────────────────────────────
async function askPermissionMode(backend) {
const { select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const config = backends_1.BACKENDS[backend];
const skipLabel = backend === 'codex' ? '--full-auto' : '--dangerously-skip-permissions';
const mode = await select({
message: 'How should the agent handle tool permissions?',
choices: [
{
name: 'Auto-approve all (recommended)',
value: 'skip',
description: `Runs fully autonomous, no manual approvals. Uses ${skipLabel}.`,
},
{
name: 'Ask me each time',
value: 'ask',
description: `${config.displayName} will prompt before running each tool (slower but more control).`,
},
],
});
return mode === 'skip';
}
//# sourceMappingURL=shared.js.map
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/experimental/shared.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBH,oCAEC;AAGD,0CAIC;AA+DD,oCAEC;AAID,8CAwBC;AA5HD,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;;;;;;;;;;;;;;mEAc8B,CAAC;AAEvD,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"}
/**
* Workflow: Competitor Analysis
*
* Spawns parallel agents -- one per company -- to scrape and profile the target
* and each competitor simultaneously. Synthesizes into a full competitive report.
*/
import { Command } from 'commander';
import { type Backend } from '../backends';
export declare function register(parentCmd: Command, backend: Backend): void;
//# sourceMappingURL=competitor-analysis.d.ts.map
{"version":3,"file":"competitor-analysis.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/competitor-analysis.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AAuKlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAyBnE"}
"use strict";
/**
* Workflow: Competitor Analysis
*
* Spawns parallel agents -- one per company -- to scrape and profile the target
* and each competitor simultaneously. Synthesizes into a full competitive report.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = register;
const backends_1 = require("../backends");
const shared_1 = require("../shared");
// ─── Input gathering ────────────────────────────────────────────────────────
async function gatherInputs(prefill) {
const { input, select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const rawUrl = prefill?.url ||
(await input({
message: "What's the URL of the site you want to analyze?",
validate: shared_1.validateUrl,
}));
const competitors = await input({
message: 'Are there particular competitors you want to flag? (leave blank to auto-discover)',
default: '',
});
const context = await input({
message: 'Anything else I should know? (leave blank to skip)',
default: '',
});
const output = await select({
message: 'How should the report be delivered?',
choices: [
{ name: 'Print to terminal', value: 'terminal' },
{ name: 'Save as Markdown file', value: 'markdown' },
{ name: 'Save as JSON (structured data)', value: 'json' },
],
});
return { url: (0, shared_1.normalizeUrl)(rawUrl), competitors, context, output };
}
// ─── System prompt ──────────────────────────────────────────────────────────
function buildSystemPrompt(opts) {
const outputInstructions = {
terminal: 'Print the full report to the terminal in well-formatted markdown.',
markdown: 'Save the report to a file called `competitor-analysis.md` in the current directory. Tell the user the file path when done.',
json: `Save the report as structured JSON to \`competitor-analysis.json\` in the current directory. Tell the user the file path when done.
Use this exact schema:
\`\`\`json
{
"target": {
"name": "string",
"url": "string",
"description": "string",
"features": ["string"],
"pricing": { "model": "string", "tiers": [{ "name": "string", "price": "string", "features": ["string"] }] },
"targetAudience": "string",
"valueProposition": "string",
"sources": ["url"]
},
"competitors": [
{
"name": "string",
"url": "string",
"description": "string",
"features": ["string"],
"pricing": { "model": "string", "tiers": [{ "name": "string", "price": "string", "features": ["string"] }] },
"targetAudience": "string",
"sources": ["url"]
}
],
"featureMatrix": {
"features": ["string"],
"comparison": { "companyName": { "featureName": "yes | no | partial | string" } }
},
"positioning": [{ "company": "string", "tone": "string", "keyClaims": ["string"], "differentiators": ["string"] }],
"strengths": ["string"],
"weaknesses": ["string"],
"opportunities": ["string"],
"sources": [{ "url": "string", "title": "string", "usedFor": "string" }]
}
\`\`\``,
};
return `You are a competitive analysis team lead powered by Firecrawl. You orchestrate parallel research agents to analyze a target company and its competitors simultaneously.
${shared_1.FIRECRAWL_TOOLS_BLOCK}
## Your Strategy
You are a **team lead**, not a solo researcher. Your job is to:
1. **Identify the landscape** -- Do a quick search yourself to find competitors if not provided. Search for "<product> alternatives", "<product> vs", "<industry> tools".
2. **Spawn parallel subagents** -- Launch one agent per company (target + each competitor). Each agent scrapes and profiles one company in depth.
3. **Collect results** -- Each agent reports back structured company data with source URLs.
4. **Synthesize** -- Build the comparative analysis, feature matrix, positioning breakdown, and recommendations from all agent findings.
## Agent Assignments
Spawn these agents in parallel:
1. **Target Company Agent** -- Scrape the target site thoroughly. Extract: features, pricing, positioning, messaging, target audience, value proposition, content strategy. Return all findings with source URLs.
2. **Competitor Agent** (one per competitor) -- Each agent scrapes one competitor's site. Extract: company name, URL, what they do, key features, pricing (if public), target audience, value proposition. Return findings with source URLs.
${shared_1.SUBAGENT_INSTRUCTIONS}
## Output Format
${outputInstructions[opts.output]}
Produce a comprehensive competitive analysis report with:
### 1. Target Company Overview
- What they do (one paragraph)
- Key features / product offerings
- Pricing model (if public)
- Target audience
- Unique value proposition
### 2. Competitor Profiles
For each competitor:
- Company name & URL
- What they do
- Key features
- Pricing (if public)
- Target audience
### 3. Feature Comparison Matrix
A markdown table comparing features across all companies.
### 4. Positioning & Messaging Analysis
How each company positions itself -- tone, key claims, differentiators.
### 5. Strengths & Weaknesses
For the target company relative to competitors.
### 6. Opportunities & Recommendations
Actionable insights based on competitive gaps.
### 7. Sources & Citations
For every claim, cite the source URL where you found the information. List all URLs scraped at the end with a one-line note on what was found there.
---
Be thorough. Scrape real pages, extract real data. Do not make things up -- if pricing isn't public, say so. If a page fails to scrape, try an alternative URL or note the limitation.
Start working immediately when given a target.`;
}
// ─── Command registration ───────────────────────────────────────────────────
function register(parentCmd, backend) {
const config = backends_1.BACKENDS[backend];
parentCmd
.command('competitor-analysis')
.description('Analyze a website and its competitive landscape')
.argument('[url]', 'URL to analyze')
.option('-y, --yes', 'Auto-approve all tool permissions')
.action(async (url, options) => {
const inputs = await gatherInputs(url ? { url } : undefined);
const skipPermissions = options.yes || (await (0, shared_1.askPermissionMode)(backend));
console.log(`\nLaunching ${config.displayName}...\n`);
(0, backends_1.launchAgent)(backend, buildSystemPrompt({ output: inputs.output }), (0, shared_1.buildMessage)([
`Analyze ${inputs.url}`,
inputs.competitors && `Competitors to include: ${inputs.competitors}`,
inputs.context,
]), skipPermissions);
});
}
//# sourceMappingURL=competitor-analysis.js.map
{"version":3,"file":"competitor-analysis.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/competitor-analysis.ts"],"names":[],"mappings":"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"}
/**
* Workflow: Deep Research
*
* Breaks a topic into research angles, then spawns parallel agents -- one per
* angle (overview, technical, market, contrarian). Results are cross-referenced
* and synthesized into a structured report.
*/
import { Command } from 'commander';
import { type Backend } from '../backends';
export declare function register(parentCmd: Command, backend: Backend): void;
//# sourceMappingURL=deep-research.d.ts.map
{"version":3,"file":"deep-research.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/deep-research.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AAuIlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBnE"}
"use strict";
/**
* Workflow: Deep Research
*
* Breaks a topic into research angles, then spawns parallel agents -- one per
* angle (overview, technical, market, contrarian). Results are cross-referenced
* and synthesized into a structured report.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = register;
const backends_1 = require("../backends");
const shared_1 = require("../shared");
// ─── Input gathering ────────────────────────────────────────────────────────
async function gatherInputs(prefill) {
const { input, select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const topic = prefill?.topic ||
(await input({
message: 'What topic do you want to research?',
validate: (0, shared_1.validateRequired)('Topic'),
}));
const depth = await select({
message: 'How deep should the research go?',
choices: [
{ name: 'Quick overview (5-10 sources)', value: 'quick' },
{ name: 'Thorough analysis (15-25 sources)', value: 'thorough' },
{ name: 'Exhaustive deep-dive (25+ sources)', value: 'exhaustive' },
],
});
const context = await input({
message: 'Any specific angles or questions to focus on? (leave blank to skip)',
default: '',
});
const output = await select({
message: 'How should the research be delivered?',
choices: [
{ name: 'Print to terminal', value: 'terminal' },
{ name: 'Save as Markdown file', value: 'markdown' },
{ name: 'Save as JSON (structured data)', value: 'json' },
],
});
return { topic, depth, context, output };
}
// ─── System prompt ──────────────────────────────────────────────────────────
function buildSystemPrompt(opts) {
const depthInstructions = {
quick: 'Search 3-5 queries and scrape 5-10 of the most relevant pages.',
thorough: 'Search 5-10 queries from different angles and scrape 15-25 pages. Cross-reference claims across sources.',
exhaustive: 'Search 10+ queries covering every angle. Scrape 25+ pages including primary sources, research papers, expert opinions, and contrarian views. Cross-reference everything.',
};
const outputInstructions = {
terminal: 'Print the full research report to the terminal in well-formatted markdown.',
markdown: 'Save the report to a file called `research-report.md` in the current directory. Tell the user the file path when done.',
json: 'Save the report as structured JSON to `research-report.json` in the current directory. Tell the user the file path when done.',
};
return `You are a deep research team lead powered by Firecrawl. You orchestrate parallel research agents to investigate a topic from every angle simultaneously.
${shared_1.FIRECRAWL_TOOLS_BLOCK}
## Research Depth
${depthInstructions[opts.depth]}
## Your Strategy
You are a **team lead**, not a solo researcher. Your job is to:
1. **Break the topic into angles** -- Identify 3-5 distinct research angles or subtopics.
2. **Spawn parallel subagents** -- One agent per angle. Each searches, scrapes, and analyzes from their specific perspective.
3. **Collect results** -- Each agent reports back findings with sources.
4. **Cross-reference and synthesize** -- Merge findings, resolve conflicting claims, build the unified report.
## Agent Assignments
Based on the topic, spawn agents like:
1. **Overview Agent** -- Broad searches, foundational context, definitions, key players. Scrape Wikipedia, encyclopedia-style sources, overview articles.
2. **Technical Deep-Dive Agent** -- Technical details, documentation, specifications, architecture. Scrape docs, technical blogs, research papers.
3. **Market & Industry Agent** -- Market size, trends, adoption, industry analyst perspectives. Scrape reports, news articles, industry publications.
4. **Contrarian & Risks Agent** -- Counterarguments, criticisms, failure cases, limitations. Search for "<topic> problems", "<topic> criticism", "<topic> limitations".
Adjust the number and focus of agents based on the topic and depth level.
${shared_1.SUBAGENT_INSTRUCTIONS}
## Output Format
${outputInstructions[opts.output]}
Structure the report as:
### Executive Summary
2-3 paragraph overview of key findings.
### Key Findings
Numbered list of the most important discoveries, each with supporting evidence.
### Detailed Analysis
Deep dive into each major theme or subtopic.
### Contrarian Views & Risks
What are the counterarguments? What could go wrong?
### Sources
Every URL you scraped, with a one-line summary of what you found there.
---
Be thorough and honest. Cite your sources. Flag uncertainty. Do not fabricate information.
Start working immediately when given a topic.`;
}
// ─── Command registration ───────────────────────────────────────────────────
function register(parentCmd, backend) {
const config = backends_1.BACKENDS[backend];
parentCmd
.command('deep-research')
.description('Deep research any topic using web search and scraping')
.argument('[topic]', 'Topic to research')
.option('-y, --yes', 'Auto-approve all tool permissions')
.action(async (topic, options) => {
const inputs = await gatherInputs(topic ? { topic } : undefined);
const skipPermissions = options.yes || (await (0, shared_1.askPermissionMode)(backend));
console.log(`\nLaunching ${config.displayName}...\n`);
(0, backends_1.launchAgent)(backend, buildSystemPrompt({ depth: inputs.depth, output: inputs.output }), (0, shared_1.buildMessage)([inputs.topic, inputs.context]), skipPermissions);
});
}
//# sourceMappingURL=deep-research.js.map
{"version":3,"file":"deep-research.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/deep-research.ts"],"names":[],"mappings":"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"}
/**
* Workflow: Demo Walkthrough
*
* Uses Firecrawl's cloud browser to walk through a product's key flows --
* signup, onboarding, pricing, docs -- step by step. Captures every screen,
* documents interactions, and produces a structured walkthrough report.
*/
import { Command } from 'commander';
import { type Backend } from '../backends';
export declare function register(parentCmd: Command, backend: Backend): void;
//# sourceMappingURL=demo.d.ts.map
{"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/demo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AAuKlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBnE"}
"use strict";
/**
* Workflow: Demo Walkthrough
*
* Uses Firecrawl's cloud browser to walk through a product's key flows --
* signup, onboarding, pricing, docs -- step by step. Captures every screen,
* documents interactions, and produces a structured walkthrough report.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = register;
const backends_1 = require("../backends");
const shared_1 = require("../shared");
// ─── Input gathering ────────────────────────────────────────────────────────
async function gatherInputs(prefill) {
const { input, select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const rawUrl = prefill?.url ||
(await input({
message: 'What product do you want to walk through?',
validate: shared_1.validateUrl,
}));
const focus = await select({
message: 'What flows should the agent explore?',
choices: [
{ name: 'Full product walkthrough (all key flows)', value: 'full' },
{ name: 'Signup and onboarding flow', value: 'signup' },
{ name: 'Pricing and plans', value: 'pricing' },
{ name: 'Documentation and developer experience', value: 'docs' },
{ name: 'Dashboard and core product', value: 'dashboard' },
],
});
const context = await input({
message: 'Anything specific to look for? (leave blank to skip)',
default: '',
});
const output = await select({
message: 'How should the walkthrough be delivered?',
choices: [
{ name: 'Print to terminal', value: 'terminal' },
{ name: 'Save as Markdown file', value: 'markdown' },
],
});
return { url: (0, shared_1.normalizeUrl)(rawUrl), focus, context, output };
}
// ─── System prompt ──────────────────────────────────────────────────────────
function buildSystemPrompt(opts) {
const outputInstructions = opts.output === 'markdown'
? 'Save the walkthrough to a file called `demo-walkthrough.md` in the current directory. Tell the user the file path when done.'
: 'Print the full walkthrough to the terminal in well-formatted markdown.';
const focusInstructions = {
full: `Spawn these parallel agents, each walking a different flow:
1. **Homepage & Marketing Agent** -- Open the homepage. Click through marketing pages (features, about, use cases). Document the messaging, value prop, key claims, and CTAs. Note what's above the fold vs below.
2. **Signup & Onboarding Agent** -- Find the signup/get-started flow. Walk through every step of signup and onboarding. Document each screen, what's required, friction points, and the first-run experience. Do NOT submit real credentials -- just document the flow.
3. **Pricing & Plans Agent** -- Navigate to pricing. Click to expand tiers, toggle monthly/annual, check feature comparisons. Document every plan, price, and feature. Look for hidden costs or confusing language.
4. **Docs & Developer Experience Agent** -- Navigate to docs. Walk through the quickstart guide. Check navigation, code examples, search functionality. Document the developer onboarding experience.`,
signup: `Spawn these parallel agents to thoroughly explore the signup and onboarding experience:
1. **Signup Discovery Agent** -- Find every signup entry point (header CTA, pricing page, landing pages). Document how many clicks to get to signup from different starting points.
2. **Signup Flow Agent** -- Walk through the signup form step by step. Document every field, validation message, and screen transition. Note required vs optional fields. Do NOT submit real credentials.
3. **Onboarding Agent** -- After signup screens, document the onboarding flow: welcome screens, setup wizards, tutorials, first-run experience. Walk through every step.
4. **Social Proof Agent** -- Look for trust signals during signup: testimonials, logos, security badges, terms. Document what reassurance the user gets during the flow.`,
pricing: `Spawn these parallel agents to deeply analyze the pricing experience:
1. **Pricing Page Agent** -- Navigate to the pricing page. Snapshot the full layout. Toggle between monthly/annual. Click to expand feature lists. Document every plan name, price, and feature.
2. **Feature Comparison Agent** -- Find the feature comparison table or matrix. Click through each tier's detail page. Document what's included and excluded at each level.
3. **Pricing Discovery Agent** -- Check multiple entry points to pricing (nav, footer, CTAs). Look for different pricing shown to different segments. Check if pricing changes based on region or plan selection.
4. **Competitor Pricing Agent** -- Search for and scrape competitor pricing pages. Build a side-by-side comparison of pricing tiers and features.`,
docs: `Spawn these parallel agents to walk through the documentation experience:
1. **Quickstart Agent** -- Find and follow the quickstart guide from start to finish. Try every step. Document the experience: was it clear? Were code examples correct? How long would it take a new developer?
2. **Navigation Agent** -- Explore the doc structure. Click through the sidebar, use search, check breadcrumbs. Document the information architecture and how easy it is to find things.
3. **Code Examples Agent** -- Find code examples across the docs. Check multiple languages/SDKs. Document which are available, their quality, and whether they look copy-pasteable.
4. **API Reference Agent** -- Find the API reference. Walk through endpoints, check request/response examples, look for interactive "try it" features. Document completeness and usability.`,
dashboard: `Spawn these parallel agents to explore the core product experience:
1. **Entry Point Agent** -- Find the login/dashboard entry. Document what the user sees on first login. Walk through the main navigation. Map out the product sections.
2. **Core Flow Agent** -- Identify the primary user action (create something, configure something). Walk through it step by step. Document each screen and interaction.
3. **Settings & Config Agent** -- Explore settings, integrations, API keys, team management. Document what's configurable and how.
4. **Help & Support Agent** -- Find help resources within the product: tooltips, help center links, chat widgets, documentation links. Document what support is available in-context.`,
};
return `You are a product demo team lead powered by Firecrawl. You walk through a product's key flows using cloud browser automation, documenting every screen and interaction.
${shared_1.QA_TOOLS_BLOCK}
## Your Strategy
You are a **team lead**. Your job is to:
1. **Open the site first** -- Run \`firecrawl browser "open <url>"\` yourself to get the initial page state and understand the site structure.
2. **Spawn parallel subagents** -- Each agent walks through a different flow using \`firecrawl browser\`. They click, scroll, type, and snapshot their way through the product.
3. **Collect results** -- Each agent reports back a step-by-step walkthrough of their flow.
4. **Synthesize** -- Merge all walkthroughs into one structured report.
## Agent Assignments
${focusInstructions[opts.focus]}
${shared_1.SUBAGENT_INSTRUCTIONS}
- Tell each agent to use \`firecrawl browser\` commands to navigate interactively
- Each agent should describe every screen they see: layout, content, CTAs, forms
- Agents should \`firecrawl browser "snapshot"\` at each step to see interactive elements
- Agents should note the user experience: what's clear, what's confusing, what's missing
## Output Format
${outputInstructions}
Structure the walkthrough as:
### Product Overview
One paragraph summary of what the product does based on exploring it.
### Flow Walkthroughs
For each flow explored:
#### [Flow Name]
Step-by-step walkthrough:
1. **[Screen/Page Name]** -- What's on screen, key elements, what the user would do next
2. **[Next Screen]** -- What changed, new elements, user actions available
...
Key observations:
- What works well
- What's confusing or could be improved
- Notable UX patterns
### Key Findings
- First impression and overall UX quality
- Standout features or patterns
- Friction points or usability issues
- How the product compares to typical products in the space
### Recommendations
What could be improved, from a user experience perspective.
### Pages Visited
Full list of every URL the agents navigated to.
---
Be specific and descriptive. Don't just say "the pricing page looks good" -- describe what's on it, how it's organized, and what makes it effective or not.
Start by opening the site, then immediately fan out your agents to walk through different flows in parallel.`;
}
// ─── Command registration ───────────────────────────────────────────────────
function register(parentCmd, backend) {
const config = backends_1.BACKENDS[backend];
parentCmd
.command('demo')
.description("Walk through a product's key flows using cloud browser")
.argument('[url]', 'Product URL to explore')
.option('-y, --yes', 'Auto-approve all tool permissions')
.action(async (url, options) => {
const inputs = await gatherInputs(url ? { url } : undefined);
const skipPermissions = options.yes || (await (0, shared_1.askPermissionMode)(backend));
console.log(`\nLaunching ${config.displayName}...\n`);
(0, backends_1.launchAgent)(backend, buildSystemPrompt({ focus: inputs.focus, output: inputs.output }), (0, shared_1.buildMessage)([`Walk through ${inputs.url}`, inputs.context]), skipPermissions);
});
}
//# sourceMappingURL=demo.js.map
{"version":3,"file":"demo.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/demo.ts"],"names":[],"mappings":"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"}
/**
* Workflow: Knowledge Base
*
* A single command that adapts based on the user's goal: local reference docs,
* RAG-ready chunks, fine-tuning datasets, or full doc site mirrors. All output
* follows the `.firecrawl/<hostname>/<path>/index.md` convention.
*/
import { Command } from 'commander';
import { type Backend } from '../backends';
export declare function register(parentCmd: Command, backend: Backend): void;
//# sourceMappingURL=knowledge-base.d.ts.map
{"version":3,"file":"knowledge-base.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/knowledge-base.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AAwTlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAgCnE"}
"use strict";
/**
* Workflow: Knowledge Base
*
* A single command that adapts based on the user's goal: local reference docs,
* RAG-ready chunks, fine-tuning datasets, or full doc site mirrors. All output
* follows the `.firecrawl/<hostname>/<path>/index.md` convention.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = register;
const backends_1 = require("../backends");
const shared_1 = require("../shared");
// ─── Input gathering ────────────────────────────────────────────────────────
async function gatherInputs(prefill) {
const { input, select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const rawSource = prefill?.source ||
(await input({
message: 'What do you want to build a knowledge base from? (URL or topic)',
validate: (0, shared_1.validateRequired)('URL or topic'),
}));
const goal = await select({
message: 'What are you building this for?',
choices: [
{
name: 'Local reference (organized markdown files)',
value: 'reference',
},
{
name: 'RAG / embedding pipeline (chunked, with metadata)',
value: 'rag',
},
{ name: 'Fine-tuning dataset (JSONL training data)', value: 'train' },
{ name: 'Documentation scrape (mirror a doc site)', value: 'docs' },
],
});
let trainFormat = '';
let trainExamples = '';
if (goal === 'train') {
trainFormat = (await select({
message: 'Training data format?',
choices: [
{ name: 'OpenAI JSONL (messages array)', value: 'openai' },
{ name: 'Alpaca (instruction/input/output)', value: 'alpaca' },
{ name: 'ShareGPT (conversations)', value: 'sharegpt' },
],
}));
trainExamples = await input({
message: 'Roughly how many training examples?',
default: '100',
});
}
const depth = await select({
message: 'How thorough?',
choices: [
{ name: 'Quick (5-10 sources)', value: 'quick' },
{ name: 'Thorough (15-25 sources)', value: 'thorough' },
{ name: 'Exhaustive (25+ sources)', value: 'exhaustive' },
],
});
const context = await input({
message: 'Any specific focus or instructions? (leave blank to skip)',
default: '',
});
const outputDir = await input({
message: 'Output directory?',
default: '.firecrawl/',
});
return {
source: (0, shared_1.normalizeSource)(rawSource),
goal,
depth,
context,
outputDir,
trainFormat,
trainExamples,
};
}
// ─── System prompt ──────────────────────────────────────────────────────────
const FILE_CONVENTION = `## File Organization
**IMPORTANT:** Follow the same structure as \`firecrawl download\`. Save all files under \`.firecrawl/\` using nested directories that mirror each URL's hostname and path:
\`\`\`
.firecrawl/
<hostname>/
<path>/
index.md # Page content as clean markdown
\`\`\`
For example, \`https://docs.stripe.com/api/charges\` becomes:
\`\`\`
.firecrawl/docs.stripe.com/api/charges/index.md
\`\`\`
Strip \`www.\` from hostnames. Each page gets its own directory with an \`index.md\` inside it.`;
function buildGoalInstructions(opts) {
switch (opts.goal) {
case 'reference':
return `${FILE_CONVENTION}
Also create these at the root of \`${opts.outputDir}\`:
- \`index.md\` -- Table of contents with links to all scraped pages
- \`sources.json\` -- All URLs scraped with metadata (title, type, url)
Each markdown file should have frontmatter:
\`\`\`yaml
---
title: "Page Title"
url: "https://..."
source: "Source Name"
type: "docs | article | tutorial | reference | discussion"
---
\`\`\`
Focus on clean, readable markdown. Preserve code examples and formatting.`;
case 'rag':
return `${FILE_CONVENTION}
After scraping, chunk each page into embedding-ready pieces (500-1500 tokens). Save chunks alongside the source:
\`\`\`
.firecrawl/<hostname>/<path>/
index.md # Full page content
chunks/
001.md # Chunk 1
002.md # Chunk 2
\`\`\`
Each chunk file should have frontmatter:
\`\`\`yaml
---
title: "Page Title"
url: "https://..."
chunk: 1
total_chunks: 5
section: "Section Name"
---
\`\`\`
Also create \`${opts.outputDir}/manifest.json\` listing every chunk with its metadata for easy ingestion into a vector store.`;
case 'train':
return `${FILE_CONVENTION}
Scrape source pages into the \`.firecrawl/\` directory structure first, then generate training data from the scraped content.
## Training Data Format
${opts.trainFormat === 'openai'
? `OpenAI fine-tuning JSONL. Each line:
\`\`\`json
{"messages": [{"role": "system", "content": "..."}, {"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
\`\`\``
: opts.trainFormat === 'alpaca'
? `Alpaca format JSONL. Each line:
\`\`\`json
{"instruction": "...", "input": "...", "output": "..."}
\`\`\``
: `ShareGPT conversation JSONL. Each line:
\`\`\`json
{"conversations": [{"from": "human", "value": "..."}, {"from": "gpt", "value": "..."}]}
\`\`\``}
Target ~${opts.trainExamples} examples.
Save the dataset to \`training-data.jsonl\` in the current directory.
Also save \`training-metadata.json\` with:
- Total examples generated
- Sources used (URLs)
- Topic coverage breakdown
- Format used
### Quality Guidelines
- Each example should be self-contained and accurate
- Vary the instruction style (questions, commands, scenarios)
- Include code examples where relevant
- Remove boilerplate, navigation, and ads from scraped content
- Cite the source URL in a metadata field for traceability
- Deduplicate similar examples`;
case 'docs':
return `${FILE_CONVENTION}
Also create \`${opts.outputDir}/index.md\` as a table of contents linking to all scraped pages, organized by section.
Each markdown file should have frontmatter:
\`\`\`yaml
---
title: "Page Title"
url: "https://..."
section: "Section Name"
---
\`\`\`
Be thorough. Scrape every page, preserve all code examples. This content will be used as LLM context, so accuracy matters.`;
default:
return FILE_CONVENTION;
}
}
function buildAgentStrategy(goal) {
switch (goal) {
case 'docs':
return `## Agent Assignments
Spawn agents based on the doc structure:
1. **Section Agent** (one per major section) -- Scrape all pages in the section. Save each page as clean markdown. Preserve code examples and formatting.
Start by mapping the site with \`firecrawl map\` to discover all pages, then divide by section.`;
case 'train':
return `## Agent Assignments
Spawn agents by source type:
1. **Documentation Agent** -- Scrape official docs. Generate instruction/response pairs from doc sections (e.g., "How do I X?" with the answer from docs).
2. **Tutorial Agent** -- Scrape tutorials and how-to articles. Generate step-by-step instruction pairs.
3. **Q&A Agent** -- Scrape Stack Overflow, GitHub discussions, forums. Extract real question/answer pairs.
4. **Reference Agent** -- Scrape reference material. Generate factual Q&A pairs.`;
default:
return `## Agent Assignments
Spawn agents by source type:
1. **Official Docs Agent** -- Find and scrape official documentation, reference material, specs.
2. **Articles & Tutorials Agent** -- Find and scrape the best articles, blog posts, tutorials.
3. **Community & Discussions Agent** -- Find and scrape relevant forum posts, Stack Overflow answers, GitHub discussions.
4. **Reference Agent** -- Wikipedia, glossaries, standards documents, whitepapers.
Adjust agents based on what sources exist for the topic.`;
}
}
function buildSystemPrompt(opts) {
const depthInstructions = {
quick: 'Find and scrape 5-10 of the best sources.',
thorough: 'Find and scrape 15-25 sources covering different perspectives.',
exhaustive: 'Find and scrape 25+ sources including primary docs, articles, tutorials, and reference material.',
};
return `You are a knowledge base team lead powered by Firecrawl. You scrape web content and organize it into structured, LLM-ready formats.
${shared_1.FIRECRAWL_TOOLS_BLOCK}
## Depth
${depthInstructions[opts.depth]}
## Your Strategy
You are a **team lead**. Your job is to:
1. **Find the best sources** -- ${opts.goal === 'docs' ? 'Map the documentation site to discover all pages.' : 'Search broadly to identify the most valuable sources on the topic.'}
2. **Spawn parallel subagents** -- Divide the work across agents. Each scrapes their assigned sources.
3. **Collect and organize** -- Build the final output structure from all agent results.
${buildAgentStrategy(opts.goal)}
${shared_1.SUBAGENT_INSTRUCTIONS}
${buildGoalInstructions(opts)}
---
Tell the user the output path when done.
Start immediately.`;
}
// ─── Command registration ───────────────────────────────────────────────────
function register(parentCmd, backend) {
const config = backends_1.BACKENDS[backend];
parentCmd
.command('knowledge-base')
.description('Build a knowledge base from web content (docs, RAG, fine-tuning)')
.argument('[source]', 'URL or topic to build from')
.option('-y, --yes', 'Auto-approve all tool permissions')
.action(async (source, options) => {
const inputs = await gatherInputs(source ? { source } : undefined);
const skipPermissions = options.yes || (await (0, shared_1.askPermissionMode)(backend));
console.log(`\nLaunching ${config.displayName}...\n`);
(0, backends_1.launchAgent)(backend, buildSystemPrompt({
goal: inputs.goal,
depth: inputs.depth,
outputDir: inputs.outputDir,
trainFormat: inputs.trainFormat,
trainExamples: inputs.trainExamples,
}), (0, shared_1.buildMessage)([
`Build a knowledge base from: ${inputs.source}`,
inputs.context,
]), skipPermissions);
});
}
//# sourceMappingURL=knowledge-base.js.map
{"version":3,"file":"knowledge-base.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/knowledge-base.ts"],"names":[],"mappings":"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"}
/**
* Workflow: Lead Research
*
* Spawns parallel agents to research a company, recent news/activity, and
* optionally a specific person -- all at once. Results are synthesized into
* a brief with talking points and pain points.
*/
import { Command } from 'commander';
import { type Backend } from '../backends';
export declare function register(parentCmd: Command, backend: Backend): void;
//# sourceMappingURL=lead-research.d.ts.map
{"version":3,"file":"lead-research.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/lead-research.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AAkHlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAyBnE"}
"use strict";
/**
* Workflow: Lead Research
*
* Spawns parallel agents to research a company, recent news/activity, and
* optionally a specific person -- all at once. Results are synthesized into
* a brief with talking points and pain points.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = register;
const backends_1 = require("../backends");
const shared_1 = require("../shared");
// ─── Input gathering ────────────────────────────────────────────────────────
async function gatherInputs(prefill) {
const { input, select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const company = prefill?.company ||
(await input({
message: 'What company do you want to research?',
validate: (0, shared_1.validateRequired)('Company name or URL'),
}));
const person = await input({
message: 'Specific person to research? (leave blank to skip)',
default: '',
});
const context = await input({
message: 'What\'s the context? (e.g., "preparing for a sales call", "partnership eval")',
default: '',
});
const output = await select({
message: 'How should the brief be delivered?',
choices: [
{ name: 'Print to terminal', value: 'terminal' },
{ name: 'Save as Markdown file', value: 'markdown' },
],
});
return { company, person, context, output };
}
// ─── System prompt ──────────────────────────────────────────────────────────
function buildSystemPrompt(opts) {
const outputInstructions = opts.output === 'markdown'
? 'Save the brief to a file called `lead-brief.md` in the current directory. Tell the user the file path when done.'
: 'Print the full brief to the terminal in well-formatted markdown.';
return `You are a lead research team lead powered by Firecrawl. You orchestrate parallel research agents to prepare intelligence briefs before meetings, calls, or outreach.
${shared_1.FIRECRAWL_TOOLS_BLOCK}
## Your Strategy
You are a **team lead**, not a solo researcher. Your job is to:
1. **Spawn parallel subagents** -- Launch agents to research the company, recent activity, and person simultaneously.
2. **Collect results** -- Each agent reports back findings with sources.
3. **Synthesize** -- Build the brief with talking points and pain points from all agent findings.
## Agent Assignments
Spawn these agents in parallel:
1. **Company Profile Agent** -- Scrape the company website: about page, team/careers, product pages, pricing. Return what they do, size, stage, tech stack, key metrics.
2. **News & Activity Agent** -- Search for recent news about the company: funding, launches, hires, partnerships, press coverage from the last 6 months. Scrape the top results.
3. **Person Research Agent** (if a person is specified) -- Search for the person: their role, background, recent talks/posts/tweets, interests, public profiles. Scrape relevant pages.
${shared_1.SUBAGENT_INSTRUCTIONS}
## Output Format
${outputInstructions}
Structure the brief as:
### Company Overview
What they do, size, stage, key metrics.
### Recent Activity
News, launches, funding, hires from the last 6 months.
### Key People
Relevant people at the company with their roles and backgrounds.
### Talking Points
5-7 specific conversation starters based on your research.
### Potential Pain Points
What challenges might they be facing based on their industry/stage/tech?
### Sources
Every URL you scraped.
---
Be concise and actionable. This is a pre-meeting brief, not a thesis.
Start working immediately.`;
}
// ─── Command registration ───────────────────────────────────────────────────
function register(parentCmd, backend) {
const config = backends_1.BACKENDS[backend];
parentCmd
.command('lead-research')
.description('Research a company or person before a meeting or outreach')
.argument('[company]', 'Company name or URL')
.option('-y, --yes', 'Auto-approve all tool permissions')
.action(async (company, options) => {
const inputs = await gatherInputs(company ? { company } : undefined);
const skipPermissions = options.yes || (await (0, shared_1.askPermissionMode)(backend));
console.log(`\nLaunching ${config.displayName}...\n`);
(0, backends_1.launchAgent)(backend, buildSystemPrompt({ output: inputs.output }), (0, shared_1.buildMessage)([
`Research ${inputs.company}`,
inputs.person && `Focus on ${inputs.person}`,
inputs.context && `Context: ${inputs.context}`,
]), skipPermissions);
});
}
//# sourceMappingURL=lead-research.js.map
{"version":3,"file":"lead-research.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/lead-research.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqHH,4BAyBC;AA3ID,0CAAkE;AAClE,sCAMmB;AAWnB,+EAA+E;AAE/E,KAAK,UAAU,YAAY,CAAC,OAA8B;IACxD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;IAE5D,MAAM,OAAO,GACX,OAAO,EAAE,OAAO;QAChB,CAAC,MAAM,KAAK,CAAC;YACX,OAAO,EAAE,uCAAuC;YAChD,QAAQ,EAAE,IAAA,yBAAgB,EAAC,qBAAqB,CAAC;SAClD,CAAC,CAAC,CAAC;IAEN,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;QACzB,OAAO,EAAE,oDAAoD;QAC7D,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC;QAC1B,OAAO,EACL,+EAA+E;QACjF,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;QAC1B,OAAO,EAAE,oCAAoC;QAC7C,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE;YAChD,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,UAAU,EAAE;SACrD;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC9C,CAAC;AAED,+EAA+E;AAE/E,SAAS,iBAAiB,CAAC,IAAwB;IACjD,MAAM,kBAAkB,GACtB,IAAI,CAAC,MAAM,KAAK,UAAU;QACxB,CAAC,CAAC,kHAAkH;QACpH,CAAC,CAAC,kEAAkE,CAAC;IAEzE,OAAO;;EAEP,8BAAqB;;;;;;;;;;;;;;;;;EAiBrB,8BAAqB;;;;EAIrB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;2BA0BO,CAAC;AAC5B,CAAC;AAED,+EAA+E;AAE/E,SAAgB,QAAQ,CAAC,SAAkB,EAAE,OAAgB;IAC3D,MAAM,MAAM,GAAG,mBAAQ,CAAC,OAAO,CAAC,CAAC;IAEjC,SAAS;SACN,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,2DAA2D,CAAC;SACxE,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;SAC5C,MAAM,CAAC,WAAW,EAAE,mCAAmC,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAErE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAA,0BAAiB,EAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,WAAW,OAAO,CAAC,CAAC;QAEtD,IAAA,sBAAW,EACT,OAAO,EACP,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAC5C,IAAA,qBAAY,EAAC;YACX,YAAY,MAAM,CAAC,OAAO,EAAE;YAC5B,MAAM,CAAC,MAAM,IAAI,YAAY,MAAM,CAAC,MAAM,EAAE;YAC5C,MAAM,CAAC,OAAO,IAAI,YAAY,MAAM,CAAC,OAAO,EAAE;SAC/C,CAAC,EACF,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
/**
* Workflow: QA / Dogfood
*
* Acts as a QA team lead: maps the site, then spawns 3-4 parallel subagents
* that use Firecrawl's cloud browser to click around, fill forms, test
* interactions, and find bugs simultaneously.
*/
import { Command } from 'commander';
import { type Backend } from '../backends';
export declare function register(parentCmd: Command, backend: Backend): void;
//# sourceMappingURL=qa.d.ts.map
{"version":3,"file":"qa.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/qa.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AA8JlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBnE"}
"use strict";
/**
* Workflow: QA / Dogfood
*
* Acts as a QA team lead: maps the site, then spawns 3-4 parallel subagents
* that use Firecrawl's cloud browser to click around, fill forms, test
* interactions, and find bugs simultaneously.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = register;
const backends_1 = require("../backends");
const shared_1 = require("../shared");
// ─── Input gathering ────────────────────────────────────────────────────────
async function gatherInputs(prefill) {
const { input, select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const rawUrl = prefill?.url ||
(await input({
message: "What's the URL of the site to test?",
validate: shared_1.validateUrl,
}));
const focus = await select({
message: 'What should the QA focus on?',
choices: [
{ name: 'Full exploratory test (everything)', value: 'full' },
{ name: 'Forms and user flows', value: 'forms' },
{ name: 'Navigation and links', value: 'navigation' },
{ name: 'Responsive / mobile issues', value: 'responsive' },
{ name: 'Performance and load times', value: 'performance' },
],
});
const context = await input({
message: 'Any specific areas or known issues to check? (leave blank to skip)',
default: '',
});
const output = await select({
message: 'How should the report be delivered?',
choices: [
{ name: 'Print to terminal', value: 'terminal' },
{ name: 'Save as Markdown file', value: 'markdown' },
],
});
return { url: (0, shared_1.normalizeUrl)(rawUrl), focus, context, output };
}
// ─── System prompt ──────────────────────────────────────────────────────────
function buildSystemPrompt(opts) {
const outputInstructions = opts.output === 'markdown'
? 'Save the QA report to a file called `qa-report.md` in the current directory. Tell the user the file path when done.'
: 'Print the final unified QA report to the terminal in well-formatted markdown.';
const focusInstructions = {
full: `Spawn ALL of these parallel agents:
1. **Navigation & Links Agent** -- Map the site, visit every nav item, check footer links, breadcrumbs, 404s, broken links.
2. **Forms & Interactions Agent** -- Find every form, test valid/invalid submissions, check validation messages, test edge cases (empty, too long, special chars).
3. **Content & Visual Agent** -- Check content quality, heading hierarchy, image alt tags, visual consistency, scroll through all pages.
4. **Error States Agent** -- Hit invalid URLs, test error pages, try unauthorized access, check API error responses visible in the UI.`,
forms: `Spawn these parallel agents:
1. **Form Discovery Agent** -- Map the site and find every form, input, and interactive element.
2. **Happy Path Agent** -- Test every form with valid data, verify success states.
3. **Edge Case Agent** -- Test with empty fields, max-length inputs, special characters, SQL injection strings, XSS payloads.
4. **Validation Agent** -- Test field-level validation, required fields, format validation (email, phone, etc).`,
navigation: `Spawn these parallel agents:
1. **Sitemap Agent** -- Map the full site, check sitemap.xml, compare discovered vs listed URLs.
2. **Nav Testing Agent** -- Click every nav item, dropdown, mega menu. Test mobile nav if responsive.
3. **Link Checker Agent** -- Scrape every page for links, verify each one returns 200.
4. **Routing Agent** -- Test back/forward, deep linking, query params, hash routing.`,
responsive: `Spawn these parallel agents:
1. **Desktop Agent** -- Test at 1920px, 1440px, 1024px widths.
2. **Tablet Agent** -- Test at 768px and 1024px portrait/landscape.
3. **Mobile Agent** -- Test at 375px and 390px widths.
4. **Interaction Agent** -- Test touch targets, overflow, horizontal scroll, zoom behavior.`,
performance: `Spawn these parallel agents:
1. **Page Load Agent** -- Measure load times for key pages (homepage, product, blog, pricing).
2. **Asset Audit Agent** -- Check image sizes, unoptimized assets, render-blocking scripts.
3. **Content Efficiency Agent** -- Check for lazy loading, pagination, infinite scroll behavior.
4. **Comparison Agent** -- Load competitor sites, compare performance characteristics.`,
};
return `You are a QA team lead powered by Firecrawl. You orchestrate parallel testing agents to thoroughly test live websites.
${shared_1.QA_TOOLS_BLOCK}
## Your Strategy
You are a **team lead**, not a solo tester. Your job is to:
1. **Map the site first** -- Run \`firecrawl map\` yourself to discover all pages.
2. **Spawn parallel subagents** -- Use the Agent tool to launch multiple testing agents simultaneously. Each agent gets a specific testing mandate and a subset of pages.
3. **Collect results** -- Each agent reports back its findings.
4. **Synthesize** -- Merge all agent findings into one unified report, deduplicate issues, and assign severity.
## Agent Assignments
${focusInstructions[opts.focus]}
${shared_1.SUBAGENT_INSTRUCTIONS}
- Tell each agent which pages to test (divide the sitemap between them)
- Tell each agent to use \`firecrawl browser\` and \`firecrawl scrape\` commands
- Each agent should report findings as: severity (critical/major/minor), URL, description, steps to reproduce
## Output Format
${outputInstructions}
Structure the unified QA report as:
### Summary
- Overall health score (out of 10)
- Pages tested: X
- Issues found: X critical, X major, X minor
- Agents deployed: X
### Critical Issues
Bugs that break functionality or block users:
- **[C-1]** URL | Description | Steps to reproduce | Expected vs actual
### Major Issues
Significant UX problems or broken features:
- **[M-1]** URL | Description | Steps to reproduce
### Minor Issues
Visual glitches, inconsistencies, polish items:
- **[m-1]** URL | Description
### Positive Observations
Things that work particularly well.
### Pages Tested
Full list of every URL visited across all agents.
### Agent Summary
Which agent found what -- brief summary of each agent's work.
---
Start by mapping the site, then immediately fan out your testing agents in parallel.`;
}
// ─── Command registration ───────────────────────────────────────────────────
function register(parentCmd, backend) {
const config = backends_1.BACKENDS[backend];
parentCmd
.command('qa')
.description('QA test a live website using Firecrawl cloud browser')
.argument('[url]', 'URL to test')
.option('-y, --yes', 'Auto-approve all tool permissions')
.action(async (url, options) => {
const inputs = await gatherInputs(url ? { url } : undefined);
const skipPermissions = options.yes || (await (0, shared_1.askPermissionMode)(backend));
console.log(`\nLaunching ${config.displayName}...\n`);
(0, backends_1.launchAgent)(backend, buildSystemPrompt({ focus: inputs.focus, output: inputs.output }), (0, shared_1.buildMessage)([`Test ${inputs.url}`, inputs.context]), skipPermissions);
});
}
//# sourceMappingURL=qa.js.map
{"version":3,"file":"qa.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/qa.ts"],"names":[],"mappings":"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"}
/**
* Workflow: Research Papers
*
* Spawns parallel agents by source type (academic, industry, technical) to find,
* scrape, and synthesize research papers, whitepapers, and PDFs into a
* structured literature review.
*/
import { Command } from 'commander';
import { type Backend } from '../backends';
export declare function register(parentCmd: Command, backend: Backend): void;
//# sourceMappingURL=research-papers.d.ts.map
{"version":3,"file":"research-papers.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/research-papers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AAsHlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAyBnE"}
"use strict";
/**
* Workflow: Research Papers
*
* Spawns parallel agents by source type (academic, industry, technical) to find,
* scrape, and synthesize research papers, whitepapers, and PDFs into a
* structured literature review.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = register;
const backends_1 = require("../backends");
const shared_1 = require("../shared");
// ─── Input gathering ────────────────────────────────────────────────────────
async function gatherInputs(prefill) {
const { input, select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const topic = prefill?.topic ||
(await input({
message: 'What topic do you want to find papers on?',
validate: (0, shared_1.validateRequired)('Topic'),
}));
const count = await input({
message: 'How many papers/sources to target? (default: 10)',
default: '10',
});
const context = await input({
message: 'Any specific angles or questions? (leave blank to skip)',
default: '',
});
const output = await select({
message: 'How should the literature review be delivered?',
choices: [
{ name: 'Print to terminal', value: 'terminal' },
{ name: 'Save as Markdown file', value: 'markdown' },
],
});
return { topic, count, context, output };
}
// ─── System prompt ──────────────────────────────────────────────────────────
function buildSystemPrompt(opts) {
const outputInstructions = opts.output === 'markdown'
? 'Save the literature review to `literature-review.md` in the current directory. Tell the user the file path when done.'
: 'Print the full literature review to the terminal in well-formatted markdown.';
return `You are a research papers team lead powered by Firecrawl. You find, scrape, and synthesize research papers, whitepapers, and PDFs into a structured literature review.
${shared_1.FIRECRAWL_TOOLS_BLOCK}
## Your Strategy
You are a **team lead**. Your job is to:
1. **Find papers and PDFs** -- Search for research papers, whitepapers, technical reports, and PDFs on the topic. Target sources like arXiv, Google Scholar, IEEE, ACM, company research blogs, and PDF links.
2. **Spawn parallel subagents** -- Each agent scrapes and analyzes a subset of papers.
3. **Synthesize** -- Build a structured literature review from all agent findings.
## Agent Assignments
Spawn agents by source type:
1. **Academic Papers Agent** -- Search for and scrape research papers from arXiv, Google Scholar links, university sites. Use \`firecrawl scrape\` on PDF URLs directly -- Firecrawl handles PDFs natively.
2. **Industry Reports Agent** -- Search for whitepapers, technical reports, and industry publications. Scrape company research blogs and report PDFs.
3. **Technical Articles Agent** -- Search for in-depth technical articles, blog posts from researchers, and conference talk summaries.
${shared_1.SUBAGENT_INSTRUCTIONS}
## Output Format
${outputInstructions}
Structure the literature review as:
### Abstract
2-3 paragraph summary of the research landscape.
### Key Papers
For each paper/source:
- **Title** and authors (if available)
- **Source URL**
- **Key findings** (2-3 bullet points)
- **Methodology** (if applicable)
- **Relevance** to the topic
### Themes & Consensus
What do the papers agree on? What are the established findings?
### Open Questions & Debates
Where do papers disagree? What's unresolved?
### Emerging Trends
Recent developments and where the field is heading.
### Sources
Every URL scraped, organized by type (paper, report, article).
---
Be thorough with citations. Every claim should trace back to a specific source. If a PDF fails to scrape, note it and try an alternative.
Start by searching for papers on the topic.`;
}
// ─── Command registration ───────────────────────────────────────────────────
function register(parentCmd, backend) {
const config = backends_1.BACKENDS[backend];
parentCmd
.command('research-papers')
.description('Find and synthesize research papers, whitepapers, and PDFs')
.argument('[topic]', 'Research topic')
.option('-y, --yes', 'Auto-approve all tool permissions')
.action(async (topic, options) => {
const inputs = await gatherInputs(topic ? { topic } : undefined);
const skipPermissions = options.yes || (await (0, shared_1.askPermissionMode)(backend));
console.log(`\nLaunching ${config.displayName}...\n`);
(0, backends_1.launchAgent)(backend, buildSystemPrompt({ output: inputs.output }), (0, shared_1.buildMessage)([
`Research papers on: ${inputs.topic}`,
`Target ~${inputs.count} papers`,
inputs.context,
]), skipPermissions);
});
}
//# sourceMappingURL=research-papers.js.map
{"version":3,"file":"research-papers.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/research-papers.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHH,4BAyBC;AA/ID,0CAAkE;AAClE,sCAMmB;AAWnB,+EAA+E;AAE/E,KAAK,UAAU,YAAY,CAAC,OAA4B;IACtD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;IAE5D,MAAM,KAAK,GACT,OAAO,EAAE,KAAK;QACd,CAAC,MAAM,KAAK,CAAC;YACX,OAAO,EAAE,2CAA2C;YACpD,QAAQ,EAAE,IAAA,yBAAgB,EAAC,OAAO,CAAC;SACpC,CAAC,CAAC,CAAC;IAEN,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC;QACxB,OAAO,EAAE,kDAAkD;QAC3D,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC;QAC1B,OAAO,EAAE,yDAAyD;QAClE,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;QAC1B,OAAO,EAAE,gDAAgD;QACzD,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE;YAChD,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,UAAU,EAAE;SACrD;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC3C,CAAC;AAED,+EAA+E;AAE/E,SAAS,iBAAiB,CAAC,IAAwB;IACjD,MAAM,kBAAkB,GACtB,IAAI,CAAC,MAAM,KAAK,UAAU;QACxB,CAAC,CAAC,uHAAuH;QACzH,CAAC,CAAC,8EAA8E,CAAC;IAErF,OAAO;;EAEP,8BAAqB;;;;;;;;;;;;;;;;;EAiBrB,8BAAqB;;;;EAIrB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA+BwB,CAAC;AAC7C,CAAC;AAED,+EAA+E;AAE/E,SAAgB,QAAQ,CAAC,SAAkB,EAAE,OAAgB;IAC3D,MAAM,MAAM,GAAG,mBAAQ,CAAC,OAAO,CAAC,CAAC;IAEjC,SAAS;SACN,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,4DAA4D,CAAC;SACzE,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;SACrC,MAAM,CAAC,WAAW,EAAE,mCAAmC,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEjE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAA,0BAAiB,EAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,WAAW,OAAO,CAAC,CAAC;QAEtD,IAAA,sBAAW,EACT,OAAO,EACP,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAC5C,IAAA,qBAAY,EAAC;YACX,uBAAuB,MAAM,CAAC,KAAK,EAAE;YACrC,WAAW,MAAM,CAAC,KAAK,SAAS;YAChC,MAAM,CAAC,OAAO;SACf,CAAC,EACF,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
/**
* Workflow: SEO Audit
*
* Maps the site, then spawns parallel agents for site structure, on-page SEO,
* and keyword/competitor analysis. Produces a prioritized audit with specific
* (not generic) recommendations.
*/
import { Command } from 'commander';
import { type Backend } from '../backends';
export declare function register(parentCmd: Command, backend: Backend): void;
//# sourceMappingURL=seo-audit.d.ts.map
{"version":3,"file":"seo-audit.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/seo-audit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AA0HlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAwBnE"}
"use strict";
/**
* Workflow: SEO Audit
*
* Maps the site, then spawns parallel agents for site structure, on-page SEO,
* and keyword/competitor analysis. Produces a prioritized audit with specific
* (not generic) recommendations.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = register;
const backends_1 = require("../backends");
const shared_1 = require("../shared");
// ─── Input gathering ────────────────────────────────────────────────────────
async function gatherInputs(prefill) {
const { input, select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const rawUrl = prefill?.url ||
(await input({
message: 'What site do you want to audit?',
validate: shared_1.validateUrl,
}));
const keywords = await input({
message: 'Target keywords? (comma-separated, leave blank to auto-detect)',
default: '',
});
const output = await select({
message: 'How should the audit be delivered?',
choices: [
{ name: 'Print to terminal', value: 'terminal' },
{ name: 'Save as Markdown file', value: 'markdown' },
],
});
return { url: (0, shared_1.normalizeUrl)(rawUrl), keywords, output };
}
// ─── System prompt ──────────────────────────────────────────────────────────
function buildSystemPrompt(opts) {
const outputInstructions = opts.output === 'markdown'
? 'Save the audit to a file called `seo-audit.md` in the current directory. Tell the user the file path when done.'
: 'Print the full audit to the terminal in well-formatted markdown.';
return `You are an SEO audit team lead powered by Firecrawl. You orchestrate parallel agents to thoroughly audit a website's search engine optimization.
${shared_1.FIRECRAWL_TOOLS_BLOCK}
## Your Strategy
You are a **team lead**, not a solo auditor. Your job is to:
1. **Map the site first** -- Run \`firecrawl map\` yourself to discover all pages and understand the site structure.
2. **Spawn parallel subagents** -- Launch agents to audit different aspects simultaneously.
3. **Collect results** -- Each agent reports back findings.
4. **Synthesize** -- Build the prioritized audit with specific recommendations.
## Agent Assignments
Spawn these agents in parallel:
1. **Site Structure Agent** -- Analyze URL structure, check sitemap.xml, evaluate internal linking patterns. Use the sitemap from the map step. Check for orphan pages, redirect chains, broken internal links.
2. **On-Page SEO Agent** -- Scrape key pages (homepage, top product/service pages, blog, about). For each page: check title tag, meta description, heading hierarchy (H1/H2/H3), content length, image alt tags, schema markup.
3. **Keyword & Competitor Agent** -- Search for the site's target keywords. Find who's ranking above them. Scrape top competitors' pages and compare their on-page SEO tactics (titles, headings, content structure, meta).
${shared_1.SUBAGENT_INSTRUCTIONS}
## Output Format
${outputInstructions}
Structure the audit as:
### Site Structure
- Total pages found
- URL structure quality
- Sitemap health
### On-Page SEO
For each key page:
- Title tag, meta description
- Heading hierarchy (H1, H2, etc.)
- Content length and quality
- Internal linking
### Keyword Analysis
- Current keyword targeting
- Missing keyword opportunities
- Competitor keyword comparison
### Technical Issues
- Broken links, redirects
- Missing meta tags
- Duplicate content concerns
### Competitor Comparison
Who's outranking them and why.
### Recommendations
Prioritized list of fixes (high/medium/low impact).
### Sources
Every URL scraped.
---
Be specific with recommendations. Don't just say "improve meta descriptions" -- say exactly what to change.
Start working immediately.`;
}
// ─── Command registration ───────────────────────────────────────────────────
function register(parentCmd, backend) {
const config = backends_1.BACKENDS[backend];
parentCmd
.command('seo-audit')
.description('Run an SEO audit on a website')
.argument('[url]', 'URL to audit')
.option('-y, --yes', 'Auto-approve all tool permissions')
.action(async (url, options) => {
const inputs = await gatherInputs(url ? { url } : undefined);
const skipPermissions = options.yes || (await (0, shared_1.askPermissionMode)(backend));
console.log(`\nLaunching ${config.displayName}...\n`);
(0, backends_1.launchAgent)(backend, buildSystemPrompt({ output: inputs.output }), (0, shared_1.buildMessage)([
`Audit ${inputs.url}`,
inputs.keywords && `Target keywords: ${inputs.keywords}`,
]), skipPermissions);
});
}
//# sourceMappingURL=seo-audit.js.map
{"version":3,"file":"seo-audit.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/seo-audit.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6HH,4BAwBC;AAlJD,0CAAkE;AAClE,sCAOmB;AAUnB,+EAA+E;AAE/E,KAAK,UAAU,YAAY,CAAC,OAA0B;IACpD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;IAE5D,MAAM,MAAM,GACV,OAAO,EAAE,GAAG;QACZ,CAAC,MAAM,KAAK,CAAC;YACX,OAAO,EAAE,iCAAiC;YAC1C,QAAQ,EAAE,oBAAW;SACtB,CAAC,CAAC,CAAC;IAEN,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC;QAC3B,OAAO,EAAE,gEAAgE;QACzE,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;QAC1B,OAAO,EAAE,oCAAoC;QAC7C,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE;YAChD,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,UAAU,EAAE;SACrD;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,EAAE,IAAA,qBAAY,EAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACzD,CAAC;AAED,+EAA+E;AAE/E,SAAS,iBAAiB,CAAC,IAAwB;IACjD,MAAM,kBAAkB,GACtB,IAAI,CAAC,MAAM,KAAK,UAAU;QACxB,CAAC,CAAC,iHAAiH;QACnH,CAAC,CAAC,kEAAkE,CAAC;IAEzE,OAAO;;EAEP,8BAAqB;;;;;;;;;;;;;;;;;;EAkBrB,8BAAqB;;;;EAIrB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAuCO,CAAC;AAC5B,CAAC;AAED,+EAA+E;AAE/E,SAAgB,QAAQ,CAAC,SAAkB,EAAE,OAAgB;IAC3D,MAAM,MAAM,GAAG,mBAAQ,CAAC,OAAO,CAAC,CAAC;IAEjC,SAAS;SACN,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;SACjC,MAAM,CAAC,WAAW,EAAE,mCAAmC,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE7D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAA,0BAAiB,EAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,WAAW,OAAO,CAAC,CAAC;QAEtD,IAAA,sBAAW,EACT,OAAO,EACP,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAC5C,IAAA,qBAAY,EAAC;YACX,SAAS,MAAM,CAAC,GAAG,EAAE;YACrB,MAAM,CAAC,QAAQ,IAAI,oBAAoB,MAAM,CAAC,QAAQ,EAAE;SACzD,CAAC,EACF,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
/**
* Workflow: Shop
*
* Researches a product across the web (reviews, Reddit, Wirecutter, etc.),
* finds the best option, then uses a saved Amazon browser profile to
* add it to cart. Demonstrates persistent browser profiles in action.
*/
import { Command } from 'commander';
import { type Backend } from '../backends';
export declare function register(parentCmd: Command, backend: Backend): void;
//# sourceMappingURL=shop.d.ts.map
{"version":3,"file":"shop.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/shop.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AAkHlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA4BnE"}
"use strict";
/**
* Workflow: Shop
*
* Researches a product across the web (reviews, Reddit, Wirecutter, etc.),
* finds the best option, then uses a saved Amazon browser profile to
* add it to cart. Demonstrates persistent browser profiles in action.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = register;
const backends_1 = require("../backends");
const shared_1 = require("../shared");
// ─── Input gathering ────────────────────────────────────────────────────────
async function gatherInputs(prefill) {
// If query is prefilled, skip interactive prompts entirely
if (prefill?.query) {
return { query: prefill.query, budget: '', sites: '', context: '' };
}
const { input } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const query = await input({
message: 'What are you looking to buy?',
validate: (0, shared_1.validateRequired)('Product'),
});
const budget = await input({
message: 'Budget? (leave blank for no limit)',
default: '',
});
const sites = await input({
message: 'Preferred site(s)? (e.g. amazon, bestbuy, newegg -- leave blank for any)',
default: '',
});
const context = await input({
message: 'Any other preferences? (brand, features, delivery location, etc.)',
default: '',
});
return { query, budget, sites, context };
}
// ─── System prompt ──────────────────────────────────────────────────────────
function buildSystemPrompt() {
return `You are a personal shopping assistant powered by Firecrawl. You research products across the web, find the best deal, and then use the user's saved Amazon browser profile to add it to their cart.
${shared_1.QA_TOOLS_BLOCK}
## Browser Profiles (IMPORTANT -- read carefully)
A browser profile is NOT a session. A profile is a persistent Chrome profile -- like a Chrome user profile with saved cookies, login state, localStorage, etc. It survives across sessions.
The user has a profile called "amazon". If it's not already logged in, log in with:
- Email: jonathan@sideguide.dev
- Password: FirecrawlDemo123!
To use the profile:
\`\`\`bash
# Connect to the amazon profile -- this creates a NEW session using the saved Chrome profile data
firecrawl browser "open https://www.amazon.com" --profile amazon
# Now you're logged in. Use normal browser commands (no --profile needed after the first open):
firecrawl browser "snapshot"
firecrawl browser "click @<ref>"
firecrawl browser "type @<ref> <text>"
\`\`\`
DO NOT run \`firecrawl browser list\` to look for sessions. The profile exists independently of sessions. Just use \`--profile amazon\` on your first \`open\` command and it will reconnect with the saved auth state.
## Your Strategy
Do everything sequentially -- do NOT spawn parallel subagents. Work through each step yourself, one at a time.
### Phase 1: Research (use firecrawl scrape/search)
1. Search the web for the product -- reviews, comparisons, Reddit threads, Wirecutter, tech blogs
2. Scrape the top results to understand specs, pros/cons, and pricing
3. Pick the best option based on value, reviews, and the user's requirements
### Phase 2: Buy (use firecrawl browser)
1. Open Amazon with the saved profile: \`firecrawl browser "open https://www.amazon.com" --profile amazon\`
2. For each item:
a. Search for it on Amazon
b. Find the exact listing (match model, specs, seller)
c. Set the correct quantity if the user specified one
d. Add to cart
3. After all items are added, go to the cart and take a snapshot to confirm everything is there
If the user asks for multiple different products, handle them all. If they specify quantities (e.g., "5 mac minis"), set the quantity on Amazon before adding to cart.
## Output
Print a summary to the terminal:
### Research Summary
- What you searched for and top sources consulted
- For each product: top options compared, your pick, and why
### Amazon Cart
- Every item added (name, quantity, price, seller)
- Total estimated cost
- Cart confirmation
Be specific with product names, model numbers, and prices. Start immediately.`;
}
// ─── Command registration ───────────────────────────────────────────────────
function register(parentCmd, backend) {
const config = backends_1.BACKENDS[backend];
parentCmd
.command('shop')
.description('Research products across the web, then buy using your saved Amazon session')
.argument('[query...]', 'What to shop for')
.option('-y, --yes', 'Auto-approve all tool permissions')
.action(async (queryParts, options) => {
const prefillQuery = queryParts.length > 0 ? queryParts.join(' ') : undefined;
const inputs = await gatherInputs(prefillQuery ? { query: prefillQuery } : undefined);
const parts = [inputs.query];
if (inputs.budget)
parts.push(`Budget: ${inputs.budget}`);
if (inputs.sites)
parts.push(`Shop on: ${inputs.sites}`);
if (inputs.context)
parts.push(inputs.context);
const userMessage = parts.join('. ') + '.';
const skipPermissions = true;
console.log(`\nLaunching ${config.displayName}...\n`);
(0, backends_1.launchAgent)(backend, buildSystemPrompt(), userMessage, skipPermissions);
});
}
//# sourceMappingURL=shop.js.map
{"version":3,"file":"shop.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/shop.ts"],"names":[],"mappings":"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"}
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAwDf;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB/D;AAeD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAiDf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAuHf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAyDf;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB/D;AAeD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAiDf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAuHf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}

@@ -53,4 +53,5 @@ "use strict";

lines.push(`CDP URL: ${data.cdpUrl}`);
if (data.liveViewUrl) {
lines.push(`Live View URL: ${data.liveViewUrl}`);
const interactiveUrl = data.liveViewUrl;
if (interactiveUrl) {
lines.push(`Live View URL: ${interactiveUrl}`);
}

@@ -57,0 +58,0 @@ (0, output_1.writeOutput)(lines.join('\n'), options.output, !!options.output);

@@ -1,1 +0,1 @@

{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"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"}
/**
* Init command — single command to install the CLI, authenticate, and add skills.
* Init command — interactive step-by-step wizard to set up Firecrawl.
*

@@ -16,4 +16,14 @@ * Usage: npx -y firecrawl-cli init

browser?: boolean;
template?: string;
}
interface TemplateEntry {
name: string;
description: string;
path: string;
}
export declare const TEMPLATES: TemplateEntry[];
export declare function findTemplate(name: string): TemplateEntry | undefined;
export declare function scaffoldTemplate(templatePath: string): Promise<void>;
export declare function handleInitCommand(options?: InitOptions): Promise<void>;
export {};
//# sourceMappingURL=init.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,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;CACnB;AAED,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAoIf"}
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,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;AAuWF,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"}
"use strict";
/**
* Init command — single command to install the CLI, authenticate, and add skills.
* Init command — interactive step-by-step wizard to set up Firecrawl.
*
* Usage: npx -y firecrawl-cli init
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.TEMPLATES = void 0;
exports.findTemplate = findTemplate;
exports.scaffoldTemplate = scaffoldTemplate;
exports.handleInitCommand = handleInitCommand;

@@ -13,8 +49,431 @@ const child_process_1 = require("child_process");

const config_1 = require("../utils/config");
const orange = '\x1b[38;5;208m';
const reset = '\x1b[0m';
const dim = '\x1b[2m';
const bold = '\x1b[1m';
const green = '\x1b[32m';
const TEMPLATES_REPO = 'firecrawl/cli-templates';
exports.TEMPLATES = [
// Scraping
{
name: 'Scrape / Basic',
description: 'Simple scrape + crawl scripts',
path: 'scrape-basic',
},
{
name: 'Scrape / Express',
description: 'Express server with scrape, crawl, and search endpoints',
path: 'scrape-express',
},
{
name: 'Scrape / Next.js',
description: 'Next.js app with server actions for scraping',
path: 'scrape-nextjs',
},
// Browser
{
name: 'Browser / Basic',
description: 'Playwright and Puppeteer CDP scripts with Firecrawl browser',
path: 'browser-basic',
},
{
name: 'Browser / Express',
description: 'Express server with browser automation endpoints',
path: 'browser-express',
},
{
name: 'Browser / AI SDK',
description: 'Next.js browser co-pilot with Vercel AI SDK and live session UI',
path: '_external:firecrawl/browser-ai-sdk',
},
// AI Frameworks
{
name: 'AI / Vercel AI SDK',
description: 'Firecrawl tools with Vercel AI SDK',
path: 'ai-vercel',
},
{
name: 'AI / LangChain',
description: 'Firecrawl tools with LangChain agents',
path: 'ai-langchain',
},
// Full apps
{
name: 'Open Lovable',
description: 'Clone and recreate any website as a modern React app',
path: '_external:firecrawl/open-lovable',
},
];
async function stepInstall() {
const { confirm } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const shouldInstall = await confirm({
message: 'Install firecrawl-cli globally?',
default: true,
});
if (!shouldInstall)
return true;
console.log(`\n Installing firecrawl-cli globally...`);
try {
(0, child_process_1.execSync)('npm install -g firecrawl-cli', { stdio: 'inherit' });
console.log(` ${green}✓${reset} CLI installed globally\n`);
return true;
}
catch {
console.error('\n Failed to install globally. You may need sudo or fix npm permissions.');
return false;
}
}
async function stepAuth(options) {
if ((0, auth_1.isAuthenticated)()) {
console.log(` ${green}✓${reset} Already authenticated\n`);
return true;
}
if (options.apiKey) {
try {
(0, credentials_1.saveCredentials)({ apiKey: options.apiKey });
(0, config_1.updateConfig)({ apiKey: options.apiKey });
console.log(` ${green}✓${reset} Authenticated with provided API key\n`);
return true;
}
catch (error) {
console.error(' Failed to save credentials:', error instanceof Error ? error.message : 'Unknown error');
return false;
}
}
const { select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const method = await select({
message: 'How would you like to authenticate?',
choices: [
{ name: 'Login via browser (recommended)', value: 'browser' },
{ name: 'Enter API key manually', value: 'manual' },
{ name: 'Skip for now', value: 'skip' },
],
});
if (method === 'skip') {
console.log(` ${dim}Skipped. Run "firecrawl login" later.${reset}\n`);
return true;
}
try {
let result;
if (method === 'browser') {
result = await (0, auth_1.browserLogin)();
}
else {
result = await (0, auth_1.interactiveLogin)();
}
(0, credentials_1.saveCredentials)({ apiKey: result.apiKey, apiUrl: result.apiUrl });
(0, config_1.updateConfig)({ apiKey: result.apiKey, apiUrl: result.apiUrl });
const teamSuffix = result.teamName ? ` (Team: ${result.teamName})` : '';
console.log(` ${green}✓${reset} Authenticated${teamSuffix}\n`);
return true;
}
catch (error) {
console.error(' Authentication failed:', error instanceof Error ? error.message : 'Unknown error');
console.log(` ${dim}You can authenticate later with: firecrawl login${reset}\n`);
return true;
}
}
async function stepIntegrations(options) {
const { checkbox, confirm } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const wantIntegrations = await confirm({
message: 'Set up integrations (skills, MCP, env)?',
default: true,
});
if (!wantIntegrations)
return;
const integrations = await checkbox({
message: 'Which integrations?',
choices: [
{
name: 'Skills — install firecrawl skill for AI coding agents',
value: 'skills',
checked: true,
},
{
name: 'MCP — install firecrawl MCP server for editors (Cursor, Claude Code, VS Code)',
value: 'mcp',
},
{
name: 'Env — pull FIRECRAWL_API_KEY into local .env file',
value: 'env',
},
],
});
if (integrations.length === 0) {
console.log(` ${dim}No integrations selected.${reset}\n`);
return;
}
for (const integration of integrations) {
switch (integration) {
case 'skills': {
console.log(`\n Setting up skills...`);
const args = ['npx', '-y', 'skills', 'add', 'firecrawl/cli'];
if (options.all)
args.push('--all');
if (options.yes || options.all)
args.push('--yes');
if (options.global)
args.push('--global');
if (options.agent)
args.push('--agent', options.agent);
try {
(0, child_process_1.execSync)(args.join(' '), { stdio: 'inherit' });
console.log(` ${green}✓${reset} Skills installed`);
}
catch {
console.error(' Failed to install skills. Run "firecrawl setup skills" later.');
}
break;
}
case 'mcp': {
console.log(`\n Setting up MCP server...`);
const apiKey = (0, config_1.getApiKey)();
if (!apiKey) {
console.log(` ${dim}Skipped — no API key found. Run "firecrawl login" first, then "firecrawl setup mcp".${reset}`);
break;
}
const args = [
'npx',
'-y',
'add-mcp',
'"npx -y firecrawl-mcp"',
'--name',
'firecrawl',
];
if (options.global)
args.push('--global');
if (options.agent)
args.push('--agent', options.agent);
try {
(0, child_process_1.execSync)(args.join(' '), {
stdio: 'inherit',
env: { ...process.env, FIRECRAWL_API_KEY: apiKey },
});
console.log(` ${green}✓${reset} MCP server installed`);
}
catch {
console.error(' Failed to install MCP. Run "firecrawl setup mcp" later.');
}
break;
}
case 'env': {
console.log(`\n Pulling API key into .env...`);
try {
const { handleEnvPullCommand } = await Promise.resolve().then(() => __importStar(require('./env')));
await handleEnvPullCommand({});
console.log(` ${green}✓${reset} .env updated`);
}
catch {
console.error(' Failed to update .env. Run "firecrawl env" later.');
}
break;
}
}
}
console.log('');
}
function copyTemplateFiles(srcDir, targetDir, fs, path) {
const entries = fs.readdirSync(srcDir);
for (const entry of entries) {
if (entry === '.git')
continue;
const src = path.join(srcDir, entry);
const dest = path.join(targetDir, entry);
if (fs.existsSync(dest)) {
console.log(` ${dim}skip${reset} ${entry} (already exists)`);
continue;
}
fs.cpSync(src, dest, { recursive: true });
console.log(` ${green}+${reset} ${entry}`);
}
}
async function downloadFromRepo(repo, subdir) {
const fs = await Promise.resolve().then(() => __importStar(require('fs')));
const path = await Promise.resolve().then(() => __importStar(require('path')));
const { execSync: exec } = await Promise.resolve().then(() => __importStar(require('child_process')));
const targetDir = process.cwd();
const tmpDir = path.join(targetDir, `.firecrawl-template-${Date.now()}`);
// Try sparse checkout for subdirectory, full clone for whole repo
try {
if (subdir) {
fs.mkdirSync(tmpDir, { recursive: true });
exec(`git clone --depth 1 --filter=blob:none --sparse https://github.com/${repo}.git "${tmpDir}"`, { stdio: 'pipe' });
exec(`git -C "${tmpDir}" sparse-checkout set "${subdir}"`, {
stdio: 'pipe',
});
const srcDir = path.join(tmpDir, subdir);
if (!fs.existsSync(srcDir)) {
throw new Error(`Template directory "${subdir}" not found in ${repo}`);
}
copyTemplateFiles(srcDir, targetDir, fs, path);
}
else {
exec(`git clone --depth 1 https://github.com/${repo}.git "${tmpDir}"`, {
stdio: 'pipe',
});
copyTemplateFiles(tmpDir, targetDir, fs, path);
}
fs.rmSync(tmpDir, { recursive: true, force: true });
return;
}
catch (gitError) {
// Clean up failed git attempt
if (fs.existsSync(tmpDir)) {
fs.rmSync(tmpDir, { recursive: true, force: true });
}
}
// Fallback: download tarball and extract
const https = await Promise.resolve().then(() => __importStar(require('https')));
const tarballUrl = `https://api.github.com/repos/${repo}/tarball`;
await new Promise((resolve, reject) => {
const request = (url) => {
https.get(url, {
headers: {
'User-Agent': 'firecrawl-cli',
Accept: 'application/vnd.github+json',
},
}, (res) => {
if (res.statusCode === 302 && res.headers.location) {
request(res.headers.location);
return;
}
if (res.statusCode !== 200) {
reject(new Error(`GitHub API returned ${res.statusCode}`));
return;
}
const tmpTar = path.join(targetDir, `.firecrawl-template-${Date.now()}.tar.gz`);
const fileStream = fs.createWriteStream(tmpTar);
res.pipe(fileStream);
fileStream.on('finish', () => {
fileStream.close();
try {
const extractDir = path.join(targetDir, `.firecrawl-template-extract-${Date.now()}`);
fs.mkdirSync(extractDir, { recursive: true });
exec(`tar -xzf "${tmpTar}" -C "${extractDir}" --strip-components=1`, { stdio: 'pipe' });
const srcDir = subdir
? path.join(extractDir, subdir)
: extractDir;
if (!fs.existsSync(srcDir)) {
throw new Error(`Template directory "${subdir}" not found in tarball`);
}
copyTemplateFiles(srcDir, targetDir, fs, path);
fs.rmSync(tmpTar, { force: true });
fs.rmSync(extractDir, { recursive: true, force: true });
resolve();
}
catch (err) {
reject(err);
}
});
});
};
request(tarballUrl);
});
}
async function stepTemplate() {
const { select, confirm: confirmPrompt } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
const wantTemplate = await confirmPrompt({
message: 'Start from a template?',
default: false,
});
if (!wantTemplate)
return;
const template = await select({
message: 'Choose a template',
choices: exports.TEMPLATES.map((t) => ({
name: `${t.name} ${dim}${t.description}${reset}`,
value: t,
})),
});
const isExternal = template.path.startsWith('_external:');
const repo = isExternal
? template.path.replace('_external:', '')
: TEMPLATES_REPO;
const subdir = isExternal ? null : template.path;
console.log(`\n Downloading ${bold}${template.name}${reset}...`);
console.log(` ${dim}github.com/${repo}${subdir ? '/' + subdir : ''}${reset}\n`);
try {
await downloadFromRepo(repo, subdir);
console.log(`\n ${green}✓${reset} Template ready\n`);
}
catch (error) {
console.error(`\n ${bold}Could not download template.${reset}`);
console.error(` ${dim}${error instanceof Error ? error.message : 'Unknown error'}${reset}\n`);
console.log(` Clone it manually:\n`);
console.log(` git clone https://github.com/${repo}.git${subdir ? ' && cp -r ' + repo.split('/')[1] + '/' + subdir + '/* .' : ''}\n`);
}
}
function findTemplate(name) {
const lower = name.toLowerCase();
return exports.TEMPLATES.find((t) => {
const path = t.path.replace('_external:', '').split('/').pop() ?? '';
return path === lower || t.name.toLowerCase() === lower;
});
}
async function scaffoldTemplate(templatePath) {
const template = findTemplate(templatePath);
if (!template) {
console.error(`\n Unknown template: ${bold}${templatePath}${reset}\n`);
console.log(` Available templates:\n`);
for (const t of exports.TEMPLATES) {
const key = t.path.replace('_external:', '').split('/').pop() ?? '';
console.log(` ${bold}${key}${reset} ${dim}${t.description}${reset}`);
}
console.log('');
process.exit(1);
}
const isExternal = template.path.startsWith('_external:');
const repo = isExternal
? template.path.replace('_external:', '')
: TEMPLATES_REPO;
const subdir = isExternal ? null : template.path;
console.log('');
console.log(` ${orange}🔥 ${bold}firecrawl${reset} ${dim}${template.name}${reset}`);
console.log(` ${dim}github.com/${repo}${subdir ? '/' + subdir : ''}${reset}\n`);
try {
await downloadFromRepo(repo, subdir);
console.log(`\n ${green}✓${reset} Template ready\n`);
}
catch (error) {
console.error(`\n ${bold}Could not download template.${reset}`);
console.error(` ${dim}${error instanceof Error ? error.message : 'Unknown error'}${reset}\n`);
console.log(` Clone it manually:\n`);
console.log(` git clone https://github.com/${repo}.git${subdir ? ' && cp -r ' + repo.split('/')[1] + '/' + subdir + '/* .' : ''}\n`);
process.exit(1);
}
}
async function handleInitCommand(options = {}) {
const orange = '\x1b[38;5;208m';
const reset = '\x1b[0m';
const dim = '\x1b[2m';
const bold = '\x1b[1m';
const green = '\x1b[32m';
// Direct template scaffold: firecrawl init browser-nextjs
if (options.template) {
await scaffoldTemplate(options.template);
return;
}
console.log('');
console.log(` ${orange}🔥 ${bold}firecrawl${reset} ${dim}init${reset}`);
console.log('');
// Non-interactive mode (--yes skips all prompts)
if (options.yes) {
await runNonInteractive(options);
return;
}
// Step 1: Install
if (!options.skipInstall) {
const ok = await stepInstall();
if (!ok) {
console.log(` ${dim}Continuing with setup...${reset}\n`);
}
}
// Step 2: Auth
if (!options.skipAuth) {
await stepAuth(options);
}
// Step 3: Integrations (skills, MCP, env)
if (!options.skipSkills) {
await stepIntegrations(options);
}
// Step 4: Template
await stepTemplate();
console.log(`${green}${bold} Setup complete!${reset} Run ${dim}firecrawl --help${reset} to get started.\n`);
}
async function runNonInteractive(options) {
const steps = [];

@@ -33,6 +492,2 @@ if (!options.skipInstall)

};
console.log('');
console.log(` ${orange}🔥 ${bold}firecrawl${reset} ${dim}init${reset}`);
console.log('');
// Step: Install CLI globally
if (!options.skipInstall) {

@@ -49,3 +504,2 @@ console.log(`${stepLabel()} Installing firecrawl-cli globally...`);

}
// Step: Authenticate
if (!options.skipAuth) {

@@ -78,16 +532,6 @@ if ((0, auth_1.isAuthenticated)()) {

}
(0, credentials_1.saveCredentials)({
apiKey: result.apiKey,
apiUrl: result.apiUrl,
});
(0, config_1.updateConfig)({
apiKey: result.apiKey,
apiUrl: result.apiUrl,
});
if (result.teamName) {
console.log(`${green}✓${reset} Authenticated (Team: ${result.teamName})\n`);
}
else {
console.log(`${green}✓${reset} Authenticated\n`);
}
(0, credentials_1.saveCredentials)({ apiKey: result.apiKey, apiUrl: result.apiUrl });
(0, config_1.updateConfig)({ apiKey: result.apiKey, apiUrl: result.apiUrl });
const teamSuffix = result.teamName ? ` (Team: ${result.teamName})` : '';
console.log(`${green}✓${reset} Authenticated${teamSuffix}\n`);
}

@@ -100,21 +544,15 @@ catch (error) {

}
// Step: Install skills
if (!options.skipSkills) {
console.log(`${stepLabel()} Installing firecrawl skill for AI coding agents...`);
const args = ['npx', '-y', 'skills', 'add', 'firecrawl/cli'];
if (options.all) {
if (options.all)
args.push('--all');
}
if (options.yes || options.all) {
if (options.yes || options.all)
args.push('--yes');
}
if (options.global) {
if (options.global)
args.push('--global');
}
if (options.agent) {
if (options.agent)
args.push('--agent', options.agent);
}
const cmd = args.join(' ');
try {
(0, child_process_1.execSync)(cmd, { stdio: 'inherit' });
(0, child_process_1.execSync)(args.join(' '), { stdio: 'inherit' });
console.log(`${green}✓${reset} Skills installed\n`);

@@ -121,0 +559,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CA+Ef"}
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAoGf"}

@@ -29,2 +29,20 @@ "use strict";

}
// If only a custom --api-url is provided (no --api-key), persist the new URL
// alongside the existing API key rather than starting an interactive login flow.
if (isCustomUrl && !options.apiKey && !options.method) {
const existingApiKey = (0, config_1.getApiKey)();
try {
(0, credentials_1.saveCredentials)({
apiKey: existingApiKey,
apiUrl: apiUrl,
});
(0, config_1.updateConfig)({ apiKey: existingApiKey, apiUrl });
console.log('✓ API URL updated successfully!');
}
catch (error) {
console.error('Error saving credentials:', error instanceof Error ? error.message : 'Unknown error');
process.exit(1);
}
return;
}
// If API key provided directly, save it

@@ -31,0 +49,0 @@ if (options.apiKey) {

@@ -1,1 +0,1 @@

{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAwBH,gDAiFC;AAvGD,sDAA+E;AAC/E,4CAA+C;AAC/C,wCAKuB;AAEvB,MAAM,eAAe,GAAG,2BAA2B,CAAC;AACpD,MAAM,OAAO,GAAG,uBAAuB,CAAC;AASxC;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACtC,UAAwB,EAAE;IAE1B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC;IACrE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;IAC7D,MAAM,WAAW,GAAG,MAAM,KAAK,eAAe,CAAC;IAE/C,0CAA0C;IAC1C,IAAI,IAAA,sBAAe,GAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAA,oCAAsB,GAAE,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,wCAAwC;IACxC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,yCAAyC;QACzC,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,KAAK,CACX,iEAAiE,CAClE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,IAAA,6BAAe,EAAC;gBACd,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAEnC,IAAA,qBAAY,EAAC;gBACX,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,2BAA2B,EAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CACzD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,IAAI,MAA6D,CAAC;QAElE,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,GAAG,MAAM,IAAA,kBAAW,EAAC,MAAM,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,GAAG,MAAM,IAAA,mBAAY,EAAC,MAAM,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,IAAA,uBAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;QAED,mBAAmB;QACnB,IAAA,6BAAe,EAAC;YACd,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM;SAChC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,IAAA,qBAAY,EAAC;YACX,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM;SAChC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,UAAU,EACV,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CACzD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}

@@ -66,2 +66,3 @@ #!/usr/bin/env node

const package_json_1 = __importDefault(require("../package.json"));
const experimental_1 = require("./commands/experimental");
// Initialize global configuration from environment variables

@@ -741,2 +742,6 @@ (0, config_1.initializeConfig)();

program.addCommand(createBrowserCommand());
// Experimental: AI workflow commands
program.addCommand((0, experimental_1.createClaudeCommand)());
program.addCommand((0, experimental_1.createCodexCommand)());
program.addCommand((0, experimental_1.createOpenCodeCommand)());
program

@@ -773,5 +778,6 @@ .command('config')

.action(async (options) => {
const globalOptions = program.opts();
await (0, login_1.handleLoginCommand)({
apiKey: options.apiKey,
apiUrl: options.apiUrl,
apiKey: options.apiKey ?? globalOptions.apiKey,
apiUrl: options.apiUrl ?? globalOptions.apiUrl,
webUrl: options.webUrl,

@@ -789,3 +795,4 @@ method: options.browser ? 'browser' : options.method,

.command('init')
.description('Install CLI globally, authenticate, and add skills in one step (npx -y firecrawl-cli init)')
.description('Set up Firecrawl: install CLI, authenticate, add integrations, and scaffold a template')
.argument('[template]', 'Template to scaffold (e.g. browser-nextjs, scrape-express)')
.option('--all', 'Install skills to all detected agents (implies --yes)')

@@ -800,4 +807,5 @@ .option('-y, --yes', 'Skip confirmation prompts for skills installation')

.option('--skip-skills', 'Skip skills installation')
.action(async (options) => {
.action(async (template, options) => {
await (0, init_1.handleInitCommand)({
template,
global: options.global,

@@ -887,2 +895,7 @@ agent: options.agent,

}
// Check if first argument is a template name
if (!args[0].startsWith('-') && (0, init_1.findTemplate)(args[0])) {
await (0, init_1.scaffoldTemplate)(args[0]);
return;
}
// Check if first argument is a URL (and not a command)

@@ -889,0 +902,0 @@ if (!args[0].startsWith('-') && (0, url_1.isUrl)(args[0])) {

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{
"name": "firecrawl-cli",
"version": "1.9.4",
"version": "1.9.5",
"description": "Command-line interface for Firecrawl. Scrape, crawl, and extract data from any website directly from your terminal.",

@@ -71,5 +71,5 @@ "main": "dist/index.js",

"@inquirer/prompts": "^8.2.1",
"@mendable/firecrawl-js": "4.15.1",
"@mendable/firecrawl-js": "4.15.3",
"commander": "^14.0.2"
}
}
+129
-0

@@ -770,4 +770,133 @@ # 🔥 Firecrawl CLI

## Experimental: AI Workflows
Launch pre-built AI workflows that combine Firecrawl's web capabilities with your coding agent. One command spins up an interactive session with the right system prompt, tools, and instructions -- like `ollama run` but for web research agents. All workflows spawn parallel subagents to divide the work and finish faster.
```bash
# Claude Code (available now)
firecrawl claude competitor-analysis
firecrawl claude deep-research
firecrawl claude lead-research
firecrawl claude seo-audit
firecrawl claude qa
# Codex and OpenCode -- coming soon
firecrawl codex competitor-analysis
firecrawl opencode competitor-analysis
```
See the full documentation: **[Experimental Workflows ->](src/commands/experimental/README.md)**
---
## Testing Workflows Locally
After building the CLI (`pnpm run build`), every workflow works with all three backends — just swap the command name:
```bash
# Help
firecrawl claude --help
firecrawl codex --help
firecrawl opencode --help
```
### QA Testing
```bash
firecrawl claude qa https://myapp.com
firecrawl codex qa https://myapp.com
firecrawl opencode qa https://myapp.com
```
### Product Demo Walkthrough
```bash
firecrawl claude demo https://resend.com
firecrawl codex demo https://neon.tech
firecrawl opencode demo https://linear.app
```
### Competitor Analysis
```bash
firecrawl claude competitor-analysis https://firecrawl.dev
firecrawl codex competitor-analysis https://crawlee.dev
firecrawl opencode competitor-analysis https://apify.com
```
### Deep Research
```bash
firecrawl claude deep-research "RAG pipeline data ingestion tools"
firecrawl codex deep-research "web scraping best practices 2025"
firecrawl opencode deep-research "browser automation frameworks comparison"
```
### Other Workflows
```bash
# Lead research
firecrawl claude lead-research "Vercel"
firecrawl codex lead-research "Stripe"
# SEO audit
firecrawl opencode seo-audit https://example.com
# Knowledge base
firecrawl claude knowledge-base https://docs.langchain.com
# Research papers
firecrawl codex research-papers "web scraping compliance HIPAA"
# Shopping
firecrawl claude shop "best mechanical keyboard for developers"
```
### Natural Language (no workflow name)
```bash
firecrawl claude "scrape the firecrawl docs and summarize"
firecrawl codex "find pricing for crawlee vs scrapy"
firecrawl opencode "compare Firecrawl and Apify features"
```
Add `-y` to any command to auto-approve tool permissions (maps to `--dangerously-skip-permissions` for Claude, `--full-auto` for Codex).
### Live View
Use `firecrawl browser launch --json` to get a live view URL, then pass it to your agent so you can watch it work in real-time:
```bash
# Launch a browser session and grab the live view URL
LIVE_URL=$(firecrawl browser launch --json | jq -r '.liveViewUrl')
# Pass it to Claude Code
claude --append-system-prompt "A cloud browser session is running. Live view: $LIVE_URL -- use \`firecrawl browser\` commands to interact." \
--dangerously-skip-permissions \
"QA test https://myapp.com using the cloud browser"
# Pass it to Codex
codex --full-auto \
--config "instructions=A cloud browser session is running. Live view: $LIVE_URL -- use \`firecrawl browser\` commands to interact." \
"walk through the signup flow on https://example.com"
# Or use the built-in workflow commands (session is auto-saved for firecrawl browser)
firecrawl browser launch --json | jq -r '.liveViewUrl'
firecrawl claude demo https://resend.com
```
### Prerequisites
Each backend requires its CLI to be installed separately:
| Backend | Install |
| -------- | ----------------------------------------------------- |
| Claude | `npm install -g @anthropic-ai/claude-code` |
| Codex | `npm install -g @openai/codex` |
| OpenCode | [opencode.ai/docs/cli](https://opencode.ai/docs/cli/) |
---
## Documentation
For more details, visit the [Firecrawl Documentation](https://docs.firecrawl.dev).