$ ps-lando

Flags

Full reference of every ps-lando flag in v1.0, plus exit codes and the v0.x → v1 removal table.

Every flag accepted by ps-lando v1.0, grouped by command. Removed flags from 0.x are listed at the bottom with their replacements. Exit codes are documented in the Exit codes table — the CLI uses contiguous range 64–82 for v1-spec'd error categories (mirrors Info-Zip's 82 + sysexits.h base 64).

create flags

Basic

FlagTypeDefaultSinceDescription
-y, --yesboolfalse0.1Non-interactive, accept defaults. CI-friendly.
--ps-version=<v>string(picker)0.3PrestaShop tag (e.g. 8.2.5, 9.1.0). Skips the interactive picker. Legacy --ps alias still works.
--ps-zip=<path>string(download)0.3Use a pre-downloaded PS zip. Bypasses network entirely.
-z, --zips=<dir>stringcwd0.1Directory with theme + module zips.
--hummingbird-buildboolfalse0.4After install, build Hummingbird 2.0 assets via node:20 Docker container.

Theme & preset selection (v1.0+)

FlagTypeDefaultSinceDescription
--theme=<name|path|none>string(prompt)1.0Theme name (matches a theme.yml / theme.xml <name> in cwd zips) or .zip path. --theme=none opts out of theme deployment entirely. Skips the interactive select prompt.
--preset=<name>string (repeatable)(theme-name binding)1.0Built-in (panda, none) or relative path (./presets/foo.ts). Repeat to layer. By default a preset whose name matches the selected theme name activates (e.g. picking panda activates the bundled panda preset).
--no-presetboolfalse1.0Disable all presets — overrides the theme-name binding above.
--force-overwrite-themeboolfalse1.0Allow overwriting an existing themes/<name>/ directory.
--allow-incompat-themeboolfalse1.0Skip the <ps_versions_compliancy> compatibility check.
--strict-compatboolfalse1.0Promote a compat warning to a fatal error (exit 76).

Module selection

FlagTypeDefaultSinceDescription
--exclude=<glob>string (repeatable)[]1.0picomatch glob, case-insensitive. Composes with --only. Empty value exits 64.
--only=<glob>string (repeatable)[]0.5Install ONLY modules matching the glob(s). Composes with --exclude (intersection).
--no-install-modulesboolfalse0.1Skip the batch install at the end of create. Modules are still copied.
--no-copy-skippedboolfalse0.5.2When paired with --exclude / --only, also exclude filtered modules from the copy step.
--allow-stock-overwriteboolfalse1.0Allow overwriting stock PS modules.
--sequentialboolfalse0.4.2Install modules one at a time (default is parallel concurrency 3).

Hooks & recipes

FlagTypeDefaultSinceDescription
--recipes=<names>string""0.4Comma-separated bundled recipes to run. Used in -y mode.
--on-hook-failure=<fail|continue>enumcontinue0.4Whether a failing hook aborts the rest of the pipeline.

Config & cache

FlagTypeDefaultSinceDescription
--config=<path>string(cosmiconfig)1.0Bypass cosmiconfig discovery; load this file directly.
--no-cacheboolfalse1.0Skip .pslando-cache.json read/write for this run.
--log-format=<text|json>enumtext1.0Mirror of PSLANDO_LOG_FORMAT env. JSON puts decisions on stderr as one event per line.
--quietboolfalse0.4Suppress info / decision logs on stderr.
--verboseboolfalse0.4Annotate every resolved-decision line with its source:.
--help, --versionbool0.1Standard.

install-modules flags

install-modules (alias im) reuses the --exclude, --only, --no-copy-skipped, --sequential, --allow-stock-overwrite, --config, --log-format, --quiet, --verbose flags from create plus:

FlagTypeDefaultSinceDescription
--dry-runboolfalse0.4Preview install order without invoking PrestaShop.
--include=<prefix>string0.1Only install modules whose name starts with <prefix> (legacy; consider --only=<prefix>*).

init flags (1.0+)

ps-lando init is the interactive scaffolder. Walks through 7 prompts (clack) and writes pslando.config.json, init-scripts/01-example.sh, and a .gitignore entry. See Reference → Config and Reference → Commands.

FlagTypeDefaultSinceDescription
--yesboolfalse1.0Skip all prompts, write defaults.
--forceboolfalse1.0Overwrite existing pslando.config.*. Without --force, refuses with exit 82.

cache clear flags (1.0+)

ps-lando cache clear wipes the local plan cache (.pslando-cache.json).

FlagTypeDefaultSinceDescription
-y, --yesboolfalse1.0Skip the confirm prompt.

db reset / db dump / db restore / doctor / activate-theme

These flags are unchanged in v1.0:

  • db reset: -y, --yes
  • db dump: --with-files (bundle SQL + img/ + themes/<active>/ into a .tar.gz)
  • db restore: -y, --yes
  • doctor: --fix
  • activate-theme: --force-sql

Removed flags (BREAKING — v1.0.0)

The four --skip-* group flags from 0.5.x were removed. Running them now exits 64 (UsageError) with a one-line migration hint to stderr. Replacements:

RemovedReplacement
--skip-easybuilder--exclude=steasybuilder* (or modules.exclude in pslando.config.json)
--skip-blog--exclude=stblog* (or via the panda preset's group config)
--skip-social--exclude=<glob> patterns or preset config
--skip-marketing--exclude=<glob> patterns or preset config
--skip <list>--exclude=<glob> (per-name patterns also work)

See the Migrating from 0.x guide for grep recipes to find old flags in CI scripts.

Mutual exclusions

  • --no-preset cannot be combined with --preset=<name> (exit 64).
  • --exclude= (empty value) exits 64 — supply at least one non-empty pattern.

Exit codes

ps-lando v1.0 uses these exit codes (contiguous range 64–82 for spec'd categories):

CodeNameTrigger
0OKSuccess.
1GenericErrorCatch-all (unknown error / JS exception).
2AmbiguousTheme2+ themes detected, non-TTY, no --theme=.
64UsageErrorUnknown / removed flag, bad flag value, empty --exclude=.
65SchemaValidationErrorpslando.config.* fails the zod schema.
66ConfigNotFound--config=<path> passed but file missing.
67PresetNotFound--preset=<name> resolves to nothing.
68CorruptZipunzip -l fails on a detected zip.
69EncryptedZipZip is encrypted (Info-Zip exit 82).
70UnknownZipShapeZip has neither theme.yml/.xml nor <name>/<name>.php at root.
71DependencyResolutionErrorModule / preset dependency cycle or missing dep.
72HookExecutionErrorHook script exited non-zero AND --on-hook-failure=fail.
73CacheCorruption.pslando-cache.json is malformed or unreadable.
74NetworkErrorPS download / npm registry check failed after retries.
75LandoStartFailedlando start returned non-zero.
76ThemeIncompatible<ps_versions_compliancy> mismatch AND --strict-compat.
77ThemeOverwriteRefusedthemes/<name>/ exists AND no --force-overwrite-theme.
78StockModuleOverwriteA module zip would clobber a PS stock module AND no --allow-stock-overwrite.
79DiskFullWrite failed with ENOSPC.
80PermissionDeniedFilesystem permission failure (EACCES / EPERM).
81InitCancelledUser pressed Ctrl-C during ps-lando init. (Treated as code 0 in some envs — see spec §1.5.)
82InitConfigExistspslando.config.* already exists AND no --force.

For complete trigger definitions and suggested user actions, see the spec exit-code table.

Defaults in -y mode

When -y is passed without other flags:

FieldDefault
Project namebasename of cwd
PS versionnewest stable from the manifest (currently 9.1.0)
Theme1 detected → auto-selected. 2+ detected → exit 2 (AmbiguousThemeError) — pass --theme=<name>. 0 detected → vanilla install (bundled classic / hummingbird).
Presetactivates if its name matches the selected theme name (e.g. panda → bundled panda preset). --no-preset opts out.
Modulesevery module zip detected in cwd is auto-checked (= installed). Filter with --exclude=<glob> / --only=<glob>.
PHP8.2 (PS 9) or 8.1 (PS 8)
DatabaseMySQL
ExtrasphpMyAdmin + MailHog
Child themeyes, named <project>_child
Admin emailadmin@example.com
Admin passwordsandbox1234
Localees / es / Europe/Madrid

Next steps

On this page