CLI
The create-saas-starter command tree — generate and add.
create-saas-starter is the scaffolder. It has two subcommands: generate
copies the reference app and prunes the features you don't select, and add
installs prebuilt registry blocks into an app you already generated. Because the
CLI lives in the same repo as the reference app and reads it directly, template
drift is impossible by construction.
Command tree
Running the CLI with no subcommand prints usage — a subcommand is required:
create-saas-starter generate|add
COMMANDS
generate Generate a pruned standalone app from the reference template
add Add a prebuilt block to a generated app (run with no name to list the catalog)Invoke it with your package manager's dlx runner (npx, pnpm dlx, bunx,
yarn dlx):
npx create-saas-starter generate --name my-app
npx create-saas-starter add upgrade-cardThe two commands
generate
Copy the reference app, prune deselected features, verify, format, and initialize git — a working standalone app.
add <block>
Install a composed registry block into a generated app, with a version-matched, feature-checked, typecheck-verified copy.
How pruning works
The engine that turns the kitchen-sink app into your app:
The prune model
The feature DAG, @feature markers, path deletion, and the standalone
package.json rewrite.
Stamp & versioning
The .saas-starter.json stamp and why add requires an exact CLI-version
match.
Zero telemetry, ever
The CLI never sends usage pings or version checks — it's pure local file transformation (D-015). The combo CI matrix is the feedback mechanism, not telemetry.