CLI reference
Two binaries ship from this package:
create-propeller-shop— the one-shot scaffolder. Run from outside a shop.propeller— per-shop tools. Run from inside a shop (or itsfrontend/directory).
create-propeller-shop <name> [flags]
Scaffolds <name>/ containing frontend/ and cms/. Atomic per
attempt: any failure rolls back the target directory so you never land
on a half-scaffolded shop.
Flags
| Flag | Type | Notes |
|---|---|---|
--stack | next | vue | Which template tree to copy. |
--mode | b2b | b2c | hybrid | See Shop modes. |
--cms | strapi | cms | none | CMS adapter to declare in propeller.json. none writes null. |
--locales | comma list | BCP-47 codes, e.g. en,nl,de. |
--default-locale | string | Must be in --locales. |
--currency-code | ISO 4217 | e.g. EUR, USD. Display symbol derives from this. |
--portal-mode | open | semi-closed | closed | Catalog visibility for anonymous visitors. |
--site-url | URL | Public origin, used for SEO + canonical URLs. |
--skip-install | flag | Skip npm install after copy. |
--yes | flag | Accept every default; no prompts. |
Any flag you omit is asked interactively.
Defaults applied by --yes
| Setting | Default |
|---|---|
| stack | next |
| mode | hybrid |
| cms | none |
| locales | en |
| default-locale | en |
| currency-code | EUR |
| portal-mode | derived from mode (b2b → semi-closed, b2c/hybrid → open) |
| site-url | https://<name>.example.com |
| skip-install | false |
What the scaffold does
- Validate
<name>(kebab-case, dir doesn't exist). - Run prompts → build a
ShopConfig→ validate with Zod. - Create
<name>/frontend/and<name>/cms/. - Copy
templates/shop-{stack}/shared/**→frontend/. - If
mode !== 'b2c': copyb2b-routes/**→ same destination. - Run Handlebars substitution over
*.template.{ts,tsx,vue,json,md,mjs}— strip.templateon write. - Write
propeller.jsondirectly from the in-memory schema. - Write
.env.localfrom.env.examplewith placeholder CMS values. - Write
cms/README.mdwith per-CMS install instructions. - Pin the major Propeller packages to exact GitHub-master commits at scaffold time.
cd frontend && npm install(unless--skip-install).git initand create the initial commit (best-effort).- Print next-steps banner.
Atomic rollback
If any of steps 3-10 fail, the entire target tree is removed. You can re-run the scaffold safely without cleaning up a half-baked directory.
propeller doctor
See doctor for the full reference.
propeller upgrade and propeller eject
Reserved for Phase B — see Roadmap. The schema and
customisations.ejected field are wired in from day one so adding
these commands later is non-breaking.
Versioning
The CLI and the templates ship at the same version. The version baked
into propeller.json -> template.version is the CLI version at scaffold
time. propeller doctor uses it to know which version of the diff pack
to apply when upgrade lands.
See Changelog for the per-release history.