Add examples showing how to use --scrape-urls to monitor multiple pages (e.g. pricing, docs, changelog) in README.md and skills/firecrawl-cli/SKILL.md. Also update the CLI help text in src/commands/monitor.ts to clarify the --scrape-urls description to "Comma-separated page URLs to scrape on each check."
Export and update monitor creation helpers to accept a --goal and single --page shorthand (constructs urls from page when provided) and include goal in the request body. Add CLI options and help text for --goal and --page, support goal on monitor update, and adjust example usage. Add unit tests for buildCreateBody covering goal and page behavior. Update README and SKILL docs to document monitor usage and guidance. Bump package version to 1.18.1.
Export and update monitor creation helpers to accept a --goal and single --page shorthand (constructs urls from page when provided) and include goal in the request body. Add CLI options and help text for --goal and --page, support goal on monitor update, and adjust example usage. Add unit tests for buildCreateBody covering goal and page behavior. Update README and SKILL docs to document monitor usage and guidance. Bump package version to 1.18.1.
Allow monitor create/update commands to consume a JSON payload from a positional file argument or piped stdin (use '-' to force stdin). Introduce async readJsonPayload helper, refactor buildCreateBody to no longer take a raw body string, and try JSON input first before falling back to flag-built payloads. Update CLI signatures, help text, and examples accordingly, and add the monitor entry to the SKILL.md command list.
Add support for webhook configuration and canceling jobs across agent, crawl, and scrape commands. Introduce JSON parsing helpers and CLI options for schema, actions, scrape-options, proxy, and webhook (inline or file), and validate payload shapes. Extend types to include webhook/cancel fields and normalize agent statuses to include "cancelled", updating polling and status handling accordingly. Propagate webhook/scrapeOptions through command handlers and improve CLI behavior for global --status handling and format resolution.
Update vendored scaffold references and default remote to use firecrawl/web-agent. Adjusted header comments in create.ts, create-flow.ts, credentials.ts, manifest.ts, scaffold.ts, and ui.ts, and changed DEFAULT_REMOTE in manifest.ts from 'firecrawl/firecrawl-agent' to 'firecrawl/web-agent' so the scaffolder clones the web-agent repo for templates.
Replaces the `npx firecrawl-agent-cli` delegator with an in-process
scaffolder vendored from firecrawl/firecrawl-agent. No separate npm
package for the agent CLI — the root firecrawl-cli clones the public
agent repo at runtime to fetch templates + agent-core.
- Vendor under src/utils/agent-scaffold/ (manifest, scaffold,
credentials, ui, create-flow). Upstream-tracked; keep in sync.
- manifest.ts: strip the "bundled next to CLI" branch (doesn't apply
here), always clone the public repo. Nested-manifest fallback
handles the current `.internal/cli/agent-manifest.json` location.
- Extract handleCreate from upstream init.ts; drop the commander
wrapper since the root CLI owns the command surface.
- create.ts now lazy-imports the scaffolder so non-create paths stay
snappy.
Smoke-tested end-to-end against a local agent repo via --from: next
template scaffolds correctly with agent-core, .env.local, and
expected file layout.
Wires a hidden `firecrawl create <kind>` command tree into the root CLI.
Only the `agent` kind is registered today; it delegates to
`npx -y firecrawl-agent-cli create` with full flag passthrough so the
agent repo remains the single source of truth for templates.
The command is hidden from --help until `firecrawl-agent-cli` is on
npm. Flip to visible by removing `{ hidden: true }` in index.ts.
Surface:
firecrawl create agent [name] [-t next|express|library]
firecrawl create agent [name] --provider <p> --model <m>
firecrawl create agent [name] --api-key <fc-key> --key anthropic=sk-...
firecrawl create agent [name] --from user/repo
During install, show "Installing core firecrawl skills..." and
"Installing skills to build with firecrawl..." instead of the raw repo
names firecrawl/cli and firecrawl/skills. SKILL_REPO_LABELS map drives
the friendly text.
In the next-steps summary, split into two distinct groupings:
1. "Connect & interact with the web (direct or in your AI agent)"
with scrape/search/interact examples showing the natural language
prompt next to the equivalent CLI command.
2. "Building with firecrawl?" at the bottom, pointing at the build
skills with a concrete business example.
MCP + --help entries sit between the two sections as general utilities.
Bumped to 1.14.7.
Parse '(Found|Installed) N skills' from captured npx skills output and
sum across both repos so the post-install summary shows
"✓ Installed 14 skills across your AI coding agents" instead of vague
text.
Collapse the next-steps block from 18 lines to 7: drop the 4 example
prompts in favor of one of each (AI prompt + direct CLI), plus the
MCP install hint and the --help pointer. Each entry uses padded labels
("Ask your AI:", "Run direct: ", "Add MCP: ", "All commands:") so
the commands align in a column.
stepIntegrations and runNonInteractive both thread the count through
to printNextSteps. Tests still mock execSync as undefined, so
parseSkillCount handles the empty case. Bumped to 1.14.3.
Replace the noisy 'npx skills add' inherited stdout (banner, +/symlink
table, security report, ~80 lines per repo) with a single line per repo:
" ✓ firecrawl/cli" / " ✓ firecrawl/skills". TTY runs get a transient
"↓ <repo>" indicator while the install is in flight; non-TTY runs (CI,
piped) get only the final line.
Replace the trailing "Setup complete!" line with a printNextSteps()
block that surfaces:
- what just happened (skills installed globally)
- what firecrawl is for (search, scrape, crawl, interact)
- 4 example prompts (2 build-skill triggers, 2 direct CLI calls)
- pointer to firecrawl --help
Both interactive and non-interactive init paths use the same helpers,
so output is consistent regardless of how users enter the flow.
Bumped to 1.14.2.
when this cli is launched via 'npx -y firecrawl-cli@VERSION', npm injects
npm_command/npm_lifecycle_event/npm_execpath/INIT_CWD into the process
env. those vars leak into nested execSync('npx -y skills add ...') calls
and cause the loop's second iteration to silently exit after the first
install completes — published 1.14.0 only installs from firecrawl/cli
even though SKILL_REPOS contains both repos.
cleanNpmEnv() in skills-install.ts strips those vars; init.ts and
setup.ts pass it as the env to every nested execSync. added a
regression test that primes process.env with the leaking vars and
asserts every install call sees a clean env. bumped to 1.14.1.
onboarding (init) and setup skills now loop over a SKILL_REPOS list
so both the core cli skills and the build skills repo get installed
through the same npx/native paths. buildSkillsInstallArgs and
installSkillsNative take a repo parameter (defaulting to firecrawl/cli
for back compat). tests updated to assert both install invocations.
- rename skills/firecrawl-instruct → firecrawl-interact + update all cross-references
- hide deprecated browser command from --help (still works when called directly)
- group download, claude, codex, opencode under `firecrawl experimental` (alias: `firecrawl x`)
- remove browser references from passthrough system prompt quick reference