firecrawl-cli 1.9.4 → 1.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +129 -0
  2. package/dist/commands/browser.d.ts.map +1 -1
  3. package/dist/commands/browser.js +3 -2
  4. package/dist/commands/browser.js.map +1 -1
  5. package/dist/commands/experimental/backends.d.ts +19 -0
  6. package/dist/commands/experimental/backends.d.ts.map +1 -0
  7. package/dist/commands/experimental/backends.js +74 -0
  8. package/dist/commands/experimental/backends.js.map +1 -0
  9. package/dist/commands/experimental/index.d.ts +13 -0
  10. package/dist/commands/experimental/index.d.ts.map +1 -0
  11. package/dist/commands/experimental/index.js +227 -0
  12. package/dist/commands/experimental/index.js.map +1 -0
  13. package/dist/commands/experimental/shared.d.ts +17 -0
  14. package/dist/commands/experimental/shared.d.ts.map +1 -0
  15. package/dist/commands/experimental/shared.js +154 -0
  16. package/dist/commands/experimental/shared.js.map +1 -0
  17. package/dist/commands/experimental/workflows/competitor-analysis.d.ts +10 -0
  18. package/dist/commands/experimental/workflows/competitor-analysis.d.ts.map +1 -0
  19. package/dist/commands/experimental/workflows/competitor-analysis.js +196 -0
  20. package/dist/commands/experimental/workflows/competitor-analysis.js.map +1 -0
  21. package/dist/commands/experimental/workflows/deep-research.d.ts +11 -0
  22. package/dist/commands/experimental/workflows/deep-research.d.ts.map +1 -0
  23. package/dist/commands/experimental/workflows/deep-research.js +159 -0
  24. package/dist/commands/experimental/workflows/deep-research.js.map +1 -0
  25. package/dist/commands/experimental/workflows/demo.d.ts +11 -0
  26. package/dist/commands/experimental/workflows/demo.d.ts.map +1 -0
  27. package/dist/commands/experimental/workflows/demo.js +190 -0
  28. package/dist/commands/experimental/workflows/demo.js.map +1 -0
  29. package/dist/commands/experimental/workflows/knowledge-base.d.ts +11 -0
  30. package/dist/commands/experimental/workflows/knowledge-base.d.ts.map +1 -0
  31. package/dist/commands/experimental/workflows/knowledge-base.js +319 -0
  32. package/dist/commands/experimental/workflows/knowledge-base.js.map +1 -0
  33. package/dist/commands/experimental/workflows/lead-research.d.ts +11 -0
  34. package/dist/commands/experimental/workflows/lead-research.d.ts.map +1 -0
  35. package/dist/commands/experimental/workflows/lead-research.js +146 -0
  36. package/dist/commands/experimental/workflows/lead-research.js.map +1 -0
  37. package/dist/commands/experimental/workflows/qa.d.ts +11 -0
  38. package/dist/commands/experimental/workflows/qa.d.ts.map +1 -0
  39. package/dist/commands/experimental/workflows/qa.js +184 -0
  40. package/dist/commands/experimental/workflows/qa.js.map +1 -0
  41. package/dist/commands/experimental/workflows/research-papers.d.ts +11 -0
  42. package/dist/commands/experimental/workflows/research-papers.d.ts.map +1 -0
  43. package/dist/commands/experimental/workflows/research-papers.js +151 -0
  44. package/dist/commands/experimental/workflows/research-papers.js.map +1 -0
  45. package/dist/commands/experimental/workflows/seo-audit.d.ts +11 -0
  46. package/dist/commands/experimental/workflows/seo-audit.d.ts.map +1 -0
  47. package/dist/commands/experimental/workflows/seo-audit.js +155 -0
  48. package/dist/commands/experimental/workflows/seo-audit.js.map +1 -0
  49. package/dist/commands/experimental/workflows/shop.d.ts +11 -0
  50. package/dist/commands/experimental/workflows/shop.d.ts.map +1 -0
  51. package/dist/commands/experimental/workflows/shop.js +158 -0
  52. package/dist/commands/experimental/workflows/shop.js.map +1 -0
  53. package/dist/commands/init.d.ts +11 -1
  54. package/dist/commands/init.d.ts.map +1 -1
  55. package/dist/commands/init.js +474 -36
  56. package/dist/commands/init.js.map +1 -1
  57. package/dist/commands/login.d.ts.map +1 -1
  58. package/dist/commands/login.js +18 -0
  59. package/dist/commands/login.js.map +1 -1
  60. package/dist/index.js +17 -4
  61. package/dist/index.js.map +1 -1
  62. package/package.json +2 -2
@@ -1,21 +1,480 @@
1
1
  "use strict";
2
2
  /**
3
- * Init command — single command to install the CLI, authenticate, and add skills.
3
+ * Init command — interactive step-by-step wizard to set up Firecrawl.
4
4
  *
5
5
  * Usage: npx -y firecrawl-cli init
6
6
  */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
7
40
  Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.TEMPLATES = void 0;
42
+ exports.findTemplate = findTemplate;
43
+ exports.scaffoldTemplate = scaffoldTemplate;
8
44
  exports.handleInitCommand = handleInitCommand;
9
45
  const child_process_1 = require("child_process");
10
46
  const auth_1 = require("../utils/auth");
11
47
  const credentials_1 = require("../utils/credentials");
12
48
  const config_1 = require("../utils/config");
49
+ const orange = '\x1b[38;5;208m';
50
+ const reset = '\x1b[0m';
51
+ const dim = '\x1b[2m';
52
+ const bold = '\x1b[1m';
53
+ const green = '\x1b[32m';
54
+ const TEMPLATES_REPO = 'firecrawl/cli-templates';
55
+ exports.TEMPLATES = [
56
+ // Scraping
57
+ {
58
+ name: 'Scrape / Basic',
59
+ description: 'Simple scrape + crawl scripts',
60
+ path: 'scrape-basic',
61
+ },
62
+ {
63
+ name: 'Scrape / Express',
64
+ description: 'Express server with scrape, crawl, and search endpoints',
65
+ path: 'scrape-express',
66
+ },
67
+ {
68
+ name: 'Scrape / Next.js',
69
+ description: 'Next.js app with server actions for scraping',
70
+ path: 'scrape-nextjs',
71
+ },
72
+ // Browser
73
+ {
74
+ name: 'Browser / Basic',
75
+ description: 'Playwright and Puppeteer CDP scripts with Firecrawl browser',
76
+ path: 'browser-basic',
77
+ },
78
+ {
79
+ name: 'Browser / Express',
80
+ description: 'Express server with browser automation endpoints',
81
+ path: 'browser-express',
82
+ },
83
+ {
84
+ name: 'Browser / AI SDK',
85
+ description: 'Next.js browser co-pilot with Vercel AI SDK and live session UI',
86
+ path: '_external:firecrawl/browser-ai-sdk',
87
+ },
88
+ // AI Frameworks
89
+ {
90
+ name: 'AI / Vercel AI SDK',
91
+ description: 'Firecrawl tools with Vercel AI SDK',
92
+ path: 'ai-vercel',
93
+ },
94
+ {
95
+ name: 'AI / LangChain',
96
+ description: 'Firecrawl tools with LangChain agents',
97
+ path: 'ai-langchain',
98
+ },
99
+ // Full apps
100
+ {
101
+ name: 'Open Lovable',
102
+ description: 'Clone and recreate any website as a modern React app',
103
+ path: '_external:firecrawl/open-lovable',
104
+ },
105
+ ];
106
+ async function stepInstall() {
107
+ const { confirm } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
108
+ const shouldInstall = await confirm({
109
+ message: 'Install firecrawl-cli globally?',
110
+ default: true,
111
+ });
112
+ if (!shouldInstall)
113
+ return true;
114
+ console.log(`\n Installing firecrawl-cli globally...`);
115
+ try {
116
+ (0, child_process_1.execSync)('npm install -g firecrawl-cli', { stdio: 'inherit' });
117
+ console.log(` ${green}✓${reset} CLI installed globally\n`);
118
+ return true;
119
+ }
120
+ catch {
121
+ console.error('\n Failed to install globally. You may need sudo or fix npm permissions.');
122
+ return false;
123
+ }
124
+ }
125
+ async function stepAuth(options) {
126
+ if ((0, auth_1.isAuthenticated)()) {
127
+ console.log(` ${green}✓${reset} Already authenticated\n`);
128
+ return true;
129
+ }
130
+ if (options.apiKey) {
131
+ try {
132
+ (0, credentials_1.saveCredentials)({ apiKey: options.apiKey });
133
+ (0, config_1.updateConfig)({ apiKey: options.apiKey });
134
+ console.log(` ${green}✓${reset} Authenticated with provided API key\n`);
135
+ return true;
136
+ }
137
+ catch (error) {
138
+ console.error(' Failed to save credentials:', error instanceof Error ? error.message : 'Unknown error');
139
+ return false;
140
+ }
141
+ }
142
+ const { select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
143
+ const method = await select({
144
+ message: 'How would you like to authenticate?',
145
+ choices: [
146
+ { name: 'Login via browser (recommended)', value: 'browser' },
147
+ { name: 'Enter API key manually', value: 'manual' },
148
+ { name: 'Skip for now', value: 'skip' },
149
+ ],
150
+ });
151
+ if (method === 'skip') {
152
+ console.log(` ${dim}Skipped. Run "firecrawl login" later.${reset}\n`);
153
+ return true;
154
+ }
155
+ try {
156
+ let result;
157
+ if (method === 'browser') {
158
+ result = await (0, auth_1.browserLogin)();
159
+ }
160
+ else {
161
+ result = await (0, auth_1.interactiveLogin)();
162
+ }
163
+ (0, credentials_1.saveCredentials)({ apiKey: result.apiKey, apiUrl: result.apiUrl });
164
+ (0, config_1.updateConfig)({ apiKey: result.apiKey, apiUrl: result.apiUrl });
165
+ const teamSuffix = result.teamName ? ` (Team: ${result.teamName})` : '';
166
+ console.log(` ${green}✓${reset} Authenticated${teamSuffix}\n`);
167
+ return true;
168
+ }
169
+ catch (error) {
170
+ console.error(' Authentication failed:', error instanceof Error ? error.message : 'Unknown error');
171
+ console.log(` ${dim}You can authenticate later with: firecrawl login${reset}\n`);
172
+ return true;
173
+ }
174
+ }
175
+ async function stepIntegrations(options) {
176
+ const { checkbox, confirm } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
177
+ const wantIntegrations = await confirm({
178
+ message: 'Set up integrations (skills, MCP, env)?',
179
+ default: true,
180
+ });
181
+ if (!wantIntegrations)
182
+ return;
183
+ const integrations = await checkbox({
184
+ message: 'Which integrations?',
185
+ choices: [
186
+ {
187
+ name: 'Skills — install firecrawl skill for AI coding agents',
188
+ value: 'skills',
189
+ checked: true,
190
+ },
191
+ {
192
+ name: 'MCP — install firecrawl MCP server for editors (Cursor, Claude Code, VS Code)',
193
+ value: 'mcp',
194
+ },
195
+ {
196
+ name: 'Env — pull FIRECRAWL_API_KEY into local .env file',
197
+ value: 'env',
198
+ },
199
+ ],
200
+ });
201
+ if (integrations.length === 0) {
202
+ console.log(` ${dim}No integrations selected.${reset}\n`);
203
+ return;
204
+ }
205
+ for (const integration of integrations) {
206
+ switch (integration) {
207
+ case 'skills': {
208
+ console.log(`\n Setting up skills...`);
209
+ const args = ['npx', '-y', 'skills', 'add', 'firecrawl/cli'];
210
+ if (options.all)
211
+ args.push('--all');
212
+ if (options.yes || options.all)
213
+ args.push('--yes');
214
+ if (options.global)
215
+ args.push('--global');
216
+ if (options.agent)
217
+ args.push('--agent', options.agent);
218
+ try {
219
+ (0, child_process_1.execSync)(args.join(' '), { stdio: 'inherit' });
220
+ console.log(` ${green}✓${reset} Skills installed`);
221
+ }
222
+ catch {
223
+ console.error(' Failed to install skills. Run "firecrawl setup skills" later.');
224
+ }
225
+ break;
226
+ }
227
+ case 'mcp': {
228
+ console.log(`\n Setting up MCP server...`);
229
+ const apiKey = (0, config_1.getApiKey)();
230
+ if (!apiKey) {
231
+ console.log(` ${dim}Skipped — no API key found. Run "firecrawl login" first, then "firecrawl setup mcp".${reset}`);
232
+ break;
233
+ }
234
+ const args = [
235
+ 'npx',
236
+ '-y',
237
+ 'add-mcp',
238
+ '"npx -y firecrawl-mcp"',
239
+ '--name',
240
+ 'firecrawl',
241
+ ];
242
+ if (options.global)
243
+ args.push('--global');
244
+ if (options.agent)
245
+ args.push('--agent', options.agent);
246
+ try {
247
+ (0, child_process_1.execSync)(args.join(' '), {
248
+ stdio: 'inherit',
249
+ env: { ...process.env, FIRECRAWL_API_KEY: apiKey },
250
+ });
251
+ console.log(` ${green}✓${reset} MCP server installed`);
252
+ }
253
+ catch {
254
+ console.error(' Failed to install MCP. Run "firecrawl setup mcp" later.');
255
+ }
256
+ break;
257
+ }
258
+ case 'env': {
259
+ console.log(`\n Pulling API key into .env...`);
260
+ try {
261
+ const { handleEnvPullCommand } = await Promise.resolve().then(() => __importStar(require('./env')));
262
+ await handleEnvPullCommand({});
263
+ console.log(` ${green}✓${reset} .env updated`);
264
+ }
265
+ catch {
266
+ console.error(' Failed to update .env. Run "firecrawl env" later.');
267
+ }
268
+ break;
269
+ }
270
+ }
271
+ }
272
+ console.log('');
273
+ }
274
+ function copyTemplateFiles(srcDir, targetDir, fs, path) {
275
+ const entries = fs.readdirSync(srcDir);
276
+ for (const entry of entries) {
277
+ if (entry === '.git')
278
+ continue;
279
+ const src = path.join(srcDir, entry);
280
+ const dest = path.join(targetDir, entry);
281
+ if (fs.existsSync(dest)) {
282
+ console.log(` ${dim}skip${reset} ${entry} (already exists)`);
283
+ continue;
284
+ }
285
+ fs.cpSync(src, dest, { recursive: true });
286
+ console.log(` ${green}+${reset} ${entry}`);
287
+ }
288
+ }
289
+ async function downloadFromRepo(repo, subdir) {
290
+ const fs = await Promise.resolve().then(() => __importStar(require('fs')));
291
+ const path = await Promise.resolve().then(() => __importStar(require('path')));
292
+ const { execSync: exec } = await Promise.resolve().then(() => __importStar(require('child_process')));
293
+ const targetDir = process.cwd();
294
+ const tmpDir = path.join(targetDir, `.firecrawl-template-${Date.now()}`);
295
+ // Try sparse checkout for subdirectory, full clone for whole repo
296
+ try {
297
+ if (subdir) {
298
+ fs.mkdirSync(tmpDir, { recursive: true });
299
+ exec(`git clone --depth 1 --filter=blob:none --sparse https://github.com/${repo}.git "${tmpDir}"`, { stdio: 'pipe' });
300
+ exec(`git -C "${tmpDir}" sparse-checkout set "${subdir}"`, {
301
+ stdio: 'pipe',
302
+ });
303
+ const srcDir = path.join(tmpDir, subdir);
304
+ if (!fs.existsSync(srcDir)) {
305
+ throw new Error(`Template directory "${subdir}" not found in ${repo}`);
306
+ }
307
+ copyTemplateFiles(srcDir, targetDir, fs, path);
308
+ }
309
+ else {
310
+ exec(`git clone --depth 1 https://github.com/${repo}.git "${tmpDir}"`, {
311
+ stdio: 'pipe',
312
+ });
313
+ copyTemplateFiles(tmpDir, targetDir, fs, path);
314
+ }
315
+ fs.rmSync(tmpDir, { recursive: true, force: true });
316
+ return;
317
+ }
318
+ catch (gitError) {
319
+ // Clean up failed git attempt
320
+ if (fs.existsSync(tmpDir)) {
321
+ fs.rmSync(tmpDir, { recursive: true, force: true });
322
+ }
323
+ }
324
+ // Fallback: download tarball and extract
325
+ const https = await Promise.resolve().then(() => __importStar(require('https')));
326
+ const tarballUrl = `https://api.github.com/repos/${repo}/tarball`;
327
+ await new Promise((resolve, reject) => {
328
+ const request = (url) => {
329
+ https.get(url, {
330
+ headers: {
331
+ 'User-Agent': 'firecrawl-cli',
332
+ Accept: 'application/vnd.github+json',
333
+ },
334
+ }, (res) => {
335
+ if (res.statusCode === 302 && res.headers.location) {
336
+ request(res.headers.location);
337
+ return;
338
+ }
339
+ if (res.statusCode !== 200) {
340
+ reject(new Error(`GitHub API returned ${res.statusCode}`));
341
+ return;
342
+ }
343
+ const tmpTar = path.join(targetDir, `.firecrawl-template-${Date.now()}.tar.gz`);
344
+ const fileStream = fs.createWriteStream(tmpTar);
345
+ res.pipe(fileStream);
346
+ fileStream.on('finish', () => {
347
+ fileStream.close();
348
+ try {
349
+ const extractDir = path.join(targetDir, `.firecrawl-template-extract-${Date.now()}`);
350
+ fs.mkdirSync(extractDir, { recursive: true });
351
+ exec(`tar -xzf "${tmpTar}" -C "${extractDir}" --strip-components=1`, { stdio: 'pipe' });
352
+ const srcDir = subdir
353
+ ? path.join(extractDir, subdir)
354
+ : extractDir;
355
+ if (!fs.existsSync(srcDir)) {
356
+ throw new Error(`Template directory "${subdir}" not found in tarball`);
357
+ }
358
+ copyTemplateFiles(srcDir, targetDir, fs, path);
359
+ fs.rmSync(tmpTar, { force: true });
360
+ fs.rmSync(extractDir, { recursive: true, force: true });
361
+ resolve();
362
+ }
363
+ catch (err) {
364
+ reject(err);
365
+ }
366
+ });
367
+ });
368
+ };
369
+ request(tarballUrl);
370
+ });
371
+ }
372
+ async function stepTemplate() {
373
+ const { select, confirm: confirmPrompt } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
374
+ const wantTemplate = await confirmPrompt({
375
+ message: 'Start from a template?',
376
+ default: false,
377
+ });
378
+ if (!wantTemplate)
379
+ return;
380
+ const template = await select({
381
+ message: 'Choose a template',
382
+ choices: exports.TEMPLATES.map((t) => ({
383
+ name: `${t.name} ${dim}${t.description}${reset}`,
384
+ value: t,
385
+ })),
386
+ });
387
+ const isExternal = template.path.startsWith('_external:');
388
+ const repo = isExternal
389
+ ? template.path.replace('_external:', '')
390
+ : TEMPLATES_REPO;
391
+ const subdir = isExternal ? null : template.path;
392
+ console.log(`\n Downloading ${bold}${template.name}${reset}...`);
393
+ console.log(` ${dim}github.com/${repo}${subdir ? '/' + subdir : ''}${reset}\n`);
394
+ try {
395
+ await downloadFromRepo(repo, subdir);
396
+ console.log(`\n ${green}✓${reset} Template ready\n`);
397
+ }
398
+ catch (error) {
399
+ console.error(`\n ${bold}Could not download template.${reset}`);
400
+ console.error(` ${dim}${error instanceof Error ? error.message : 'Unknown error'}${reset}\n`);
401
+ console.log(` Clone it manually:\n`);
402
+ console.log(` git clone https://github.com/${repo}.git${subdir ? ' && cp -r ' + repo.split('/')[1] + '/' + subdir + '/* .' : ''}\n`);
403
+ }
404
+ }
405
+ function findTemplate(name) {
406
+ const lower = name.toLowerCase();
407
+ return exports.TEMPLATES.find((t) => {
408
+ const path = t.path.replace('_external:', '').split('/').pop() ?? '';
409
+ return path === lower || t.name.toLowerCase() === lower;
410
+ });
411
+ }
412
+ async function scaffoldTemplate(templatePath) {
413
+ const template = findTemplate(templatePath);
414
+ if (!template) {
415
+ console.error(`\n Unknown template: ${bold}${templatePath}${reset}\n`);
416
+ console.log(` Available templates:\n`);
417
+ for (const t of exports.TEMPLATES) {
418
+ const key = t.path.replace('_external:', '').split('/').pop() ?? '';
419
+ console.log(` ${bold}${key}${reset} ${dim}${t.description}${reset}`);
420
+ }
421
+ console.log('');
422
+ process.exit(1);
423
+ }
424
+ const isExternal = template.path.startsWith('_external:');
425
+ const repo = isExternal
426
+ ? template.path.replace('_external:', '')
427
+ : TEMPLATES_REPO;
428
+ const subdir = isExternal ? null : template.path;
429
+ console.log('');
430
+ console.log(` ${orange}🔥 ${bold}firecrawl${reset} ${dim}${template.name}${reset}`);
431
+ console.log(` ${dim}github.com/${repo}${subdir ? '/' + subdir : ''}${reset}\n`);
432
+ try {
433
+ await downloadFromRepo(repo, subdir);
434
+ console.log(`\n ${green}✓${reset} Template ready\n`);
435
+ }
436
+ catch (error) {
437
+ console.error(`\n ${bold}Could not download template.${reset}`);
438
+ console.error(` ${dim}${error instanceof Error ? error.message : 'Unknown error'}${reset}\n`);
439
+ console.log(` Clone it manually:\n`);
440
+ console.log(` git clone https://github.com/${repo}.git${subdir ? ' && cp -r ' + repo.split('/')[1] + '/' + subdir + '/* .' : ''}\n`);
441
+ process.exit(1);
442
+ }
443
+ }
13
444
  async function handleInitCommand(options = {}) {
14
- const orange = '\x1b[38;5;208m';
15
- const reset = '\x1b[0m';
16
- const dim = '\x1b[2m';
17
- const bold = '\x1b[1m';
18
- const green = '\x1b[32m';
445
+ // Direct template scaffold: firecrawl init browser-nextjs
446
+ if (options.template) {
447
+ await scaffoldTemplate(options.template);
448
+ return;
449
+ }
450
+ console.log('');
451
+ console.log(` ${orange}🔥 ${bold}firecrawl${reset} ${dim}init${reset}`);
452
+ console.log('');
453
+ // Non-interactive mode (--yes skips all prompts)
454
+ if (options.yes) {
455
+ await runNonInteractive(options);
456
+ return;
457
+ }
458
+ // Step 1: Install
459
+ if (!options.skipInstall) {
460
+ const ok = await stepInstall();
461
+ if (!ok) {
462
+ console.log(` ${dim}Continuing with setup...${reset}\n`);
463
+ }
464
+ }
465
+ // Step 2: Auth
466
+ if (!options.skipAuth) {
467
+ await stepAuth(options);
468
+ }
469
+ // Step 3: Integrations (skills, MCP, env)
470
+ if (!options.skipSkills) {
471
+ await stepIntegrations(options);
472
+ }
473
+ // Step 4: Template
474
+ await stepTemplate();
475
+ console.log(`${green}${bold} Setup complete!${reset} Run ${dim}firecrawl --help${reset} to get started.\n`);
476
+ }
477
+ async function runNonInteractive(options) {
19
478
  const steps = [];
20
479
  if (!options.skipInstall)
21
480
  steps.push('install');
@@ -29,10 +488,6 @@ async function handleInitCommand(options = {}) {
29
488
  current++;
30
489
  return `${bold}[${current}/${total}]${reset}`;
31
490
  };
32
- console.log('');
33
- console.log(` ${orange}🔥 ${bold}firecrawl${reset} ${dim}init${reset}`);
34
- console.log('');
35
- // Step: Install CLI globally
36
491
  if (!options.skipInstall) {
37
492
  console.log(`${stepLabel()} Installing firecrawl-cli globally...`);
38
493
  try {
@@ -44,7 +499,6 @@ async function handleInitCommand(options = {}) {
44
499
  process.exit(1);
45
500
  }
46
501
  }
47
- // Step: Authenticate
48
502
  if (!options.skipAuth) {
49
503
  if ((0, auth_1.isAuthenticated)()) {
50
504
  console.log(`${stepLabel()} Authenticating...`);
@@ -72,20 +526,10 @@ async function handleInitCommand(options = {}) {
72
526
  else {
73
527
  result = await (0, auth_1.interactiveLogin)();
74
528
  }
75
- (0, credentials_1.saveCredentials)({
76
- apiKey: result.apiKey,
77
- apiUrl: result.apiUrl,
78
- });
79
- (0, config_1.updateConfig)({
80
- apiKey: result.apiKey,
81
- apiUrl: result.apiUrl,
82
- });
83
- if (result.teamName) {
84
- console.log(`${green}✓${reset} Authenticated (Team: ${result.teamName})\n`);
85
- }
86
- else {
87
- console.log(`${green}✓${reset} Authenticated\n`);
88
- }
529
+ (0, credentials_1.saveCredentials)({ apiKey: result.apiKey, apiUrl: result.apiUrl });
530
+ (0, config_1.updateConfig)({ apiKey: result.apiKey, apiUrl: result.apiUrl });
531
+ const teamSuffix = result.teamName ? ` (Team: ${result.teamName})` : '';
532
+ console.log(`${green}✓${reset} Authenticated${teamSuffix}\n`);
89
533
  }
90
534
  catch (error) {
91
535
  console.error('\nAuthentication failed:', error instanceof Error ? error.message : 'Unknown error');
@@ -93,25 +537,19 @@ async function handleInitCommand(options = {}) {
93
537
  }
94
538
  }
95
539
  }
96
- // Step: Install skills
97
540
  if (!options.skipSkills) {
98
541
  console.log(`${stepLabel()} Installing firecrawl skill for AI coding agents...`);
99
542
  const args = ['npx', '-y', 'skills', 'add', 'firecrawl/cli'];
100
- if (options.all) {
543
+ if (options.all)
101
544
  args.push('--all');
102
- }
103
- if (options.yes || options.all) {
545
+ if (options.yes || options.all)
104
546
  args.push('--yes');
105
- }
106
- if (options.global) {
547
+ if (options.global)
107
548
  args.push('--global');
108
- }
109
- if (options.agent) {
549
+ if (options.agent)
110
550
  args.push('--agent', options.agent);
111
- }
112
- const cmd = args.join(' ');
113
551
  try {
114
- (0, child_process_1.execSync)(cmd, { stdio: 'inherit' });
552
+ (0, child_process_1.execSync)(args.join(' '), { stdio: 'inherit' });
115
553
  console.log(`${green}✓${reset} Skills installed\n`);
116
554
  }
117
555
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
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"}
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,CAoGf"}
@@ -26,6 +26,24 @@ async function handleLoginCommand(options = {}) {
26
26
  console.log(' firecrawl login');
27
27
  return;
28
28
  }
29
+ // If only a custom --api-url is provided (no --api-key), persist the new URL
30
+ // alongside the existing API key rather than starting an interactive login flow.
31
+ if (isCustomUrl && !options.apiKey && !options.method) {
32
+ const existingApiKey = (0, config_1.getApiKey)();
33
+ try {
34
+ (0, credentials_1.saveCredentials)({
35
+ apiKey: existingApiKey,
36
+ apiUrl: apiUrl,
37
+ });
38
+ (0, config_1.updateConfig)({ apiKey: existingApiKey, apiUrl });
39
+ console.log('✓ API URL updated successfully!');
40
+ }
41
+ catch (error) {
42
+ console.error('Error saving credentials:', error instanceof Error ? error.message : 'Unknown error');
43
+ process.exit(1);
44
+ }
45
+ return;
46
+ }
29
47
  // If API key provided directly, save it
30
48
  if (options.apiKey) {
31
49
  // Only validate fc- prefix for cloud API
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}