App Store · Google Play · Preview video

Store screenshots, crafted by your coding agent.

Craftshot drives your app on an iOS simulator or Android emulator, frames every capture with a device bezel, background and headline, stitches the preview video, and checks it all against the store upload rules. Already have screenshots? Drop them into the online editor, no install needed.

Made with Craftshot

Real Google Play screenshots of our own Screen Recorder app. The flows, copy and framing came from one prompt to a coding agent; no design tool involved.

Screen Recorder: Record in HD. No watermark. Onboarding screen, left half of a panorama Right half of the panorama
One tap to start: the record screen Up to 1080p: the resolution picker Tuned the way you record: settings

Pixel 10 Pro, 1080 × 1920, captured on an Android emulator with craftshot all. Scroll sideways to see all five.

Everything the stores ask for

One config, one command. Screenshots and preview videos for iPhone, iPad and Android, at the exact sizes App Store Connect and Play Console accept.

01

Real captures

Replays recorded flows on a simulator or emulator, so every screenshot shows your real app with a pinned 9:41 status bar.

02

Device frames

iPhone 17 Pro, iPad Pro 13" and Pixel 10 Pro bezels, backgrounds, headlines, and templates from editorial to panorama.

03

Preview video

Records flow segments and joins them into an H.264 App Store preview inside Apple's 15–30 second window.

04

Store checks

Verifies sizes, formats and durations against the store rules before you upload, not after a rejection.

05

Visual studio

Tweak devices, backgrounds, fonts and per-tile copy in the browser. The CLI renders exactly what you see.

06

Any framework

SwiftUI, UIKit, Jetpack Compose, Flutter, React Native, Kotlin Multiplatform. It drives the device, not your code.

How it works

Ask your coding agent from your app repo. It does the rest, and follow-ups edit the same files.

  1. Pick the storesThe agent asks whether you target the App Store, Google Play, or both.
  2. Explore and recordIt explores the app and writes replayable flows and the config.
  3. Capture and frameFlows run on the device; captures get bezels, backgrounds and copy.
  4. Review in the studioSay "use a dark background" and it updates the result.
# in your app repo, ask your agent:
create app store screenshots using craftshot

# or run it by hand:
$ craftshot doctor    # check tools, simulators, flows
$ craftshot all       # capture, frame, preview, verify
$ craftshot studio    # preview and tweak in the browser

Store-ready output

Written to out/screenshots/<device>/<locale>/ and out/previews/<device>/<locale>/.

DeviceScreenshotsPreview video
iPhone 6.9"1320 × 2868886 × 1920 H.264
iPad 13"2064 × 27521200 × 1600 H.264
Google Play phone1080 × 1920Portrait video for YouTube

Works with your stack

Framework agnostic, agent agnostic.

SwiftUIUIKitJetpack Compose FlutterReact NativeKotlin Multiplatform Claude CodeCursorCodex

Pricing

Free to start in the online editor and the CLI, no account needed. Your screenshots stay on your machine. One Pro key lifts the limits in both.

Free

$0
  • Up to 3 screenshots
  • One device per download
  • CLI: 3 screenshots, one device per run
  • All backgrounds, fonts and styles
  • Store-ready PNGs
Start free

Pro Monthly

$9/month
  • Up to 10 screenshots
  • iPhone, iPad and Android in one download
  • Unlimited CLI: every scene, every device
  • New Pro features as they ship
  • 2 activations: e.g. one browser + the CLI
Get Pro
Save 36%

Pro Yearly

$69/year
  • Everything in Pro Monthly
  • Billed once a year
  • 6 activations: about 3 computers
Get Pro Yearly
Pay once

Lifetime

$99once
  • Everything in Pro
  • No subscription
  • 10 activations: about 5 computers
Get Lifetime

Prices in USD; taxes calculated at checkout by Dodo Payments. Buy from the editor's Upgrade button, then enter the license key from your email. In the CLI, run craftshot activate <key>; in CI, set CRAFTSHOT_LICENSE_KEY. Activations: each browser where you use the editor counts as one, and each computer where you run craftshot activate counts as one, so one browser plus the CLI on the same PC uses 2. The CLI in CI (CRAFTSHOT_LICENSE_KEY) uses none. Free an activation with Remove in the editor or craftshot deactivate. Subscriptions renew automatically; cancel any time and keep Pro until the period ends. Purchases are not refundable, so try Free first (refund policy).

Install

Needs Node 20+ and ffmpeg. App Store screenshots need macOS with Xcode simulators. Google Play screenshots need an Android emulator (macOS, Linux or Windows).

# the CLI
$ npm i -g craftshot

# then check your setup
$ craftshot doctor

# Pro: unlock with your license key
$ craftshot activate <key>