Add setup subcommands for skill groups and single skills

Merged
ER
2mo ago
+3045-15

Gives each skill family — and any individual skill — a short, promotable install command, with a works-out-of-the-box auth story:

npx -y firecrawl-cli@latest setup core             # scrape/search/crawl/interact primitives + index skills
npx -y firecrawl-cli@latest setup build            # app-integration skills
npx -y firecrawl-cli@latest setup workflows        # unchanged
npx -y firecrawl-cli@latest setup developer-index  # any single catalog skill; firecrawl- prefix optional
npx -y firecrawl-cli@latest setup build --browser  # also log in if no API key is found

Subcommands

  • setup skills stays as an alias for core (backwards compatible; its help text previously claimed it installed core/build, but it only ever installed the core set)
  • Fills a real gap: since the init revamp dropped build skills, nothing in the CLI could install the firecrawl-build* family — new BUILD_SKILLS/BUILD_SKILL_SELECTION mirror the five build skills in the catalog
  • Single-skill args resolve against all three families by exact name or with the firecrawl- prefix added; group names win ties (setup build = group, setup firecrawl-build = skill); unknown names print the full subcommand help
  • All installs come from firecrawl/skills by name (layout-independent, so the cli→core catalog rename doesn't affect this), keeping skills.sh install counters consolidated on the catalog

Auth offer (never blocks automation)
After any skill install, check for an API key (env var or stored credentials — covers users already set up via init or MCP):

  • Authenticated → silent, nothing changes
  • --browser → run the browser login directly and persist credentials
  • Interactive TTY without -y → offer the browser login (default yes)
  • Non-interactive / -y → one-line hint only; skills walk agents through setup on first use, so agents, scripts, and CI never hang on a login
  • The bare setup bundle defers the offer until all steps ran, so it never asks twice

Verification: setup.test.ts 55/55 + init tests passing, tsc clean; smoke-tested against a fresh empty $HOME — skill installs land, unauthenticated non-interactive runs print the hint and exit 0.

Note: BUILD_SKILLS is a hardcoded name list like CLI_SKILLS/WORKFLOW_SKILLS — a new build skill in the monorepo needs a one-line addition here, same as the existing lists.

🤖 Generated with Claude Code