Skip to content

iMark21/ScreenshotFactory

Repository files navigation

Screenshot Factory

Generate professional, framed App Store screenshots with text overlays — in seconds.

Swift macOS License fastlane

  Raw PNGs (UITests)  →  Screenshot Factory  →  App Store Connect
                          + device frame
                          + text overlays
                          + shadows & glow
  • No Swift dependencies — framing engine uses only Apple SDK (SwiftUI ImageRenderer, AppKit)
  • Requires fastlane — for capture (snap) and upload (deliver)
  • Configuration-driven — one screenshots.json defines design, screens, and localized text
  • Full pipeline — capture + frame in a single command
  • 6 ready-to-use templates — dark, light, vibrant, minimal, and more

Setup via AI assistant (recommended)

Install the skill in your iOS project once, then just call it:

Claude Code

npx skills add iMark21/ScreenshotFactory

Then run /setup-screenshots in your project.

OpenCode Copy the skill to your project (one time):

mkdir -p .opencode/skills
cp -r path/to/ScreenshotFactory/.opencode/skills/setup-screenshots .opencode/skills/

Then run /setup-screenshots in your project.

OpenCode also reads .claude/skills/ automatically, so if you already installed the Claude Code skill it works without extra steps.

Codex (OpenAI) The AGENTS.md file at the root of this repo is read automatically. Ask your agent to set up Screenshot Factory.

The skill handles everything: clones and builds this tool if needed, asks the right questions, and sets up your project without touching a single file until you confirm.

To remove everything it created: call /setup-screenshots and say "uninstall".


Manual installation

git clone https://github.com/iMark21/ScreenshotFactory.git
cd ScreenshotFactory
swift build -c release
cp "$(swift build -c release --show-bin-path)/screenshot-factory" /usr/local/bin/

Or as a Swift Package:

.package(url: "https://github.com/iMark21/ScreenshotFactory.git", from: "2.4.0")

Manual project setup

Copy these files to your project:

cp Capture/SnapshotHelper.swift  MyApp/MyAppUITests/
cp Capture/capture.sh            MyApp/fastlane/
cp Capture/pipeline.sh           MyApp/fastlane/
chmod +x MyApp/fastlane/capture.sh MyApp/fastlane/pipeline.sh

Configure fastlane/Snapfile:

project("MyApp.xcodeproj")
scheme("MyApp")
devices(["iPhone 17 Pro Max"])        # Add "iPad Pro 13-inch (M5)" if needed
languages(["en-US", "es-ES"])
launch_arguments(["--screenshot-mode"])
output_directory("./fastlane/screenshots")

Start from a template:

cp Templates/dark-teal-accent.json fastlane/screenshots.json

Edit fastlane/screenshots.json — add your app's texts per locale and adjust colors. Then run:

./fastlane/pipeline.sh            # capture + frame

Or frame only (if raw screenshots already exist):

screenshot-factory \
  --config fastlane/screenshots.json \
  --input  fastlane/screenshots/ \
  --output fastlane/screenshots_framed/

Templates

Template Style Best for
dark-teal-accent Dark bg + per-screen accent {words} Games, social, entertainment
space-navy Deep navy/indigo shifting per screen Meditation, lifestyle, health
obsidian-minimal Pure black, white text, alternating layout Premium, e-commerce, productivity
dark-atmospheric Moody single dark gradient Atmospheric, immersive apps
light-clean White/gray bg, dark text Utilities, tools, professional
vibrant-gradient Bold diagonal color gradient Fitness, social, creative

Use {word} syntax in keyword text to highlight a word in the accent color:

"keyword": "Keep track of your {goals}"

App Store required sizes

Key Device Size
iPhone_6.9 iPhone 17 Pro Max 1320 × 2868
iPad_13 iPad Pro 13" (M5) 2064 × 2752

Apple auto-scales to smaller devices. Each device class needs its own raw captures — never reuse iPhone screenshots for iPad.


Requirements

  • macOS 13+
  • Swift 5.9+ (Xcode 15+)

License

MIT — see LICENSE.

About

Generate professional, framed App Store screenshots with text overlays. Zero dependencies — Swift Package (Library + CLI).

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors