store-shots

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]
OptionWhat it does
--jsonmachine-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]
OptionWhat 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]
OptionWhat it does
--port <port>preferred port (a free one is chosen if taken)
--no-browserstart 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]
OptionWhat 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)
--landscapelandscape store sets (default: the app's own orientation)
--portraitportrait 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)
--forceoverwrite existing files

store-shots validate

Validate config, manifest, copy, raw captures and per-set counts (no rendering)

store-shots validate [options]
OptionWhat it does
--project <dir>app directory or config path (default: walk up from cwd)
--jsonmachine-readable output
--dry-runalso print the render plan

store-shots readiness

Store readiness checks: metadata, limits, screenshots, icon, credentials, placeholders

store-shots readiness [options]
OptionWhat it does
--project <dir>app directory or config path (default: walk up from cwd)
--jsonmachine-readable output

store-shots generate

Render every planned screenshot into fastlane/screenshots/<locale>/ (needs raw captures and a local font)

store-shots generate [options]
OptionWhat 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)
--strictany error or warning blocks all output
--no-cleando not delete stale previously generated files
--forcere-render even when inputs are unchanged since the last run
--dry-runprint the render plan and exit
--jsonmachine-readable summary

store-shots clean

Delete only the screenshots recorded in .store-shots-manifest.json

store-shots clean [options]
OptionWhat 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>
OptionWhat 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-runshow 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>
OptionWhat 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]
OptionWhat 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]
OptionWhat 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]
OptionWhat it does
--project <dir>app directory or config path (default: walk up from cwd)
--jsonmachine-readable output

store-shots metadata show

Print the managed fields for one locale

store-shots metadata show [options]
OptionWhat 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>
OptionWhat it does
--project <dir>app directory or config path (default: walk up from cwd)
--yesconfirm an upload lane (metadata, screenshots)
--override <reason>run an upload lane despite failing readiness, stating why
--dry-runprint 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]
OptionWhat it does
--screen <id>screen id from store/manifest.json (required unless --list or --all)
--allcapture every enabled screen that declares source.deepLink, in order
--locales <list>capture each locale unattended: "all" or a comma-separated list (implies --all)
--no-seedskip the capture.state seeding declared in store-shots.config.json
--keep-languageleave 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-barset 9:41, full battery and signal before capturing
--forceoverwrite an existing capture
--listlist 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]
OptionWhat 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)
--lightlight 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]
OptionWhat it does
--project <dir>app directory or config path (default: walk up from cwd)
--jsonmachine-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>
OptionWhat it does
--project <dir>app directory or config path (default: walk up from cwd)
--yesmake 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>
OptionWhat it does
--project <dir>app directory or config path (default: walk up from cwd)
--yessubmit

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]
OptionWhat 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...]
OptionWhat it does
--project <dir>app directory or config path (default: walk up from cwd)
--forcerun the selected steps even when nothing changed
--quickSTORE_SHOTS_QUICK=1 for the scripts; art goes to the work folder, store/assets is untouched
--verboseshow 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]
OptionWhat it does
--project <dir>app directory or config path (default: walk up from cwd)
--strictwarnings fail too
--jsonmachine-readable output

On this page