Design beautiful App Store & Google Play screenshots, right from your desktop.
A powerful, cross-platform screenshot design tool built with Flutter. Create stunning App Store Connect and Google Play Store screenshots with device frames, dynamic overlays, AI-powered translations, and direct upload to App Store Connect.
- Multi-Instance Editing — Edit multiple screenshot designs simultaneously in a side-by-side view
- Dynamic Overlays — Text, Image, and Icon overlays with rich styling, snap-to-grid, and inline editing
- AI-Powered Translation — Automatically translate all design elements to any locale
- Per-Locale Customization — Fine-tune layouts and styles per language through a comprehensive override system
- Device Frames — Render screenshots inside realistic device frames (iPhone, iPad, Mac, Watch, Android, etc.)
- App Store Connect Upload — Upload screenshots directly to ASC from the app
- iCloud Sync — Sync designs across devices via iCloud
- Export & Share — Export as PNG, copy to clipboard, or share designs as
.appshotsfiles - Keyboard Shortcuts — Full keyboard shortcut support for power users
- Dark Mode — Beautiful dark and light themes
brew tap truongduy2611/tap
# Desktop App
brew install --cask app-screenshots
# CLI
brew install appshotsPrerequisites: Flutter SDK ^3.10.8 · macOS, Windows, or Linux
git clone https://github.com/truongduy2611/app-screenshots.git
cd app-screenshots
flutter pub get
flutter run -d macos # or: -d windows / -d linuxTo build for iOS or macOS, create your personal signing config:
# iOS
cp ios/Flutter/Team.xcconfig.example ios/Flutter/Team.xcconfig
# macOS
cp macos/Runner/Configs/Team.xcconfig.example macos/Runner/Configs/Team.xcconfigEdit each Team.xcconfig and set DEVELOPMENT_TEAM to your Apple Team ID. These files are git-ignored so your credentials stay local.
The app follows a Feature-Driven Architecture using BLoC for state management and GetIt for dependency injection.
lib/
├── core/ # Shared infrastructure
│ ├── di/ # Dependency injection (GetIt)
│ ├── services/ # iCloud sync, file handling, logging
│ ├── theme/ # App theme (light/dark)
│ ├── widgets/ # Shared UI components
│ ├── extensions/ # Dart extensions
│ └── utils/ # Utilities
├── features/
│ ├── screenshot_editor/ # Main editor feature
│ │ ├── data/ # Models, services, ASC API, presets
│ │ ├── domain/ # Repositories (abstract)
│ │ ├── presentation/ # Cubits, pages, widgets
│ │ └── utils/ # Editor-specific utilities
│ └── settings/ # App settings
│ ├── data/ # Settings persistence
│ ├── domain/ # Settings contracts
│ └── presentation/ # Settings UI
├── l10n/ # Localization (ARB files)
├── app.dart # App widget
├── home_screen.dart
└── main.dart # Entry point
packages/
└── device_frame/ # Local package: device frame rendering
| Cubit | Responsibility |
|---|---|
ScreenshotEditorCubit |
Design state, overlays, undo/redo, snap-to-grid |
ScreenshotLibraryCubit |
Saved designs, folders, import/export |
TranslationCubit |
AI translation, locale preview |
AscUploadCubit |
App Store Connect screenshot upload |
ThemeCubit |
Light/dark theme |
BackupCubit |
iCloud backup management |
| Shortcut | Action |
|---|---|
⌘/Ctrl + S |
Save design |
⌘/Ctrl + E |
Export screenshot |
⌘/Ctrl + G |
Zoom to fit |
⌘/Ctrl + U |
Upload to App Store Connect |
⌘/Ctrl + C |
Copy canvas to clipboard |
⌘/Ctrl + Z |
Undo |
⌘/Ctrl + ⇧ + Z |
Redo |
Delete |
Remove selected overlay |
Esc |
Deselect overlay |
The app includes a powerful CLI (appshots) for full programmatic control — perfect for AI agents, CI pipelines, and scripted workflows.
# Install the CLI
dart pub global activate --source path packages/app_screenshots_cli
# Quick examples
appshots status # Check app is running
appshots editor state # View current design
appshots editor set-background --color "#0A0A1A" # Set background
appshots editor add-text --text "Hello" --font "Poppins" --size 90 --align center --width 1100
appshots multi open --display-type APP_IPHONE_67 # Open multi-editor
appshots translate all --from en --to ja,ko,de # AI-translate
appshots editor export-all --dir ~/Desktop/shots # Export all50+ commands across 6 categories: editor, multi, translate, library, preset, status.
📖 Full CLI reference: packages/app_screenshots_cli/README.md
Drop-in skills that teach AI agents (Gemini, Cursor, etc.) how to use the CLI for automated screenshot design. Includes research-backed design guidelines, step-by-step workflows, and best practices.
Contributions are welcome! See CONTRIBUTING.md for details.
This project is licensed under the MIT License — see LICENSE for details.
Special thanks to Rudrank Riyam and the App Store Connect CLI project for inspiring the creation of this open source tool. 🎉
- device_frame — Device frame rendering (included as local package)
- flutter_bloc — State management
- get_it — Dependency injection