Commands
Each subcommand has a dedicated page. The CLI prints a Documentation link at the bottom of help output (see packages/cli/src/constants/docs.ts).
Architecture rule: command files are orchestrators; reusable logic belongs in core/ (or shared utils/). See command orchestration boundary.
Command source layout (packages/cli/src/commands/)
commands/<name>/index.ts— re-exports only (e.g.export { sync } from './run.js').commands/<name>/run.ts— primary exported handler first (right after imports), private helpers below. Handler named after the CLI subcommand (e.g.sync(),generate(),missing()). Thelocalescommand useslocalesList,localesEdit,localesDynamic,localesDeletefor its sub-actions.- Other files in the folder — optional splits (
summary.ts,targets.ts, …) for orchestration and CLI output, not domain engines.
help (locked): no help() runner — configureCliHelp and colorizeHelpText only (help/run.ts). See help.
Domain behavior stays in packages/cli/src/core/**. Table and rationale: Command orchestration boundary — file layout.
| Command | Docs |
|---|---|
init | init |
config | config |
validate | validate |
missing | missing |
sync | sync |
generate | generate |
fill | fill |
quality | quality |
review | review |
cleanup | cleanup |
languages | languages |
doctor | doctor |
help | help |
report | report |
locales: list, edit, dynamic, delete.
Global --version / -v: version.
Subcommands use full names only (no short aliases like gen / val). Optional argv normalization: --langs as the first token is accepted as languages.
See also CLI overview.