appshot
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Fail
- child_process — Shell command execution capability in packages/create-appshot/index.js
- execSync — Synchronous shell command execution in packages/create-appshot/index.js
- fs module — File system access in packages/create-appshot/index.js
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Generate App Store & Google Play preview videos and screenshots from a simple TypeScript config. Built on Remotion + React + Tailwind. Ships with AI agent skills for Claude Code — scan your app, direct the creative, render to MP4.
Appshot
Generate polished App Store and Google Play preview videos and screenshots — from your app's codebase, not a video editor.
Appshot is a primitives library + AI skill that acts as a creative director: it scans your project, understands your app, and generates custom scene files tailored to your product. No video editing experience required.
Works with Claude Code, Cursor, Windsurf, Codex, and any AI agent that supports the Agent Skills spec.
Supports React Native / Expo, Flutter, Swift (iOS), and Kotlin/Java (Android) projects out of the box — or any app if you provide context manually.
Used in production: BookStreak: Reading Tracker — App Store preview videos and screenshots generated entirely with Appshot.
How It Works
The AI skill generates custom .tsx scene files for each project — no fixed scene templates, no one-size-fits-all layouts:
- Install the skills into your mobile app project
- Ask your AI agent — "Generate App Store and Play Store preview videos for this app"
- The skill scans your codebase — extracts app name, brand colors, icon, features, and store metadata automatically
- You answer a few creative questions — what problem does your app solve? What's the core action? What proof do you have?
- The skill generates custom scenes — writes bespoke
.tsxcomponents using Appshot primitives, wired into a Remotion composition - Preview and render —
npm run devto preview in-browser,npm run buildto export MP4
Every video is unique to your app. The skill picks the right narrative arc, writes copy, chooses animations, and composes scenes from the primitives library below.
Quick mode
Don't want a conversation? Add --quick and the skill makes all creative decisions from your codebase context alone:
Generate an App Store preview video for this app --quick
Install
Install the skills into your app project (recommended):
npx skills add trunghaiy/appshot
This installs three skills into your project's .agents/skills/ directory. Your AI agent picks them up automatically on the next session.
Install specific skills only:
npx skills add trunghaiy/appshot --skill appshot-videos appshot-images
Clone and copy:
git clone https://github.com/trunghaiy/appshot.git
cp -r appshot/skills/* your-project/.agents/skills/
Git submodule:
git submodule add https://github.com/trunghaiy/appshot.git .agents/appshot
Fork and customize — fork this repo and modify the skills, strategies, and templates for your needs.
What You Can Generate
Videos
15-30 second animated preview videos for App Store and Google Play. The skill generates both store versions in one session — same scenes, only the device frame (iPhone vs Pixel) and store badge differ. Each video is unique to your app's story, brand, and features.
Screenshots
Store listing screenshots with device frames, captions, and branded backgrounds. Supports all required App Store and Google Play dimensions.
Skills
| Skill | What it does |
|---|---|
appshot-core |
Foundation — architecture, config schema, component inventory, device presets |
appshot-videos |
Creative director for preview videos — scans your app, guides narrative, generates custom scenes |
appshot-images |
Creative director for screenshots — scans your app, designs layouts, generates custom scenes |
appshot-core is loaded automatically by the other two. You interact with appshot-videos or appshot-images directly.
Manual Quick Start
If you prefer full control without AI skills, scaffold a standalone Remotion project:
# 1. Scaffold
npx create-appshot my-video
cd my-video
# 2. Edit src/app-config.ts with your app's info
# 3. Preview in browser
npm run dev
# 4. Render to MP4
npm run build # Both stores (if configured)
# npm run build:app-store # App Store only
# npm run build:play-store # Play Store only
Real-World Example: BookStreak
BookStreak is a reading habit tracker on the App Store. Its preview videos and store screenshots were generated entirely with Appshot — no CapCut, no Canva, no video editing.
See examples/bookstreak/ for the generated config and scene files.
Components
The primitives library that the AI composes into custom scenes. All components accept brand colors via a brand prop:
| Component | Purpose |
|---|---|
PhoneFrame |
Realistic device with bezel, side buttons, notch/Dynamic Island |
AmbientBackground |
Animated gradient with floating orbs (light/medium/deep/dark) |
Caption |
Bottom caption with word-by-word entrance animation |
FadeIn |
Directional fade-in (up/down/left/right) |
SceneWrap |
12-frame fade transitions between scenes |
HeatMap |
GitHub-style contribution grid |
AppIcon |
Icon with optional glow effect |
AppStoreBadge |
iOS App Store / Google Play badges |
Device Presets
| Preset | Screen | Notch | Store |
|---|---|---|---|
iphone-16-pro |
393x852 | Dynamic Island | App Store |
iphone-15 |
375x812 | Dynamic Island | App Store |
ipad-pro-13 |
1024x1366 | None | App Store (iPad) |
pixel-9 |
412x915 | Punch hole | Play Store |
Config Reference
Everything is driven by src/app-config.ts. The skill generates this for you, but here's the schema if you're customizing manually:
export const appConfig: AppConfig = {
app: {
name: "MyApp",
tagline: "Your tagline",
icon: "app-icon.png", // in public/
platform: "ios", // "ios" | "android" | "both"
},
brand: {
primary: "#007AFF",
primaryLight: "#E5F1FF",
background: "#F5F5F7",
surface: "#FFFFFF",
textPrimary: "#1D1D1F",
textSecondary: "#86868B",
success: "#34C759",
danger: "#FF3B30",
},
video: {
fps: 30,
width: 886, // App Store required: 886x1920
height: 1920,
device: "iphone-15",
},
};
Store Requirements
Videos
| Platform | Dimensions | Duration | Format |
|---|---|---|---|
| iPhone 6.7" | 886x1920 | 15-30s | H.264, MP4/MOV |
| iPhone 6.1" | 886x1920 | 15-30s | H.264, MP4/MOV |
| iPad 13" | 1200x1600 | 15-30s | H.264, MP4/MOV |
| Google Play | 886x1920 | 15-30s | H.264, MP4 |
Default output is 886×1920. This canvas works for both App Store (iPhone 6.7″ native) and Google Play.
Screenshots — iOS App Store
| Device | Dimensions (portrait) | Required |
|---|---|---|
| iPhone 6.9" | 1320x2868 | Yes (mandatory primary) |
| iPhone 6.7" | 1290x2796 | Optional |
| iPhone 6.5" | 1242x2688 | Optional (legacy) |
| iPad 13" | 2064x2752 | Required if app supports iPad |
Screenshots — Google Play
| Device | Dimensions (portrait) | Notes |
|---|---|---|
| Phone | 1080x1920 | Recommended standard |
| 7" Tablet | 1200x1920 | If app targets 7" tablets |
| 10" Tablet | 1600x2560 | If app targets 10" tablets |
Customization
- Custom components — Build on top of the existing primitives in
src/components/ - Screenshots — Use
staticFile("screenshot.png")insidePhoneFrame - Audio — Place
.mp3inpublic/, setbackgroundMusicin config - Category strategies — The video skill includes strategies for habit tracking, fitness, finance, and more. Add your own in
skills/appshot-videos/strategies/
License
MIT
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found