Command line
Every store-shots command and option, from the CLI itself.
Every command takes --help. Global options: --workspace <dir> (workspace root (default: the directory containing tools/store-shots)).
Exit codes: 0 ok, 1 validation or readiness failed, 2 usage or config error.
store-shots projects
List the apps you have added (or, until you add one, whatever scanning finds)
store-shots projects [options]| Option | What it does |
|---|---|
--json | machine-readable output |
--scan [dir] | ignore the list and scan a directory instead |
store-shots add
Add an app that already has a store-shots.config.json (default: current directory)
store-shots add [options] [dir]| Option | What it does |
|---|---|
--name <name> | name to list it under (default: directory name) |
store-shots remove
Remove an app from the list (never touches the app's own files)
store-shots remove [options] <nameOrDir>store-shots prune
Drop list entries whose directory or config has gone away
store-shots prune [options]store-shots open
Start the editor and open it in your browser (default: the app in the current directory)
store-shots open [options] [nameOrDir]| Option | What it does |
|---|---|
--port <port> | preferred port (a free one is chosen if taken) |
--no-browser | start the server without opening a browser |
store-shots init
Scaffold store/ and store-shots.config.json, and add the app to your list (run it inside the app)
store-shots init [options]| Option | What it does |
|---|---|
--project <dir> | app directory (default: current directory) |
--name <name> | project name (default: from app.json, capacitor.config or Info.plist) |
--locales <list> | comma-separated store locales (default: fastlane/metadata dirs or CFBundleLocalizations) |
--default-locale <locale> | default locale (default: en-US if present) |
--landscape | landscape store sets (default: the app's own orientation) |
--portrait | portrait store sets (default: the app's own orientation) |
--theme <id> | start with five screens in a theme: aurora, bold, paper, swing, split, card |
--accent <hex> | the theme's colour (default: the app's own colour, or its icon's) |
--force | overwrite existing files |
store-shots validate
Validate config, manifest, copy, raw captures and per-set counts (no rendering)
store-shots validate [options]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--json | machine-readable output |
--dry-run | also print the render plan |
store-shots readiness
Store readiness checks: metadata, limits, screenshots, icon, credentials, placeholders
store-shots readiness [options]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--json | machine-readable output |
store-shots generate
Render every planned screenshot into fastlane/screenshots/<locale>/ (needs raw captures and a local font)
store-shots generate [options]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--locale <list> | only these locales (comma-separated) |
--screen <list> | only these screen ids |
--target <list> | only these target ids |
--set <list> | only these named sets from the manifest (custom product pages, PPO treatments) |
--strict | any error or warning blocks all output |
--no-clean | do not delete stale previously generated files |
--force | re-render even when inputs are unchanged since the last run |
--dry-run | print the render plan and exit |
--json | machine-readable summary |
store-shots clean
Delete only the screenshots recorded in .store-shots-manifest.json
store-shots clean [options]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
store-shots theme
Starter themes: a finished look for every screen, drawn in the app's colour
store-shots theme [options] [command]store-shots theme list
List the themes
store-shots theme list [options]store-shots theme apply
Restyle every screen and the brand colours and fonts in a theme; copy, captures, layers and order stay as they are
store-shots theme apply [options] <id>| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--accent <hex> | the theme's colour (default: the app's own colour, or its icon's) |
--dry-run | show what would change, write nothing |
store-shots fonts
Manage local font files (downloaded once from Google Fonts)
store-shots fonts [options] [command]store-shots fonts add
Download a Google Fonts family into the app: fonts add "Space Grotesk"
store-shots fonts add [options] <family>| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--weights <list> | comma-separated weights (default: from config brand.font.weights) |
store-shots fonts list
List fonts available to this app (app-local and bundled)
store-shots fonts list [options]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
store-shots fonts check
Verify the configured brand font is available locally and intact
store-shots fonts check [options]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
store-shots metadata
Inspect fastlane/metadata/<locale>/*.txt (the UI's Store view edits them)
store-shots metadata [options] [command]store-shots metadata validate
Check every locale directory against App Store character limits (same table as the Fastfile lane)
store-shots metadata validate [options]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--json | machine-readable output |
store-shots metadata show
Print the managed fields for one locale
store-shots metadata show [options]| Option | What it does |
|---|---|
--locale <locale> | locale directory, e.g. de-DE |
--project <dir> | app directory or config path (default: walk up from cwd) |
store-shots lane
Run one of the app's own fastlane lanes: validate | metadata | screenshots (never build/submit lanes)
store-shots lane [options] <key>| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--yes | confirm an upload lane (metadata, screenshots) |
--override <reason> | run an upload lane despite failing readiness, stating why |
--dry-run | print the command and preflight, do not run |
store-shots capture
Screenshot a booted simulator into store/raw/<device>/<locale>/ with the name the manifest expects
store-shots capture [options]| Option | What it does |
|---|---|
--screen <id> | screen id from store/manifest.json (required unless --list or --all) |
--all | capture every enabled screen that declares source.deepLink, in order |
--locales <list> | capture each locale unattended: "all" or a comma-separated list (implies --all) |
--no-seed | skip the capture.state seeding declared in store-shots.config.json |
--keep-language | leave the simulator in the last captured language instead of restoring it |
--settle <seconds> | wait after opening each deep link (default 2) |
--device <device> | raw-capture device folder (iphone | ipad) (default: "iphone") |
--locale <locale> | locale folder (default: the project's default locale) |
--udid <udid> | simulator UDID when more than one of that family is booted |
--clean-status-bar | set 9:41, full battery and signal before capturing |
--force | overwrite an existing capture |
--list | list booted simulators and exit |
--project <dir> | app directory or config path (default: walk up from cwd) |
store-shots sheet
Write contact sheets (one PNG per locale x target) of the generated screenshots into store/generated/sheets/
store-shots sheet [options]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--locale <list> | only these locales |
--target <list> | only these target ids |
--width <px> | thumbnail width (default 330) |
--light | light background |
store-shots asc
App Store Connect, with the app's own API key: custom product pages, experiments, versions
store-shots asc [options] [command]store-shots asc status
What App Store Connect has for the app, matched to the manifest's named sets (read-only)
store-shots asc status [options]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--json | machine-readable output |
store-shots asc push
Upload a named set as a draft custom product page or optimization treatment, or "default" for the product page's media on the editable version; shows the plan, changes nothing without --yes, never submits
store-shots asc push [options] <set>| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--yes | make the changes the plan shows |
--experiment <name> | treatments without an experiment in the manifest: the draft experiment to add them to (default: "store-shots") |
--traffic <percent> | treatments: share of traffic for a new experiment (default: "50") |
store-shots asc submit
Submit the default page's header and search results images ("default") for review in the Asset Library; images only, never a version, page or experiment; changes nothing without --yes
store-shots asc submit [options] <page>| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--yes | submit |
store-shots scenes
The app's art pipeline ("scenes" in the config): Blender renders and their post-processing
store-shots scenes [options] [command]store-shots scenes list
Show the steps, what each runs, and which would run now
store-shots scenes list [options]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
store-shots scenes render
Run the steps whose scripts or inputs changed (or the named ones), in order
store-shots scenes render [options] [steps...]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--force | run the selected steps even when nothing changed |
--quick | STORE_SHOTS_QUICK=1 for the scripts; art goes to the work folder, store/assets is untouched |
--verbose | show each step's output as it runs (it is always in <step>.log) |
store-shots frames
Official device frames (fastlane frameit) for shell: "frame:<name>"
store-shots frames [options] [command]store-shots frames setup
Download the official frames via fastlane frameit download_frames (~300 files into ~/.fastlane/frameit)
store-shots frames setup [options]store-shots frames list
List locally available frames (name, size, screen cut-out)
store-shots frames list [options] [search]store-shots check
CI gate: validate + readiness + metadata limits in one run; non-zero exit on any error
store-shots check [options]| Option | What it does |
|---|---|
--project <dir> | app directory or config path (default: walk up from cwd) |
--strict | warnings fail too |
--json | machine-readable output |