storeshot
v0.3.0
Published
A local-first, agent-native CLI for creating App Store screenshots.
Maintainers
Readme
StoreShot
StoreShot is a local-first, agent-native CLI and visual editor for creating App Store screenshots. Run it in a folder, edit screenshot sets in the browser, and keep the complete project as ordinary assets and JSON files that humans, scripts, and AI coding agents can all inspect and change.
Pre-release: StoreShot is under active development, changes quickly, and does not yet promise backward compatibility. It supports Apple App Store screenshots today; Google Play support is planned.
StoreShot is already used in production for the iOS app Lokimaps.

Why StoreShot?
Many existing screenshot tools were designed as closed, manual design silos. Their project data is difficult to inspect, version, automate, or hand to an AI agent, which makes routine localization and release work unnecessarily awkward.
StoreShot keeps the workflow open and file-based. The visual editor is useful for hands-on design, while the same project can be reviewed, generated, or updated by an agent through normal filesystem tools. There is no account, database, hosted project, or remote backend.
What it can do
- Organize raw screenshots, brand assets, and other reusable imagery.
- Create ordered screenshot sets for a locale and Apple device family.
- Arrange text, shapes, images, recolorable artwork, and device mockups on a free-form canvas.
- Group and ungroup layers, with multi-selection on the canvas and in the layer list.
- Use undo/redo, multi-layer copy/paste and duplication, alignment guides, layers, keyboard movement, and canvas zoom.
- Export an entire set as full-resolution PNG files in a ZIP archive.
- Inspect, validate, edit, and render projects from the CLI with stable JSON output for scripts and AI agents.
- Import portable device-mockup bundles with explicit frame geometry and license metadata.
- Persist everything inside the selected project directory.
Quick start
StoreShot requires Node.js 22.12 or newer.
npm install --global storeshot
mkdir app-store-screenshots
storeshot init app-store-screenshots --app-name "Example App" --platform ios
storeshot dev app-store-screenshotsThe command opens a local workspace at http://127.0.0.1:4173. To use a
different port or avoid opening the browser:
storeshot dev ./app-store-screenshots --port 4174 --no-openThe default server is bound to the loopback interface. Be deliberate when using
--host to expose it to another interface.
CLI and AI agents
StoreShot supports the full screenshot workflow without requiring browser
automation. Commands can inspect the project, create and update sets, manage
assets, validate direct JSON edits, and render real PNG previews or final
output. Global -C/--project selects the project and --json provides stable
machine-readable results.
storeshot -C ./app-store-screenshots status --json
storeshot -C ./app-store-screenshots validate --json
storeshot -C ./app-store-screenshots set show <set-id>
storeshot -C ./app-store-screenshots render --set <set-id> --scale 0.25 --jsonWhen storeshot dev is open, CLI and direct filesystem changes are streamed to
the browser so the selected set and preview update in realtime. See the
CLI and agent workflow for the complete command surface and a
recommended inspect-edit-validate-render loop.
Project format
StoreShot creates a transparent, portable project structure:
app-store-screenshots/
├── storeshot.json
├── assets/
│ ├── screenshots/
│ ├── brand/
│ └── other/
├── mockup-bundles/
│ └── my-device-frames/
│ ├── storeshot-mockups.json
│ ├── LICENSE
│ └── assets/
└── sets/
├── english-iphone-a1b2c3d4.json
└── finnish-iphone-e5f6g7h8.jsonCLI renders are written to renders/<set-id>/ by default. They are generated
output; teams can commit or ignore them according to their release workflow.
Each set stores its locale, device, output dimensions, ordered screenshots, and canvas layers. StoreShot only serves files inside the selected project boundary. Project assets and imported bundles remain subject to their own licenses.
The editor and CLI renderer load fonts from Bunny Fonts on demand. The project itself remains local, but the first browser or CLI render of a hosted font requires a network request to Bunny Fonts. The CLI caches the downloaded font files in the operating system's temporary directory.
Device mockups
The built-in Apple frames come from the MIT-licensed FrameUp Free project. StoreShot also supports project-local bundles and lets users import all or selected frames.
See the mockup bundle format for the manifest and geometry specification.
Develop from source
From a checkout of this repository or your fork:
npm ci
npm run devnpm run dev starts the CLI in watch mode against the ignored playground/
project and serves the React UI with Vite hot reload.
Useful commands:
| Command | Purpose |
| --- | --- |
| npm run dev | Run the development CLI and UI against playground/ |
| npm run dev:website | Preview the static website with Vite hot reload |
| npm run storeshot -- dev <dir> --no-open | Run the unbuilt CLI against another folder |
| npm run typecheck | Type-check the project |
| npm run build | Build the CLI and browser UI |
| npm run licenses | Regenerate bundled dependency license texts |
| npm run check | Run license, type, and production-build validation |
The repository also includes AGENTS.md and project-local Codex configuration
for agent-assisted development.
Maintainers can follow the release guide to publish a new version through npm trusted publishing and GitHub Actions.
Contributing and security
StoreShot is early software, and focused issues and pull requests are welcome. Read CONTRIBUTING.md before making a substantial change. Please report vulnerabilities according to SECURITY.md, not in a public issue.
License
StoreShot is released under the MIT License.
Third-party packages, fonts, icons, and device frames retain their own licenses. See THIRD_PARTY_NOTICES.md and THIRD_PARTY_LICENSES.txt for attribution and license details. StoreShot is not affiliated with or endorsed by Apple Inc. Apple, App Store, iPhone, iPad, Apple Watch, and Mac are trademarks of Apple Inc.
