84 Commits

Author SHA1 Message Date
Eric Ciarla c110d2e610 Offer auth after skill installs without blocking automation
After any setup skill install, check for an API key (env var or stored
credentials). Authenticated users see nothing. Otherwise: --browser runs
the browser login directly, an interactive terminal offers it (default
yes), and non-interactive runs print a one-line hint — never a prompt,
so agents, scripts, and CI are unaffected. The bundle flow defers the
offer until every step has run so it never asks twice.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 10:31:35 -04:00
Eric Ciarla d2f78c3f56 Accept a single catalog skill name as a setup subcommand
firecrawl setup developer-index   # firecrawl- prefix optional
firecrawl setup firecrawl-scrape

Group subcommands keep precedence, so `setup build` means the group and
`setup firecrawl-build` reaches the skill.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 10:31:35 -04:00
Eric Ciarla f6d5dcee88 Add setup core/build group subcommands
One short command per skill family:

  firecrawl setup core       # primitives + index skills ("skills" stays as alias)
  firecrawl setup build      # app-integration skills (previously not installable via setup)
  firecrawl setup workflows  # unchanged

The build family had no install path since init dropped it; BUILD_SKILLS
mirrors the five build skills in the catalog. All groups install from the
catalog by name, so skills.sh counters stay consolidated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 10:31:35 -04:00
Chenxin Yan a5725bbb77 docs: update routing rule for the pure-catalog architecture 2026-08-21 08:31:40 -04:00
Chenxin Yan 7967dba844 feat(init): install CLI skills by default, workflow multi-select, drop build skills
Route all init skill installs through the firecrawl/skills catalog with
name-based --skill selection so install volume accrues to catalog
counters. Interactive init now offers a multi-select of the 16 workflow
skills; build skills are no longer installed (they target SDK
integration, not CLI users, and remain one command away). Promote
npx skills add firecrawl/skills and the contributor routing rule in the
README.
2026-08-21 08:31:40 -04:00
Karan Lokchandani bb130e336a developer: lean agent surface (query + limit only)
Squashed clean over main: removes all filter flags (types, repos,
sources, language, topic, license, min/max stars, archived, fork,
skills, passages); keeps server-shaped passages, citations, license
rendering, kind-from-id-prefix, and index-status echoes. Resolves
review: results typed optional, id access guarded, empty status
sections render no heading. No REST-API pointers in help text.
2026-08-21 05:09:31 +05:30
Karan Lokchandani ad3e539951 developer: keep passage budget server-side 2026-08-20 15:46:09 +05:30
Karan Lokchandani e9b7be1784 developer: delegate passage sizing to search server 2026-08-20 15:46:09 +05:30
Chenxin Yan cbbc62ea0d docs(skills): address review findings
Make download examples safe for non-interactive flows and correct agent JSON guidance in the README. Include skill Markdown in Prettier scripts so formatting drift is caught.
2026-08-18 12:37:02 -04:00
Himadri Mishra 23a0df42fe fix: describe the research paper index accurately across CLI surfaces (#186)
* fix(research): describe the real paper corpus in CLI help

Why: over 40 agent traces, 8/8 biomedical CLI runs read the root-help
research line ("Research arXiv papers and GitHub history"), concluded the
index was arXiv-only, and hand-scraped PubMed instead of ever running
`firecrawl research`. The index is ~43M abstracts, ~90% biomedical. The
group description is the single highest-leverage string: it renders both
in `firecrawl --help` and as the `firecrawl research --help` header.

Summary:
- research group description now names the corpus (PubMed/bioRxiv/medRxiv
  plus arXiv), its scale, and routes agents away from hand-scraping.
- search-papers description drops the three "arXiv" claims and names the
  multi-source id forms it actually returns; keeps the load-bearing
  "run several distinct framings" guidance verbatim.
- search-papers --categories only claims what is true: arXiv-style
  taxonomy labels, not applicable to biomedical records.
- search --categories disambiguates `research` (a ~web-domain filter)
  from the paper index, pointing at `research search-papers`. The wire
  value 'research' is unchanged.
- related-papers accepts pmid:/pmcid:/doi:/arxiv: forms in its docs, in
  line with inspect-paper and read-paper.
- research examples now include biomedical ids, not arXiv only.
- cli-argv tests gain the research pair that mirrored `developer`, plus a
  regression guard that root help names the biomedical corpus.

* docs(readme): route paper search to `research`, add its command section

Why: the README taught the wrong tool. "# Find research papers" was
followed by `firecrawl search --categories research`, which is only a
website filter over ordinary web results, not the paper index. README
also had a `###` section for every command except `research`, so the
index had no documentation surface at all, and the tagline omitted both
`research` and `developer`.

Summary:
- the "Find research papers" example now leads with `research
  search-papers`; the `--categories research` example stays but is
  labelled as the website filter it is.
- same disambiguation added to the category example block and the search
  options table.
- new `### research` section beside `developer`: corpus and scale, the
  explicit "not the same as --categories research" note, all five
  subcommands, search-papers options, and workflow tips.
- line-3 tagline now mentions research papers and developer sources.

* chore: add research vocabulary to package metadata, bump to 1.20.0

Why: npm search and package listings carried no research, paper, or
biomedical vocabulary, so the paper index was undiscoverable from outside
the CLI too. Behavioural metadata change across help text, docs, and
skills -> minor bump.

Summary:
- package.json description names the paper index and its sources.
- keywords gain research, paper/literature search, biomedical, pubmed,
  biorxiv, medrxiv, arxiv, life sciences.
- 1.19.31 -> 1.20.0.
- nfpm.yaml and homebrew/firecrawl-cli.rb carry the same one-line
  description; both updated. The brew `desc` is kept under the 80-char
  audit limit.

Note: homebrew/firecrawl-cli.rb `version` is 1.10.0 and is not written by
any release tooling in this repo; left as found rather than guessed at.

* docs(skills): give paper search a routing surface in the CLI skills

Why: agents load skills before they load `--help`. firecrawl-search had a
full "Developer search" section and nothing for research; its options
table listed `research` with no elaboration, so the naming collision with
the paper index was invisible. firecrawl-cli's routing table and "When to
Load References" omitted research entirely, so nothing ever pointed an
agent at `firecrawl research`.

Summary:
- firecrawl-search: new "## Paper search" section parallel to "##
  Developer search" — states plainly that `--categories research` is not
  the paper index, routes to `research search-papers`, and shows the
  find/expand/verify loop with real id forms.
- firecrawl-search: `--categories` options row and "When to use" now
  disambiguate the two; frontmatter description gains literature triggers
  so the skill actually loads on a biomedical task.
- firecrawl-cli: research rows added to the routing table and to "When to
  Load References", both stating the anti-pattern (hand-scraping PubMed).

* docs: stop pinning stale CLI versions in install commands

Why: cubic flagged the README install example pinning firecrawl-cli@1.19.6
while this PR ships 1.20.0. The pin was already 25 patches behind npm's
published 1.19.31, and the same stale pin appeared in five more places in
the bundled skills rules.

Summary: install and run commands now use @latest, matching the convention
the public docs already use in all 30 of their occurrences. That removes the
drift permanently rather than trading one stale pin for another — and avoids
pinning 1.20.0, which is not published yet and would break the documented
one-shot install until release. The illustrative `--status` sample output now
shows the version this PR ships.

Test Plan: pnpm test 422/422, prettier clean, no hard-pinned versions remain
in any markdown file.
2026-08-12 21:11:09 +05:30
Karan Lokchandani c0560791de chore(developer): call /v2/search/developer and correct the result default
The developer command called /v2/developer/search. That mount rejects a
keyless caller, so keyless developer search never reached the index. It
is also the path that may be withdrawn. Call /v2/search/developer, the
public path, which accepts a keyless caller.

The API returns 10 results by default, not 20. Correct the help text and
the README.
2026-08-05 02:13:16 +05:30
Karan Lokchandani 80708e4e62 feat(cli): add --skills-only to the developer command
The gateway accepts a `skills` query param on GET /v2/developer/search
(firecrawl/firecrawl#4194): `skills=only` limits the search to
agent-skill files. `--skills-only` maps to that value. The param is
absent from the request when the flag is omitted.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C4vZ6XH65bUJDkLthyfmvC
2026-08-04 02:29:48 +05:30
Karan Lokchandani c5eaa68de3 feat(cli): add the developer command
The developer index now has two surfaces, the same as research: the
`developer` category on `firecrawl search`, and a dedicated command.

The command mirrors the research commands. It calls GET
/v2/developer/search, keeps the keyless free-tier path, and renders the
ranked hits as markdown blocks with the passages clipped at 1200
characters; `--json` keeps the full envelope. It takes a query and
`--limit` only; the endpoint accepts no filters, and that narrow
surface is deliberate.

New tests cover the request URL, the readable and JSON output, and the
error path. Two argv tests prove the command appears in the root help
and parses, so a wrapper cannot drop it the way `executeSearch` once
dropped the category group.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C4vZ6XH65bUJDkLthyfmvC
2026-07-31 21:23:15 +05:30
Karan Lokchandani 850f41c260 feat(cli): add the developer category to search
`firecrawl search <query> --categories developer` searches an index built
for coding agents: GitHub issues, merged pull requests, repository
READMEs, and curated documentation sites.

The API already served the category. The CLI rejected the value, and
`executeSearch` copied only `web`, `images`, and `news` out of the
payload. A developer group therefore never reached the caller.

The category is an extra arm, not a filter on the web results, so the API
returns its hits in `data.developer`. The command copies that group
through, prints it under its own heading, and labels the web group when
both are present.

A matched passage runs to several KB. The readable output clips it at 500
characters and names `--json`, which keeps the full text. Without the
clip, three hits flood a terminal.
2026-07-31 19:12:43 +05:30
mogery c1994d143f feat(cli): add search highlights option 2026-07-20 13:03:41 +02:00
Himadri Mishra 5cf5c926d3 revert: remove managed MCP router cards (#153) 2026-07-12 02:28:13 +05:30
Himadri Mishra f7ce029608 feat: deliver managed MCP router cards (#152) 2026-07-12 02:17:50 +05:30
Developers Digest b6ea510299 Scope setup/install to a single harness
Add support for scoping init/setup to a single agent/harness. README documents one-shot usage. scripts/install.sh forwards installer args to `firecrawl init` (non-interactive) and runs `init --yes` when piped. init.ts: add interactive harness picker, detectInstalledAgentNames, and installRepoAcrossAgents to allow routing skills/workflows to a subset of detected agents or a single --agent. skills-native.ts: canonicalize per-agent global skills dirs (fixes several agent paths), add detectInstalledAgentNames helper. This enables one-shot, non-interactive, and interactive per-harness installs.
2026-07-06 19:10:19 -04:00
Developers Digest 792e637330 Merge remote-tracking branch 'origin/main' into check-for-updates 2026-06-19 11:59:52 -04:00
Developers Digest 911070a543 add make default web setup 2026-06-19 11:55:08 -04:00
Abimael Martell cb009428ab feat(cli): add generic feedback command (#135)
* feat(cli): add generic feedback command

* chore: bump version to 1.19.7

* chore: bump version to 1.19.8

* feat(cli): add endpoint feedback opt-out

* chore: bump version to 1.19.9

* chore: bump version to 1.19.10
2026-06-15 14:33:07 -07:00
Developers Digest 961047a950 hide default web hint on final screen when already handled interactively 2026-06-09 13:02:59 -04:00
Developers Digest 8dc2521d49 move default web provider to a dedicated init step before final screen 2026-06-09 13:02:00 -04:00
Developers Digest 2f9f157571 bump version to 1.19.4 2026-06-09 12:59:50 -04:00
Developers Digest cd68791898 Merge remote-tracking branch 'origin/main' into disable-config
# Conflicts:
#	package.json
2026-06-09 12:53:17 -04:00
Developers Digest df37ecc62d wire up setup defaults and add interactive per-harness control 2026-06-09 12:41:48 -04:00
Developers Digest b6983a0642 update pinned version to 1.19.1 in docs 2026-06-09 12:39:08 -04:00
Developers Digest eb12c048d5 add firecrawl web defaults setup 2026-06-04 11:00:21 -04:00
Abimael Martell b4b333c377 feat(scrape): add redact-pii flag (#124)
* Add redact-pii scrape flag

* Bump CLI version
2026-06-01 11:27:43 -07:00
Developers Digest 179678b74b Add webhook monitor example to docs
Add a "Docs webhook" example showing how to create a monitor that posts webhook notifications (using --webhook-url and --webhook-events) with schedule, goal, and page options. Updated README.md and skills/firecrawl-cli/SKILL.md to include the webhook notification example.
2026-05-25 14:11:30 -04:00
Developers Digest 8cc098c3fe Add multi-page examples and clarify flag
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."
2026-05-25 14:01:16 -04:00
Developers Digest 45690534ed Add monitor goal/page flags, tests, and docs
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.
2026-05-25 13:43:23 -04:00
Eric Ciarla 32309be1c8 Add workflows to cli! 2026-05-15 09:44:34 -04:00
Developers Digest 34d8a072fc Update README.md 2026-05-05 12:43:13 -04:00
Developers Digest 0aec57ad08 bump version to 1.16.2 2026-05-05 10:11:53 -04:00
Developers Digest 3cd5eadf9a update cli version references 2026-05-05 10:09:35 -04:00
Abimael Martell d0145f4e62 feat: add --lockdown flag to scrape (#104)
* feat: add --lockdown-mode flag to scrape

* rename --lockdown-mode to --lockdown
2026-04-22 15:19:02 -07:00
Eric Ciarla 959e570d9c Minor copy updates 2026-04-14 20:28:25 -04:00
Eric Ciarla cd2c3e1e01 Updates 2026-04-11 13:51:47 -04:00
Developers Digest 1b48a69d99 swap interact example to action-oriented search + filter flow 2026-04-10 11:58:53 -04:00
Developers Digest 9d6cc65c4c split next-steps into web vs build sections + friendly install labels
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.
2026-04-10 11:52:13 -04:00
Developers Digest 6da95bba24 use firecrawl-specific business example in next-steps tip 2026-04-10 11:04:36 -04:00
Developers Digest f91f069382 rephrase build-skills tip with concrete example, drop em dash 2026-04-10 11:01:50 -04:00
Developers Digest 6ef1aa565c add 'start building' tip to next-steps summary 2026-04-10 11:00:19 -04:00
Developers Digest a7aa071f7a tighten next-steps summary and surface skill count
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.
2026-04-10 10:25:14 -04:00
Developers Digest fa735ff336 quiet skill install output and add next-steps summary
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.
2026-04-10 10:17:42 -04:00
Developers Digest f5d8c635c9 strip inherited npm_* env vars before nested npx calls
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.
2026-04-10 09:58:30 -04:00
Developers Digest df7fadc89c bump version to 1.14.0 2026-04-10 09:37:40 -04:00
Developers Digest d1eae86cd9 update readme: add interact docs, move download + workflows under experimental, remove browser section 2026-04-08 22:30:30 -04:00
Developers Digest fe51a55617 pin install references to 1.13.0 instead of @latest 2026-04-08 22:28:29 -04:00