@better-seo/cli
v0.0.2
Published
Command-line interface for Better SEO workflows: create Open Graph PNGs with the og command and generate favicon plus PWA icon sets (and optional web app manifest) with the icons command, powered by @better-seo/assets. Exposes both better-seo and better-s
Readme
@better-seo/cli
Command-line interface for Better SEO asset and crawl-string workflows: OG and icons via @better-seo/assets, robots.txt / sitemap.xml via @better-seo/crawl. Binaries: better-seo and better-seo-cli (same entry).
Docs: Monorepo README · Commands reference
Terminal surface
- Interactive (default in TTY): run
better-seowith no subcommand when stdout and stdin are TTYs andCI/BETTER_SEO_CI/BETTER_SEO_NO_TUIare unset → @clack/prompts menu (OG, icons, crawl hints, doctor, init, migrate, exit). - Non-interactive: pass a subcommand (
og,icons,crawl, …), or put--no-interactive,-y, or--yesfirst, or setCI/BETTER_SEO_CI/BETTER_SEO_NO_TUI→ no prompts; barebetter-seoprints help and exits1.
@better-seo/core stays zero-dep — prompts and Clack live only in this package.
Install / run
npm install -D @better-seo/cli
npx better-seo --helpOr npx @better-seo/cli without a project install.
Commands
| Command | Description |
| ------------- | ---------------------------------------------------------------------------------------------------------------- |
| og | Generate 1200×630 OG PNG (built-in template or --template ./card.mjs) |
| icons | Generate favicon + icon set from a logo; optional manifest.json (use --no-manifest to skip) |
| crawl | crawl robots / crawl sitemap — write public/robots.txt-style files via @better-seo/crawl |
| doctor | Basic environment check (--json) |
| init | Print install + starter snippet (--framework next\|react) |
| migrate | e.g. migrate from-next-seo — migration hints |
Next.js recipes: docs/recipes/sitemap-robots-next.md (shared baseUrl, MetadataRoute, CLI).
See src/run-cli.ts, src/launch-interactive.ts, and recipes: OG, icons.
Scripts (monorepo)
From packages/better-seo-cli:
npm run build # emits dist/cli.cjs (bin), dist/run-cli.*
npm run test
npm run test:coverage
npm run lint
npm run typecheckTests cover argv paths, TTY launcher (mocked Clack), crawl writes, and a binary smoke on dist/cli.cjs.
Dependency audit (repro)
From repo root after npm install, transitive issues come from to-ico (favicon.ico) via @better-seo/assets — old jimp / request chain. Reproduce:
cd packages/better-seo-cli && npm audit
cd ../better-seo-assets && npm auditnpm audit fix --force is not recommended here (it can pin unusable versions). Risk is build-time / local file usage (you control the logo path); still tracked for a future replacement (e.g. ICO-only path without to-ico). Run npm audit in CI as you already do at the monorepo level.
Coverage
vitest.config.ts covers src/**/*.ts except cli.ts (thin re-export) and tests.
| Metric | Minimum | | -------------- | ------- | | Lines | 80% | | Statements | 80% | | Functions | 75% | | Branches | 65% |
License
MIT — see LICENSE.
