Carry requiresAction through exchange retrieve and scrape failures, print a
terms block in human mode and a failure envelope in --json mode, add
`firecrawl alexandria terms <provider>` and `terms accept <provider>`
(interactive only, posts to the dashboard accept route), register the group as
`alexandria` with `exchange` as a hidden alias, and document the flow.
Exchange capability addresses are provider-relative (e.g. series/observations
for fred), not finance/series/observations. Fix README, help text, option
descriptions, comments and test fixtures; no behaviour change.
Claude-Session: https://claude.ai/code/session_01KpbshKPNuCDBD4TLJ8T2UQ
Search accepts `--sources exchange` and passes `data.exchange[]` capability
hits through untouched (readable "=== Exchange Providers ===" section, JSON
keeps id/creditsUsed). New `firecrawl exchange discover [cohort] [provider]
[capability] [--query q] [--limit n] [--expand all]` walks or semantically
searches the catalogue via GET /exchange/discover, and `firecrawl exchange
retrieve <provider/capability>... --options '<json>'` executes capabilities
through the url-less POST /v2/scrape {exchange:[...], integration:'cli'}
shape, printing each item with its creditsCost and mirroring the API
envelope with --json. `firecrawl scrape --exchange provider/capability
--options '<json>'` delegates to the same executor. Exchange requests are
refused locally in keyless mode with an explanatory error (exit 1) and API
error bodies (403/402/409) are relayed instead of the axios status text.
Claude-Session: https://claude.ai/code/session_01KpbshKPNuCDBD4TLJ8T2UQ
skills add --all means "ALL skills to all agents" and silently overrides
any --skill filter, so every scoped install (setup core/build/workflows,
setup <skill>, and init's selections) was installing all 33 catalog
skills. Scoped installs now pass --yes instead of --all: same promptless
install to every detected agent, but the --skill list is respected.
Verified: setup developer-index installs 1 skill, setup build installs 5.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
package-lock.json was accidentally committed in #206 (an npm install
artifact — this repo is pnpm-managed). bun prefers it over pnpm-lock.yaml
in release-binaries, and its migration fails under --frozen-lockfile.
Remove it and gitignore it.
setup.ts was formatted by prettier 3.9.6 from that same npm node_modules;
CI pins 3.7.4 via pnpm-lock.yaml. Reformatted with 3.7.4.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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>
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>
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>
The catalog directory is being renamed from skills/cli/ to skills/core/ —
the family covers the Firecrawl primitives via CLI or MCP, not just the
CLI. Install selection is name-based, so slugs are unaffected.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review fixes for #203:
- setup's no-npx fallback called installSkillsNative(repo) without the
name filter, installing the entire catalog (build skills included)
instead of the selection every other install path uses
- drop the nonexistent --skills-only CLI flag from the developer-index
skill (skills="only" stays HTTP/MCP-only per cli-argv contract)
- note that the workflow retry hint reinstalls all workflow skills, not
the picked subset
- fix 'sturctural' typo in the research-index skill
They teach the firecrawl research and firecrawl developer CLI commands,
so this repo is their code home. Authored here, mirrored to the catalog
under skills/cli/, and included in the default init/setup CLI set.
The init retry hints point at setup skills/workflows, but those still
installed from the legacy repo list (including build skills init no
longer installs). Share the catalog selections between init and setup
so a retry reinstalls exactly what init attempted. Harden the sync
workflow: least-privilege token, SHA-pinned checkout.
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.
* Add developer-index and research-index as session skills.
They belong with the CLI, not the build skills repo. Developer hits use the live id prefix for kind; search-papers hits are paperId, primaryId, ids, title, abstract, and score.
* Align index session skills with the live wire and shorter trigger descriptions.
* Match developer and research index skills to the prod scrape/map shape.
Quick start, --help instead of option tables, and a Done when line, while keeping the live id-prefix and paperId response shapes.
- Replace cached CLI option tables with 'firecrawl <cmd> --help' pointers,
keeping only options the recipes actually use (all verified against src/)
- Delete 'When to use' sections that restated frontmatter descriptions
- Split firecrawl-monitor: lean recipe in SKILL.md, goal/query authoring in
goals.md, JSON change tracking in json-tracking.md, each behind a one-line
'read when' pointer
- Rewrite never/don't phrasing as positive instructions; keep genuine
opt-out and data guardrails
- Add exactly one 'Done when' completion criterion per skill
skills/**/*.md drops from 1045 to 837 lines (SKILL.md files: 1045 -> 723).
- Router SKILL.md 329 -> 141 lines: pure routing; monitor details,
install/auth, and search-feedback specifics now live only in their
sub-skills, with routing pointers left behind.
- Moved two unique monitor facts into firecrawl-monitor (markdown-only
diff.json parse-diff AST note; goal bullet about user-named noise).
- Resolved keyless contradiction: keyless free tier is real for
search/scrape/interact (src/utils/client.ts isKeylessMode; scrape and
search absent from AUTH_REQUIRED_COMMANDS in src/index.ts). Single
correct statement kept in rules/install.md, including which commands
prompt interactive login.
The developer-search wire carries no type field; the kind is encoded in
the id prefix (doc:, issue:, pull_request:, readme:). The old item.type
read matched nothing and the kind label silently never rendered.
Developer search passages are now shaped server-side (search#843 policy):
the CLI trusts passage_budget_applied responses and keeps a legacy local
cut only for older servers. Removes the short-lived --passage-budget flag
before it ever shipped in a release.
interact sends --code literally to the API with no client-side
prefixing, and the server-side bash environment requires invoking
agent-browser explicitly (per maintainer review). The earlier fix
correctly removed the nonexistent --language flag but wrongly dropped
the prefix, over-generalizing from browser execute's auto-prefix
logic, which never runs for interact.