Store screenshots
and preview videos,
rendered locally.

A folder of screenshots goes in. App Store and Play sets, social cards, 3D device videos and mockups come out — built by your coding agent, on your own machine, for free.

Install in Claude Code
claude plugin marketplace add imshaikot/app-preview-craft-skillclaude plugin install app-preview-craft@app-preview-craft
  • MIT licensed
  • No account
  • Nothing uploaded
  • Works offline
An App Store screenshot of a running app in the Stride theme: orange background, condensed headline and an angled iPhone.
App Store screenshot
3D device video
A wide social card for the sample app, with a tilted phone on an aurora background.
Open Graph card

Every image and video on this page was rendered by the tool itself, from the sample app it ships with. Read the source.

Stop renting a phone frame.

Putting a screenshot on a device and setting a headline is a render. It takes seconds on the GPU you already own. What a subscription actually buys you is a template library and a server in the middle — and the plan that lets you automate any of it is reliably the priciest one.

  • Unreleased screens never leave your machine

    Nothing is uploaded. No embargo to worry about, no third-party retention policy to read.

  • No seats, no export caps, no watermark

    Render the full set for every locale and every device size as many times as you like.

  • Automation is the default, not the top tier

    It is a command-line tool. Put it in your release script, or just ask your agent for it.

  • The design changed? Re-run one command

    The whole set re-renders from the new screenshots. That is the part that actually costs you time.

THE USUAL WAY app store assets · one app
  • Screenshot generator Pro plan, monthly $29.00 /mo
  • API access the tier that lets you automate $49.00 /mo
  • 3D device renderer one-time, desktop app $99.00
Year one
$687.00
Every year after
$588.00
with app-preview-craft $0.00

MIT licence · renders locally · no account
Published prices, checked September 2026.

A set, not
a single image.

Store listings want a sequence. Give it five screenshots and a headline each, and it renders the whole run at every size you asked for, plus a contact sheet so you can check the set reads in order.

  1. App Store slide 01 of the sample running app: “Every run. One glance.”, rendered in the Ledger theme. 01 Every run. One glance.
  2. App Store slide 02 of the sample running app: “Maps that move”, rendered in the Ledger theme. 02 Maps that move
  3. App Store slide 03 of the sample running app: “Know your zones”, rendered in the Ledger theme. 03 Know your zones
  4. App Store slide 04 of the sample running app: “Loved by runners”, rendered in the Ledger theme. 04 Loved by runners
  5. App Store slide 05 of the sample running app: “Run together”, rendered in the Ledger theme. 05 Run together

Five slides, one command, rendered at 1320×2868 and 2064×2752.

Social and Open Graph cards

The link preview, the launch post, the story, and the 1024×500 Play feature graphic. Seven layouts, from a tilted phone on an aurora to a bento grid of screen crops.

  • A social card for the sample app in the launch layout.
  • A social card for the sample app in the bento layout.
  • A social card for the sample app in the editorial layout.
  • A social card for the sample app in the neon-grid layout.
  • A social card for the sample app in the spotlight layout.
  • A social card for the sample app in the pastel-fan layout.

3D mockup stills

Hero images for a landing page or a press kit, rendered from real device models. Add --transparent and you get a cut-out PNG to drop onto your own art.

  • A 3D device mockup of the sample app in the noir theme.
  • A 3D device mockup of the sample app in the levitate theme.
  • A 3D device mockup of the sample app in the studio theme.
  • A 3D device mockup of the sample app in the lineup theme.
  • A 3D device mockup of the sample app in the pedestal theme.
  • A 3D device mockup of the sample app in the flatlay theme.

One screenshot.
Ten store categories.

Every image below is the same PNG with the same headline. Only the theme changed. Each one is tuned to how apps in that App Store category actually present themselves — the mood, not anyone’s branding.

The same running-app screenshot rendered in the Stride theme, styled for the Health & Fitness category.The same running-app screenshot rendered in the Ledger theme, styled for the Finance category.The same running-app screenshot rendered in the Serene theme, styled for the Mindfulness category.The same running-app screenshot rendered in the Canvas theme, styled for the Productivity category.The same running-app screenshot rendered in the Sizzle theme, styled for the Food & Drink category.The same running-app screenshot rendered in the Wander theme, styled for the Travel category.The same running-app screenshot rendered in the Mixtape theme, styled for the Music & Audio category.The same running-app screenshot rendered in the Arcade theme, styled for the Games category.The same running-app screenshot rendered in the Snapshot theme, styled for the Photo & Social category.The same running-app screenshot rendered in the Pulse theme, styled for the Health data category.

node $SKILL/scripts/cli.mjs app-store home.png --theme stride

Stride

Health & Fitness

Hot orange, condensed all-caps pills, speed stripes and a phone pitched off the vertical.

Every part of this is a value you can change — palette, type, device, pose, decor — from the command line or a theme file of your own.

Video, without
a render farm.

three.js lights a real device model, headless Chrome captures it frame by frame and ffmpeg encodes it. About 15 to 20 frames a second at 1080p on an Apple-silicon GPU, straight to MP4, ProRes with alpha, WebM or GIF.

  • trio

    3D device video

    Three models rise and fan out. Galaxy, iPhone and Pro Max, each with its own screen.

  • desk

    3D device video

    The MacBook lid opens and a phone slides in. Give the slide a desktop screenshot and the laptop shows it.

  • turntable

    3D device video

    The default. A slow turn that loops cleanly for a landing page or a store listing.

  • carousel

    Screen video

    No 3D at all — the screens themselves move. Square for Instagram, vertical for a reel.

  • scroll

    Screen video

    Hand it a tall capture and the page scrolls inside the phone, at the length of the capture.

  • store-preview

    App preview video

    Built from a screen recording at 886×1920, 30 fps, with the silent audio track App Store Connect expects.

  • Formats

    MP4
    H.264, BT.709, faststart — the safe default
    HEVC
    smaller files at the same quality
    MOV
    ProRes 4444, keeps alpha with --transparent
    WebM
    VP9, alpha supported
    GIF
    for a README

    Add music with --audio track.mp3, or pull PNG frames instead of a video with --frames when you just want to check the motion.

What happens
when you ask.

There is no service behind this. Five local steps, each one a tool you probably already have on the machine.

  1. Your screenshots get prepared

    Status bars redrawn to a clean 9:41, tints and duotones applied, tall captures kept whole for scrolling. Screen recordings are split into frames at the output frame rate.

    sharp
  2. A theme poses the shot

    Background, type, decor and device pose come from one theme file. On 3D themes a real device model is lit and turned so the screen still reads at thumbnail size.

    three.js
  3. The page is captured

    Everything is one HTML stage, screenshotted at 2× supersampling for stills or frame by frame for video. The preview studio loads the very same stage, so nothing shifts between preview and export.

    headless Chrome
  4. Frames become a file

    Frames are piped straight into the encoder — H.264, HEVC, ProRes 4444, VP9 or GIF — with the colour conversion handled and faststart set for the web.

    ffmpeg
  5. Files land in your project

    Written to the directory you ran it from. Nothing is uploaded, nothing phones home, and a CREDITS.txt rides along whenever a 3D model appears.

    your folder

Or open the studio
and push it around.

One command opens a local editor on 127.0.0.1. Drop screenshots in, click a headline on the preview to rewrite it, drag the 3D device to turn it, and export when it looks right.

It loads the exact same renderer the command line uses, so the preview is the export. There is no separate preview path that can drift.

node $SKILL/scripts/cli.mjs studio

$SKILL is wherever you installed it — your agent finds it for you. Uploads stay in ./.app-preview-craft/uploads/, and exports land in the folder you started it from.

The app-preview-craft studio: category tabs across the top, five App Store slides previewed in the centre, a theme dock along the bottom and a Style panel on the right with colour and type controls.

Ask for it, or
type it yourself.

Installed as an agent skill, it reads the request and picks the category, theme, sizes and copy. It is also just a command-line tool, so you can skip the agent entirely.

In your agent

  • Make App Store screenshots from ./screenshots — it’s a budgeting app.
  • Turn demo.mov into a 3D phone video for Instagram.
  • Make an og image and an X card for the launch.
  • Render the 6.9" set and the iPad set with the finance theme.

It writes the headlines too, unless you supply them — one benefit per slide, short enough to survive a store thumbnail.

In your shell

  • node $SKILL/scripts/cli.mjs app-store shots/*.png --theme ledger --size iphone-6.9,ipad-13 the required set, two sizes
  • node $SKILL/scripts/cli.mjs device-video home.png demo.mov --theme turntable 3D showcase video
  • node $SKILL/scripts/cli.mjs social-card home.png --theme launch --size og,x-post launch cards
  • node $SKILL/scripts/cli.mjs screen-video flow.mp4 --theme store-preview --size app-preview an App Store preview video
  • node $SKILL/scripts/cli.mjs gallery app-store render a sheet of every theme first
  • node $SKILL/scripts/cli.mjs list options every property you can override

Any theme property can be overridden with --set path=value, a theme file that extends a built-in, or a project config that renders every asset in one go.

Details

Runs on
macOS, Linux, Windows — Node 20+, Chrome/Chromium/Edge, ffmpeg for video
Agents
Claude Code, Codex, Cursor, Copilot, Gemini CLI, OpenCode, Amp, Goose
Stills
PNG, JPEG, WebP, AVIF — 2× supersampled
Video
MP4 (H.264), HEVC, ProRes 4444 with alpha, VP9/WebM, GIF
Speed
Roughly 15–20 frames per second at 1080p on an Apple-silicon GPU
Licence
MIT for the code; the bundled device models stay CC-BY-4.0

Questions

Do I need a subscription?

No. app-preview-craft is MIT-licensed and runs on your own machine. There is no account, no seat, no export cap and no watermark. Install it once and it keeps working offline.

Are my unreleased screenshots uploaded anywhere?

No. Rendering happens locally in headless Chrome. Your screenshots never leave the machine, which matters when the app has not shipped yet and the screens are under embargo.

Does it make the sizes App Store Connect actually requires?

Yes. It renders the 6.9" iPhone set and the 13" iPad set that Connect requires, plus the optional sizes, Google Play phone and tablet, and the 1024×500 Play feature graphic. App preview videos come out at 886×1920, 30 fps, with the silent audio track Connect expects.

Can I use my own brand instead of a built-in theme?

Yes. Every theme property is overridable from the command line, or you can write a small JSON theme that extends a built-in one and set your own palette, fonts and device finish. A project config file can render a whole batch in one command.

What are the 3D device models, and can I publish the renders?

They are Creative Commons BY 4.0 models from Sketchfab. You can publish the renders commercially as long as the attribution travels with them — the tool writes a CREDITS.txt next to every render that includes a device and embeds the credit in video metadata and PNG EXIF.

Do I have to use an AI agent to run it?

No. It is a normal Node command-line tool and it ships a local preview studio you can click around in. The agent skill is a convenience: it lets you ask in plain language instead of remembering flags.

Install it once.
Render every launch.

Node 20 or newer, a Chromium-based browser for the renderer, and ffmpeg if you want video. On first run it installs its own packages and checks the machine.

Claude Code

As a plugin. Run each line as its own command.

claude plugin marketplace add imshaikot/app-preview-craft-skillclaude plugin install app-preview-craft@app-preview-craft

Codex, Cursor, Copilot, Gemini CLI, Amp, Goose

Clone the built skill branch into your agent’s skills folder.

git clone --depth 1 -b skill \  https://github.com/imshaikot/app-preview-craft-skill.git \  ~/.agents/skills/app-preview-craft
Read the source on GitHub

MIT licensed. Fork it, change the themes, ship your own. The 3D models stay CC‑BY‑4.0.