Welcome to Screenshot Bro
Beautiful App Store and Google Play screenshots, made on Mac, iPad, and iPhone.

Screenshot Bro turns raw device screenshots into polished, store-ready marketing images. Drop in a screenshot, pick a device frame, add a headline, and export at exactly the resolution the App Store and Google Play expect.
Three things to know first
- Projects hold one screenshot set per app — usually one project per app, or one per major release.
- Rows inside a project group screenshots by device type (iPhone, iPad, Android phone, etc.). Each device size gets its own row because the App Store requires different resolutions.
- Templates are the columns inside a row — the individual screenshots you'll submit. Most apps need 3–10 templates per row.
A typical workflow
- Create a new project from a template, or start blank.
- Drop your raw device screenshots onto templates or rows — Screenshot Bro fills them in order and detects the device category and frame where possible.
- Pick a device frame, add a headline, choose a background, and arrange shapes.
- Add the languages you support — translate text once and let the layout follow.
- Export. You'll get a folder organized by language and device, ready to upload — or upload straight to App Store Connect or Google Play from inside the app.
New here? How to use Screenshot Bro walks that workflow step by step, with a screenshot of the app at each stage. This page is the reference behind it.
If this is your first time, an interactive tour walks you through the editor when your first project opens. To run it again later, use Settings ▸ General ▸ Editor tour ▸ Replay Tour.
Projects
One project per app — or per major release.

A project is a self-contained collection of rows, templates, shapes, languages, and image resources. Projects are stored on disk under your user Application Support folder and can be optionally synced via iCloud Drive.
Creating a project
- File ▸ New Project… (⌘N) opens the New Project window.
- Choose Blank to set up rows and screenshot sizes manually, or Template to start with a pre-designed layout.
- Templates are grouped by style — Minimal, Playful, Editorial, Gradient, Colorful, Dark and Device Showcase. Almost all come with iPhone, iPad and Android rows; a card lists its devices when it covers fewer. Double-click a card to create the project straight away.
- In Blank mode, pick the device categories you want — each one becomes a row with the right default screenshot size for the App Store / Play Store.
Switching between projects
- Use the project picker in the toolbar to jump between projects.
- Starred projects float to the top of the picker. The rest follow the order set in Settings ▸ General.
- Project order can be set to By creation date or Alphabetically in Settings ▸ General.
Renaming, duplicating, deleting
- Right-click a project card on the Projects screen for Rename…, Star Project, Duplicate…, and Delete….
- The toolbar's ⋯ menu carries the same actions for the project you have open, plus Reset Project… (empties it) and Reset Project from Template ▸ … (replaces its contents with a starter theme).
- App Store ▸ Update Metadata… opens the App Store Connect wizard in metadata-only mode, so you can edit a version's store text without uploading a single screenshot.
- Deleted projects are kept as tombstones for 30 days so iCloud sync can resolve conflicts cleanly. After 30 days the tombstone (and all images) are purged.
Project File
- Show in Finder reveals the project's folder.
- Copy Project File Path copies the path of its
project.json— handy in a bug report. - Copy AI Localization Prompt copies a ready-made prompt describing every text shape in the project, to hand to an AI assistant when you would rather translate outside the app.
Where projects live on Mac
~/Library/Application Support/screenshot/projects.json— index of all projects.~/Library/Application Support/screenshot/projects/<uuid>/project.json— project data. See the Project File Schema for the full format.~/Library/Application Support/screenshot/projects/<uuid>/resources/— imported images, screenshots, and SVGs.
If your projects look like they vanished
- Project names live in the
projects.jsonindex. If it goes missing, Screenshot Bro rebuilds it by scanning the project folders, so your work comes back rather than appearing deleted. - A project last saved by an older version (before 4.9 on Mac, 4.10 on iPad and iPhone) has no copy of its name outside that index, so a rebuilt entry appears as Recovered Project. Rename it and the name sticks from then on.
- An index that exists but can't be read is moved aside to
projects.json.corruptrather than deleted, so nothing is lost. - With iCloud sync on, the rebuild is deliberately skipped — an iCloud index can read as missing while the container is still downloading, and rebuilding then would rename every project on every device. Screenshot Bro waits and picks up the real index instead, usually within a launch or two.
Projects autosave 0.3 seconds after the last change — you never need to save manually. To make a one-off backup, use Settings ▸ General ▸ Storage ▸ Create Backup….
Rows
One row per device type.

Rows are horizontal groups of screenshots inside a project. Each row has its own screenshot size (in pixels), device category, and a row-level background. The App Store requires separate uploads per device size — that's why rows exist.
Adding rows
- Click the dashed + tile at the bottom of the canvas (Add new row), or use the inspector when no row is selected.
- Choose a device category: iPhone, iPad Pro 11", iPad Pro 13", MacBook, Android Phone, Abstract Pixel 9, Android Tablet, or Invisible (an abstract layout with no visible frame).
- Each category sets the row's default screenshot pixel size to a value the relevant store accepts.
Row inspector
- Select a row (click empty canvas space inside it) to reveal row-level controls in the inspector.
- The inspector's controls are grouped into collapsible sections. Click anywhere on a section's header to open or close it; hold ⌥ while clicking to open or close every section at once. How you leave them is remembered.
- With Edit selected shapes in the inspector turned on in Settings, selecting a shape swaps these controls for the shape's own. Click the row name at the top of the inspector, or press Esc, to come back.
- The row's name — shown at the top of the inspector — names the folder this row exports into. Double-click the name in the row header to rename it in place.
- Screenshot Size — Presets lists the resolutions each store accepts, grouped by device. Switch to Custom to type any size from 100 to 5000 px.
- For iPhone Duo, pick iPhone Duo Inner Display (2007×2853, the device open) or iPhone Duo Outer Display (1398×2034, closed). Screenshots at either size drop into the matching iPhone Duo frame.
- Orientation flips the row between portrait and landscape by swapping width and height.
- Background — color, gradient, or image, plus a Blur slider. See the Backgrounds section.
- Project Colors — the palette button next to a color well opens this project's saved colors. + saves the current color, click a swatch to apply it, and right-click to remove one. Document Colors below lists the colors the project already uses.
- Stretch across all screenshots — when on, the background spans the entire row width across all templates. When off, every template paints the same background independently. It needs at least two templates.
- Visibility — hide a whole shape type (all text, all devices, all SVGs…) in this row, with Show All / Hide All to flip every type at once. Hidden types are left out of the export too, not just the editor. Borders draws the divider lines between templates and is editor-only.
- Exclude when uploading to App Store Connect — keeps the row in your project and in folder exports, but leaves it out of an App Store Connect upload. Useful for an Android row, or a row you are still working on.
Collapse, edit, preview
- The chevron at the left of the row header collapses the row down to its header and expands it again. Collapsing is purely a view state — it changes nothing about the row and nothing about the export.
- The pencil / eye switch in the row header flips the row between editing and preview.
- Preview drops every handle, guide, and divider and lays the templates out as separate rounded tiles with a gap — the way a store listing shows them.
The row menu
- Add Screenshot and Add Element — add a template column or a shape without leaving the header.
- Duplicate Row, Add New Row Above / Below, Move Row Up / Down.
- Export Row — Screenshots, Continuous, or Showcase, for this row alone.
- Devices — show or hide all frames, Center All of them, Change All To another model in one step, or Reset All Images to clear their screenshots.
- Delete all removes every shape of one type. Reset Row empties the row; Delete Row removes it.
Reordering and deleting
- Reorder rows with Move up / Move down — the chevrons that appear when you hover a row header, or Move Row Up / Move Row Down in the row menu.
- ⌘D duplicates the selected row. Duplicate Row is in the row menu too.
- Delete rows from the row header or row menu. Settings ▸ General has a confirmation toggle.
On the Free tier a project holds up to 3 rows. Upgrading to Pro removes this limit — see Free vs Pro.
Templates
The individual screenshots inside a row.

Each column inside a row is a template. A template is one final exported image — its dimensions match the row's screenshot size. The App Store accepts up to 10 templates per row; Google Play up to 8.
Adding templates
- Click the dashed + at the right end of the row (Add screenshot), or choose Add Screenshot from the row menu.
- New templates inherit the row's background and dimensions.
- Reorder with Move Left / Move Right in the template control bar (also in its ⋯ menu). The order decides the exported file numbering.
Per-template controls
- The Template Control Bar below each template lets you override the row background just for that template — including a Blur slider for gradient and image overrides.
- The bar shows as many buttons as fit. Zoom out or narrow the window and it drops the lower-priority ones, so a control can seem to disappear — the ⋯ menu is never dropped and always holds the full set.
- Drop a screenshot directly onto a template to attach it as the device screenshot.
- The ⋯ menu (More actions) offers per-template actions: Quick Look, Save as PNG…, Move Left / Move Right, Add Screenshot Before / After, Duplicate Screenshot ▸ Place After This One / Place at End, and Delete Screenshot.
How shapes relate to templates
- Shapes (text, images, devices, etc.) live on the row canvas — the unified area behind all templates in a row. A shape can be positioned to land entirely inside one template, or to span across templates.
- On export, each template is clipped to its own bounds, so a shape that spans templates will appear on each of them at the right horizontal offset.
- This is what makes layouts like a single headline that flows across two screenshots possible.
Free tier limit: 5 templates per row. Pro removes this limit — see Free vs Pro.
Shapes & Text
Build the layout with rectangles, circles, stars, text, images, devices, and SVGs.

Most shape settings live in the properties bar along the bottom of the window. It appears only when at least one shape is selected on the canvas — selecting a row is not enough — and its controls change to match the kind of shape you picked.
Prefer a sidebar? Turn on Edit selected shapes in the inspector in Settings ▸ General. The same controls then move into the inspector as collapsible sections (hide the inspector and the bar comes back), a multi-selection gets align and distribute buttons, and the Insert menu in the toolbar adds shapes.
Adding shapes
- Use the Shapes dropdown in the inspector to add a Rectangle, Circle, or Star.
- Buttons next to it add Text, Image, Device, or SVG elements.
- New shapes are placed at the center of the active template and immediately selected.
Text
- Double-click a text shape to edit inline. Press Esc or click outside to commit.
- With a text shape selected, the properties bar shows font, weight, size, color, horizontal and vertical alignment, line height, and letter spacing. An imported family offers only the weights and italics it actually ships.
- Italic and Uppercase toggle the whole shape. Uppercase is display-only — the text you typed is unchanged, so translations still read normally.
- Fill can be a solid color or a gradient across the letters, and Outline draws a stroke around them. A gradient replaces any colors set on parts of the text.
- Shrink to Fit scales the text down just enough for every line to fit its box. It is worked out per language, so a long German translation shrinks while the English headline stays full size.
- Double-click the letter-spacing value to snap it back to the default.
- Rich text: while editing, select part of the text and use the format bar for bold, italic, underline, strikethrough, a different size, or a different color — per run, inside one shape. Clear formatting returns the selection to the shape's base style.
- Background in the properties bar (Text Background in the inspector) turns a headline into a badge: pick Solid, Pill, Outline, or Highlight, then tune color, padding, corner radius, opacity, and an outline.
- Copy Text Style / Paste Text Style (right-click) carry a text shape's whole look onto another one, or onto every selected text shape at once.
- Text auto-grows vertically by default. Drag a side handle to fix the width and let it wrap.
- Custom fonts: choose Pick custom font from the text font picker to import
.otf/.ttffiles.
Image
- Select the shape, then click the image well in the properties bar to pick a file, or drag and drop directly onto the shape.
- Fill modes: Fill (crop to fit), Fit (letterbox), Stretch (distort), Tile (repeat). Tile mode unlocks spacing, offset, and scale controls.
- Crop: double-click an image (or use Crop in the properties bar) and drag or use the arrow keys to move the picture inside its frame; the zoom slider next to Crop enlarges it. A locked image can't be cropped. Press Return or Esc, click Done, or click elsewhere, to finish. Reset Crop (right-click) shows the whole picture again.
- While cropping, the corner and edge brackets trim the frame and the picture stays where it is. The dashed outline shows how far each edge can go.
- Remove Background (right-click) cuts the subject out of the image, entirely on your Mac — nothing is uploaded anywhere.
- Restore Original Aspect Ratio (right-click) undoes stretching by fitting the height to the current width.
- Show in Finder (right-click an image, or a device that has a screenshot in it) reveals the picture file the project is using.
Device
- Device shapes render the screenshot inside a real device frame. Select one, then pick a category and model in the properties bar.
- Drop a screenshot onto the device to attach it. The image is automatically clipped to the screen area.
- Each model has color variants and (where applicable) a landscape variant.
- Match Size to Other Devices (right-click a single device) resizes the row's other devices of the same category to match this one. With several devices selected, the command becomes Match Size to Selected Devices and resizes just those.
- Invisible category shows the screenshot with no bezel — useful for clipped or abstract designs.
- On the abstract Android frames, a Camera toggle shows or hides the camera cutout.
SVG
- Click SVG to import a vector file, pick one of the bundled presets, or paste raw markup via the SVG paste dialog.
- SVGs render with a configurable color override and scale crisply at any export resolution.
- Replace SVG… (right-click, or in the properties bar) swaps in new artwork and keeps the shape's position, rotation, color, and effects. The frame narrows to fit the new artwork's proportions.
- During resize, rendering is debounced for performance — release the mouse to see the final crisp output.
Common properties
- X, Y, W, and H at the head of the properties bar set position and size by hand. X is measured from the left edge of the template the shape sits in. Every device except an invisible frame keeps its proportions, so typing a width adjusts the height to match.
- The Fill swatch opens the same editor a background uses, so a rectangle, circle, star, or text badge can take a gradient or an image, not just a flat color.
- Opacity, rotation (in degrees, editable as text), border radius, outline (color + width), and Clip to Frame (clips anything that overflows the template).
- Drop shadow — select a shape, then click Shadow in the properties bar and pick Soft, Medium, or Strong, or set color, Blur, Offset X, Offset Y, and opacity by hand. Reset restores the defaults. It works on a multi-shape selection too.
- Lock — select a shape and choose Edit ▸ Lock (⌘L), or right-click it ▸ Lock. Clicks and drags then pass straight through it; a locked shape's only right-click item is Unlock.
- Z-order: ⌘⇧] brings forward, ⌘⇧[ sends back.
Editing several shapes at once
- Select more than one shape and the properties bar switches to a multi-selection bar showing how many are selected.
- When they are all the same kind it offers that kind's controls too, and applies each change to every shape: Change Device for devices, font / weight / color / alignment / Italic / Uppercase for text, corner radius, star points, SVG custom color, outline, shadow, opacity, rotation, and Clip to Frame.
- Z-order, duplicate, and delete act on the whole selection.
Devices & Frames
Real device frames with accurate screen insets.

Device frames wrap your screenshot in an authentic device bezel. Screenshot Bro ships pixel-accurate frames for iPhone, iPad, Mac, Apple Watch, and Android-style layouts.
Frame families
The model picker groups frames into families, which are not the same list as the device categories you pick when adding a row. A Watch frame, for example, lives in the Watch family but sits in a row whose category is something else — so don't go looking for Watch in the Add Row list.
- iPhone — iPhone 18 Pro, iPhone 18 Pro Max, iPhone Duo, iPhone 17, iPhone Air, iPhone 17 Pro, and iPhone 17 Pro Max with their color variants, plus 3D iPhone options.
- iPad — iPad Pro 11" and iPad Pro 13", current generation with portrait and landscape.
- Mac — MacBook Air 13", MacBook Pro 14", MacBook Pro 16", and iMac 24".
- Android — Android Phone, Abstract Pixel 9, and Android Tablet: abstract frames that flex to match the aspect ratio of any dropped screenshot.
- Watch — Apple Watch Ultra 3 frame variants.
- Other — Invisible: no visible bezel, just the screenshot. Useful for clipped layouts or abstract designs.
Picking a model and color
- With a device shape selected, click the device thumbnail in the properties bar to open the picker.
- Models are grouped by category. Each shows available colors as small swatches.
- Switching color preserves the screenshot and any rotation.
Landscape mode
- Concrete frames with portrait and landscape variants switch to the matching orientation when Screenshot Bro can infer it from a dropped screenshot.
- Use the orientation control for supported frames, or the rotation control to rotate the entire shape including frame and screen content.
3D device models (Beta)
- Models marked (3D) — iPhone 17 and iPhone 17 Pro Max — are rendered from real geometry rather than a flat bezel image.
- Click 3D in the properties bar to open the 3D Device popover (or use the 3D Device section of the inspector): Pitch and Yaw rotation, a Matte or Glossy finish, and Ambient / Key / Rim lighting.
- Reset all returns rotation, material, and lighting to their defaults.
Image-based vs programmatic frames
- Most modern devices use image-based frames — high-res PNG bezels with precise screen insets defined per model.
- Some abstract categories use programmatic frames rendered as SwiftUI shapes. They scale flawlessly to any resolution.
- Both render identically in the editor preview and in the exported PNG.
If you drop a screenshot onto an empty template (not a device shape), Screenshot Bro creates a device shape automatically using the row's category and the right model based on the screenshot's pixel size.
Backgrounds
Color, gradient, or image — at row or template level.

Three styles
- Color — a solid fill picked from the inline color picker.
- Gradient — Linear, Radial, or Angular. Edit color stops, angle, and (for Radial / Angular) the center point.
- Image — bring in any PNG / JPEG / SVG. Pick a fill mode and tweak opacity.
Gradients
- Linear: set the direction with the angle wheel, or with the eight one-click angle presets next to it.
- Editing stops: click anywhere on the gradient bar to insert a stop in the color it already shows there, drag stops to move them, click one to change its color, and remove it with the − button or the Delete key. Two stops is the minimum.
- Reverse gradient flips the stop order in one click.
- Radial: a circular gradient with an editable center point and an end radius derived from the canvas size.
- Angular: a sweep gradient rotating around the center.
- Gradient presets: pick from the gallery of 16 presets to apply tested stop combinations.
Image fill modes
- Fill — scales to cover; crops anything that doesn't fit.
- Fit — scales so the whole image is visible; leaves transparent letterbox bars.
- Stretch — fills exactly, distorting aspect if needed.
- Tile — repeats the image, with spacing, offset, and scale adjustable independently for the horizontal and vertical axes.
A different image per language
- Switch to another language and click Replace (or drop an image) to give that language its own background image. Fill mode, opacity, tiling and blur stay shared with the base language.
- Works for the row background and for a template's Override background. The button under the preview, named after your base language (for example Use English Image), goes back to the base language's image.
Row vs template backgrounds
- By default a row's background applies to every template in the row.
- Stretch across all screenshots (row toggle): when on, gradients and images render once across the entire row, so a single horizon or gradient flows across all templates.
- Override background in the template control bar sets a unique background that replaces the row's default just for that template.
Spanning is great for storytelling: a sunset gradient or a single panoramic image can stretch across three templates and tell a continuous visual story in the App Store carousel.
Editing on the Canvas
Drag, resize, rotate, snap.

Selection
- Click a shape to select it. Shift-click to add to or remove from the selection.
- Drag from empty canvas to sweep a selection box over several shapes at once. Hold ⇧ as you start the drag to add them to the current selection. Locked shapes are skipped.
- ⌘A selects every shape in the active row.
- Esc deselects shapes; press again to deselect the row.
- Click empty canvas inside a row to select the row itself and reveal row-level inspector controls.
- While a non-base language is active, an amber border frames the whole editor so an override is never made by accident.
Move, resize, rotate
- Drag the shape body to move. Drag a corner or edge handle to resize.
- Drag the rotation handle (above the shape) to rotate freely, or hold ⇧ while dragging it to snap to 15° steps. Type a degree value into the rotation field for exact control.
- Hold ⇧ while resizing to lock aspect ratio. Device frames other than Invisible always keep their proportions, with or without ⇧.
- Hold ⌥ while dragging to duplicate the shape as you move.
Snapping & alignment guides
- Shapes snap to other shapes' edges and centers, and to template boundaries, within a 4px threshold.
- Blue alignment guides appear while moving or resizing to show which edges are aligned.
Align, distribute, match
- Right-click a multi-shape selection ▸ Align Selected for left / center / right, top / middle / bottom, plus Distribute Horizontally and Distribute Vertically.
- Match to This copies the shape you right-clicked — its Position, its Size, or both — onto the rest of the selection.
- Center places a shape vertically, horizontally, or at the exact center of its screenshot.
- Duplicate ▸ To All Screenshots on the Left / Right / All copies a shape into the other templates in the row at the same relative spot — the quickest way to repeat a logo or a footer.
Locking
- Edit ▸ Lock (⌘L) locks or unlocks the selection; Lock is on the right-click menu too. Locked shapes can't be dragged, resized, or deleted, and clicks fall through to whatever is behind them.
- Right-click a locked shape and choose Unlock to get it back.
Double-click
- Double-click a text shape to edit it in place.
- Double-click a device shape, or an empty image shape, to open the picker and swap its picture.
- Double-click an image shape that has a picture to crop it: drag to reposition, then press Return.
Copy and paste
- ⌘V pastes at the pointer — an image from the system clipboard becomes a new image shape where the mouse is, and shapes copied inside the app land there too, carrying their translations and images with them.
Nudge
- Arrow keys nudge the selection by 1px.
- ⇧ + Arrow nudges by 10px.
- While cropping an image, the arrow keys move the picture inside its frame instead.
Pan & zoom
- Scroll vertically to navigate rows. Hold the middle mouse button and drag to pan.
- ⌘+ / ⌘− zoom in/out, ⌘0 resets to the default zoom, F focuses on the current selection. Trackpad pinch and ⌘ + Scroll also zoom.
- The toolbar zoom control ranges from 25% to 300% in 25% steps, with Fit to Editor and Actual Size actions in its popover.
If a shape spans across templates and you only see part of it, that's expected — each template clips shapes to its own bounds. Use F to focus on the whole shape.
Languages & Translations
Translate text once, lay it out once, ship every language.

Languages let you generate localized screenshot sets without duplicating your project. Each language shares the same shape set and can keep its own text, text styling, image assignments, and layout adjustments where a translation needs more space.
Adding languages
- Open the language button (the flag) in the toolbar, or the top-level Language menu in the menu bar — which also lists every language you've added, so you can jump straight to one.
- Manage Languages… opens the full list, with a translated/total badge per language: green when complete, orange when something is still missing.
- Pick from the 81 built-in language presets, or define a custom code.
- The first language you add is the base language — the one whose text is the source of truth.
- You can change which language is the base. In Manage Languages, drag a language to the top of the list, or right-click it and choose Set as Base. Every other language is re-anchored to it.
Switching the active language
- ⌘] / ⌘[ cycle forward / backward through languages.
- ⌘⌥0 jumps back to the base language.
- When editing a non-base language, a banner appears at the top of the canvas reminding you which language you're in.
How translations work
- In a non-base language, edits are saved as per-language overrides — they don't change the base language.
- Text content and styling, image replacements, and position/size adjustments can all differ by language. Shared properties such as colors and device choices are edited in the base language.
- An image's Crop can differ by language too, so a translated screenshot can be framed on its own.
- A background image can differ by language: replace it while that language is active. See the Backgrounds section.
- If a language has no override for a shape, it falls back to the base language's content.
Seeing what a language overrides
- In the inspector, every control this language overrides is tinted amber, so you can see at a glance what differs from the base language. The properties bar tints the position, size and image controls the same way.
- A section header shows an amber count when properties inside it are overridden — so a collapsed section still tells you something is there.
- The selected shape's summary sits beside its name at the top of the inspector: the language and how many properties it overrides. Its reset button opens a menu listing each overridden property, so you can put one back to the base language or reset them all.
- Each row header shows an amber count of the shapes that language overrides; click it to select them.
- Hovering a shape the current language overrides outlines it in amber instead of the usual accent color.
Translation helpers
- Auto-Translate Missing Text — fills in text shapes that don't yet have an override for the current language.
- Re-Translate All Text… — replaces every existing override with a fresh translation. Use after editing the base language's text.
- Translate Selected to All Languages — appears in the language bar when editing the base language with text shapes selected. Translates the selection into every other language at once.
- Revert to Base Language… — drops all overrides for the current language, falling back to base text everywhere.
- Edit Translation Table… — a side-by-side editor showing every text shape with its base content and per-language overrides. Hover a cell for per-cell Translate and Reset actions.
- A translation that carries rich formatting shows in that table as read-only, marked *Formatted — edit on the canvas*. Mixed bold, colors, or sizes can't survive a plain text field, so edit those on the canvas instead.
- Text that is too long for its box loses its last lines. Such a shape shows a dashed orange outline with a warning badge on the canvas, its cell in the translation table says *Doesn't fit*, and the App Store Connect and Google Play upload checks list it as a warning. Enlarge the box, shorten the text, or turn on Shrink to Fit.
- With a text shape selected, the globe button in the properties bar shows the base text and one editable row per language, plus Translate into All Languages, a per-language reset, and Reset All Translations.
- Reuse Translation (right-click a text shape) links it to another string, so both share one base text and one set of translations. A headline repeated across templates is then translated once.
- Right-click ▸ Localization translates just that shape into the current language or into all of them, or resets its translations.
Exporting with languages
- On export, Screenshot Bro creates one folder per language, then sub-folders per row. The structure matches what App Store Connect's localized screenshot uploads expect.
Importing
Drop screenshots, images, fonts, and SVGs.

Screenshots
- Drag and drop a PNG / JPEG onto a template to attach it as a device screenshot. A device shape is auto-created if needed.
- If a drop can't be read — a corrupt image, or SVG markup Screenshot Bro can't parse — it says so instead of silently doing nothing.
- Batch import: drop multiple screenshots onto a row. Screenshot Bro fills existing device shapes in template order, then appends templates as needed.
- Import Localized Screenshots… (row ▸ ⋯ menu, or drop a folder onto a row) takes a folder with one subfolder per language, such as a fastlane
screenshotsfolder withen-USandde-DE, and gives each language its own screenshots in one step. Images whose size doesn't match the row are skipped, and a subfolder for a language the project doesn't have can be added as you import. One Undo reverts the whole import. - Recognized screenshot dimensions are used to pick an appropriate device category or frame when possible.
Background images
- Drop directly into the background image well in the inspector, or pick via the file dialog.
- Both raster and SVG images are supported as backgrounds.
SVG paste
- Use the SVG button in the shape toolbar to open the paste dialog.
- Paste SVG markup directly. Width and height are auto-detected; you can override them.
- SVGs are sanitized — script and event handlers are stripped before rendering.
- Drop several SVGs at once and they cascade slightly apart instead of stacking on one spot.
Custom fonts
- Open a text shape's font picker and choose Pick custom font to import
.otf/.ttffiles or a folder of font variants. - Imported fonts are bundled with the project so they survive iCloud sync and project transfer.
Dropping a folder or a group of image files onto a row is the fastest way to fill a screenshot set in order.
Exporting
Produce store-ready PNGs and JPEGs.

Quick export
- Click Export in the toolbar, or press ⌘E, to render the current project to the remembered export folder. If no folder is set, Screenshot Bro asks you to choose one.
- Use the export menu for Export All Screenshots to Folder…, row exports, Export Locale for a single language, Open Export Folder, and direct upload to App Store Connect or Google Play.
- A long export shows a progress overlay you can cancel — nothing half-written is left behind.
- File names are zero-padded (
01_…,02_…) so they sort correctly when uploaded.
Three ways to render a row
- Screenshots — one image per template. This is what the stores want.
- Continuous — the whole row as one wide image, templates side by side.
- Showcase — a marketing composition of the row on a styled background. See Showcase Export.
- All three are in the export menu (for every row) and in a row's Export Row menu (for that row alone).
What actually gets exported
- Only what you see. Shape types switched off in the inspector's Visibility section are left out of the exported image too.
- Template borders, alignment guides, and selection handles are editor-only and never exported.
- If an image file a screenshot needs can't be read, the frame renders empty and the export ends with Some Images Are Missing rather than a plain success — a blank device frame otherwise passes every check right up to the store.
Format and naming
- Settings ▸ Export ▸ Format: PNG or JPEG. PNG is recommended for marketing screenshots.
- Custom filename suffix: add a suffix to every exported screenshot filename.
- Settings ▸ Export ▸ File layout: fastlane writes one folder per App Store language (
en-US,de-DE) with files numbered across rows, so the export folder drops straight into fastlanedeliver. - Exports use the row's exact pixel dimensions so App Store and Google Play sizes stay correct.
Folder structure
- With one language and one row: a flat folder of templates.
- With multiple languages: a top-level folder per language.
- With multiple rows: a sub-folder per row label (e.g.
iPhone 6.9",iPad 13").
Export folder memory
- Set Settings ▸ Export ▸ Export folder to make ⌘E export directly without prompting.
- Toggle Reveal in Finder after export in Settings to auto-reveal the result.
Preview vs export
- The pencil / eye switch in a row header lays the row out as a store-style carousel with no editing chrome — the fastest check that a set reads well together.
- Use the Preview button in the template control bar (or Quick Look in its ⋯ menu) to preview fully rendered screenshots without going through the export flow.
Showcase Export
Turn a row of screenshots into one marketing image.

A showcase arranges a row's screenshots side by side on a styled background and renders them as a single image — for a product page, a launch post, a README, or an ad. It doesn't replace store screenshots; it's the picture you post *about* them.
Opening it
- Export menu ▸ Export Rows ▸ Showcase for the whole project, or a row menu ▸ Export Row ▸ Showcase for one row.
- The sheet previews the result live as you change settings.
- Pick which rows to include (with All / None), then use the numbered chips to drop individual screenshots from the composition — the counter shows how many of the row's screenshots are in.
- Format, size, layout and background are remembered from your last showcase export, including a picked background image.
- Reset to defaults restores the layout settings and leaves your row selection alone.
Shape and size
- Format presets: Social (1.91:1), Square, Portrait (4:5), Story (9:16), YouTube (16:9), and Pinterest (2:3).
- Output Size: Original, X-Large (4000 px), Large (2400 px), Medium (1600 px), or Small (1200 px) on the longest edge.
- Gap, Padding, and Corner Radius are percentages of the canvas, so a layout keeps its proportions at every output size.
Background
- The same editor as a row background: color, gradient, or image, with every fill mode. See Backgrounds.
Export the same row twice — once as Story for a 9:16 post and once as Social for the link preview. The layout adapts to each aspect ratio instead of being cropped.
App Store Connect
Upload screenshots straight from Screenshot Bro.
Connect your App Store Connect API key once and Screenshot Bro can upload exported screenshots to a specific app version without leaving the app.
Set up an API key
- Go to App Store Connect ▸ Users and Access ▸ Integrations ▸ App Store Connect API.
- Create a key with permission to edit app metadata — Account Holder, Admin, or App Manager roles are typical. Download the
.p8private key file (you can only download it once). - Note the Issuer ID and Key ID.
- In Screenshot Bro: Settings ▸ App Store Connect, paste the Issuer ID and Key ID, import the
.p8file, then run Test Connection. The key is stored in your Mac's Keychain.
Uploading screenshots
- Click Upload to App Store Connect… in the export menu. Screenshot Bro renders the selected screenshots directly from the project.
- A thumbnail shows the screenshot currently being uploaded.
- Custom Product Pages uploads screenshots to an existing editable custom page.
- If a platform the app ships on has no editable version — every one is live or locked for review — the version step offers Create Version for it, prefilled with the next number, which you can edit before creating.
- Pick the app and a version, then choose which rows go to which display type and locale. The display type is auto-detected from the row's pixel size — Use detected accepts the suggestion, and a warning appears if a row looks like an Android size.
- iPhone Duo has its own display type, taking the inner (2007×2853) and outer (1398×2034) display sizes. Starting April 2027 Apple requires iPhone Duo screenshots for any app using the iOS 27.1 SDK or later, so the wizard warns when an iOS version would have none.
- Apple Watch rows upload to the app's iOS version. Pick a size from the Apple Watch group of the row size picker and keep it in portrait: 422×514 or 410×502 for Ultra, 416×496 for Series 10 and later, or 396×484, 368×448 and 312×390 for older models. Apple requires one Apple Watch size across every localization, so the wizard flags an upload that would leave a version with two.
- Each row has an include toggle, so you can leave one out for this upload only. To exclude a row from *every* upload, use the inspector's Exclude when uploading to App Store Connect instead.
- Anything that would block the upload is listed in a banner above the plan, one line per row — every language still missing an App Store locale is named on that one line, not repeated. Where a single change would settle it, the line carries a Fix button that makes it: ticking the App Store locales the row already matches, or switching the row to the detected display type.
- When a version is missing several languages, the Create N Missing Locales button next to its locale count adds them all in one go. A language App Store Connect rejects keeps its error on its own row; the rest are still created.
- Next to each App Store locale the wizard shows what the selected version already has for the row's display type: No screenshots when that locale has none at all, None in this size when it only has other sizes, or how many it already has.
- Each row also warns when, after the upload, its screenshot count would differ between locales — say 7 in most but 2 in one — or when a locale would have no set of that display type and fall back to the primary language's screenshots. Fix adds the locales the row can reach to the upload.
- If a language has no matching App Store locale, the wizard says so and offers Create de-DE in App Store Connect — naming the App Store locale code it would add — right on the row. One click adds it to that version and the row switches to it. Languages the App Store doesn't offer, and versions Apple has locked for editing, still have to be handled on the website; Refresh App Store data picks up anything added there.
- Review Changes lists, per locale and display type, exactly what will be added, what will be replaced, and what stays untouched. Nothing is sent to Apple until you confirm there.
- Sets are grouped by version and device — open a locale to compare the current App Store screenshots with the proposed ones. Locales that already match are hidden behind Show unchanged, and Select All Changed / Deselect All set what gets synced.
- Upload skips that screen and compares against the store as it goes, uploading only what differs and keeping the App Store asset IDs of exact matches. The progress bar counts the screenshots as they render, then compares each set.
- Replace All Screenshots, offered next to Upload when you confirm, skips the comparison entirely: everything currently in the selected sets is deleted and every screenshot is uploaded again with new asset IDs. It prepares faster and uploads slower, so it pays off when most screenshots changed and costs you when only one did.
- If an upload stops partway — a dropped connection, or App Store Connect rate limiting a large sync — just run it again. Locales that finished are remembered and skipped, and screenshots already delivered are matched by checksum rather than uploaded twice.
- If an upload fails, click Details, then Share Log…, and send the file to support. It lists the requests sent to App Store Connect and Apple's responses, never your API key or screenshots. You can share it later from Settings ▸ App Store Connect ▸ Upload Log.
Editing store metadata
- The same wizard edits the version's text, locale by locale, with a live character counter against Apple's limits.
- App Info (shared across versions): App Name, Subtitle, Privacy Policy URL.
- This Version: What's New, Promotional Text, Description, Keywords, Support URL, and the Copyright line (which applies to every locale at once).
- Copy to all locales fills every other language's *What's New* from the one you just wrote — useful before you translate it properly.
Demo mode
- Turn on Enable demo mode under Settings ▸ App Store Connect ▸ App Review Demo Mode to walk the whole flow against sample data — no API key needed, and nothing is ever sent to Apple.
- While demo mode is on, the real API key above it is ignored.
App Store Connect accepts 1–10 screenshots per display type and locale — one is enough to submit, though most apps use three or more. Screenshot Bro respects template ordering when uploading.
Google Play
Upload store listing screenshots to Google Play.
Connect a Google Play service account once and Screenshot Bro can upload exported screenshots to your app's store listing without leaving the app.
Set up a service account
- In the Google Cloud console, create a service account and enable the Google Play Android Developer API.
- Create a JSON key for that service account and download it — this is the file Screenshot Bro imports.
- In the Play Console ▸ Users and permissions, invite the service account's email and grant it access to edit your app's store listing.
- In Screenshot Bro: Settings ▸ Google Play, click Import .json File…, then run Test Connection. The key is stored in your Mac's Keychain.
Uploading
- Choose Upload to Google Play… from the export menu. Screenshot Bro renders the selected screenshots directly from the project.
- Enter your app's package name (for example
com.example.myapp). Google Play has no way to list your apps, so the name is typed rather than picked — the clock button offers the ones you used before. - Next checks the package before going on, so a typo or a service account without access is caught here instead of halfway through an upload.
- Each row has an include switch, an Upload as image type (auto-detected from the row's size — the ⓘ button shows the sizes Play accepts), and a checkbox per language.
- Each project language is matched to the Google Play listing language shown beside it. Play keeps one set of screenshots per language, so when two project languages match the same one — English and English (US) both reach
en-US— only one can be checked. A language Play doesn't publish in reads Not on Play and is skipped. - Next to each language the wizard shows what the listing already has for the row's image type: No screenshots when that language has none at all, None in this size when it only has other image types, or how many it already has.
- The upload is staged as a Play edit and committed when you confirm. Google Play accepts at most 8 screenshots per type.
- Uploading replaces what is already on the listing: for every language and image type you selected, the existing screenshots are deleted and the new ones uploaded. The confirmation says so before anything is sent.
- Send changes to review decides what happens on commit: leave it off and the changes wait as a draft in the Play Console; turn it on and they go straight into review. If you expect to check the listing before it ships, leave it off.
Demo mode
- Turn on Enable demo mode under Settings ▸ Google Play ▸ Demo Mode to run a simulated upload — no service account required and nothing is ever sent to Google Play.
- Use it to walk through the whole upload flow before you have credentials set up. While demo mode is on, the imported service account is ignored, the package field starts on a sample name, and the package check always passes.
Google Play enforces stricter screenshot aspect-ratio and dimension limits than the App Store. The default 1242×2688 iPhone size is too tall for Play — if an upload is rejected, switch the row to a screenshot-size preset Play accepts.
iCloud Sync
Edit on one Mac, continue on another.
iCloud sync keeps your project library in iCloud Drive (iCloud.xyz.tleskiv.screenshot). Changes made on one Mac propagate to others signed into the same iCloud account.
Enabling
- Settings ▸ General ▸ iCloud Sync — toggle on.
- First-time enable migrates your local project library into iCloud. A progress indicator shows the migration.
- Disabling does not delete your iCloud data — your projects remain in the iCloud container until you delete them manually.
How conflicts are resolved
- Each project is merged using a last-writer-wins strategy at the field level. The most recently edited shape, row, or background wins.
- Deletions are tracked as tombstones for 30 days, so a delete on Mac A correctly propagates to Mac B even if the device is offline at the moment of deletion.
- File coordination prevents corruption from concurrent reads/writes.
Knowing what's syncing
- The Projects screen shows sync progress while iCloud is uploading or downloading.
Screenshots that aren't there yet
- A project's text and layout sync in one small file, so a project can open before its screenshots have finished downloading.
- A device frame with a download badge is waiting for iCloud. Screenshot Bro asks for those files first and fills them in as they land — no need to reopen the project.
- A device frame with an orange warning triangle means the image file itself is gone. Add the image again to restore it; the layout, text and translations around it are untouched.
If sync seems stuck, open Finder ▸ iCloud Drive ▸ Screenshot Bro and check whether files are still uploading. Toggling iCloud off and on again forces a re-scan.
Automation & MCP
Let an AI assistant build screenshots for you.
Screenshot Bro can host a local MCP server — a small server running only on your Mac that AI assistants and MCP clients (such as Claude Code, Claude Desktop, or Cursor) connect to. Once connected, the assistant can create and edit projects, arrange shapes, translate text, and export screenshots on your behalf, driving the app while you watch.
Turning it on
- Settings ▸ Automation ▸ Enable MCP server. It's off by default.
- The server runs on
127.0.0.1(loopback only) — it is not reachable from other computers or the internet. - Once enabled it stays on and starts automatically the next time you launch. The app has to be running for a client to connect.
Connecting an assistant
- The easiest way: click Copy Agent Prompt and paste it into your AI assistant. It contains everything the assistant needs to add the server itself, then reconnect.
- Prefer to configure by hand? Use Copy Configuration (JSON) for a standard
mcpServersentry, or copy the Server URL and Access Token individually and add them in your client. - The Status row shows whether the server is running and on which port.
What the assistant can do
- Create projects (including from bundled templates), rename, delete, and switch between them.
- Add, edit, move, and remove rows, template columns, and shapes.
- Import screenshots into device frames, add and translate languages, and set per-language text.
- When a translation it sets is too long for its text box, Screenshot Bro fits it right away: a slightly smaller font first, then a taller box for that language only — into free space, never over another shape — and a smaller font again only if that still isn't enough.
- Render a preview so it can actually see the current canvas, and export the finished screenshots.
- Read and rewrite your App Store Connect descriptions, and preview then apply a screenshot sync to a version.
- Everything goes through the same actions you use by hand — so the assistant's changes are undoable with ⌘Z and autosaved like any other edit.
Security & the access token
- The server requires an access token: every request must present it, so another app on your Mac can't quietly drive Screenshot Bro.
- Keep the token private — anyone who has it can control the app while the server is running.
- Regenerate Access Token issues a fresh token and restarts the server; any client using the old token must be updated.
For a full walkthrough — connecting Claude Code, Claude Desktop or Cursor, what each of the 48 tools does, the prompts that work, and how to feed it your own screenshots — see the Screenshot Bro MCP guide.
If the server won't start, something else is usually holding its port — quit that program, then switch the server off and on again. Turning it off releases the port immediately.
Settings & Defaults
Tune the app to match your workflow.
General
- Appearance — Auto / Light / Dark.
- Language — override the app interface language. Requires a relaunch.
- Picking a right-to-left language such as Persian mirrors the toolbars, menus, and inspector, as it should. The canvas is never mirrored — shape positions are stored in model space and must render identically for everyone, so your screenshots look the same whatever language you edit in.
- Default screenshot size — used when creating new rows.
- Default device frame — pre-selects a device category and model for new rows.
- Screenshots per new row — number of empty templates a new row starts with.
- Default zoom level — initial zoom level when opening the app.
- Ask before deleting rows and screenshots — show a confirmation prompt for destructive row and screenshot actions.
- Project order — By creation date or Alphabetically.
- Edit selected shapes in the inspector — shows a selected shape's properties in the sidebar instead of the bar below the canvas.
- iCloud Sync — Sync with iCloud on or off, and the current sync status.
- Editor tour — Replay Tour runs the first-run coach marks again over your open project.
- Storage — open the project library in Finder or create a one-off backup zip.
- Copy Diagnostics — copies your version, setup, and support ID as a block to paste into a bug report. No project content.
Export
- Format — PNG or JPEG.
- Custom filename suffix — append a suffix to exported screenshot filenames.
- File layout — Standard, or fastlane for
deliver-ready language folders. - Reveal in Finder after export — auto-reveal results in Finder.
- Export folder — choose or clear the folder Screenshot Bro reuses for ⌘E.
App Store Connect
- API key (Issuer ID, Key ID,
.p8file), Test Connection, and App Review Demo Mode. See the App Store Connect section.
Google Play
- Import a service account JSON key, test the connection, and toggle demo mode. See the Google Play section.
Automation
- Enable the local MCP server and copy the agent prompt, connection JSON, or access token. See the Automation & MCP section.
Purchase
- Current plan, restore purchases, manage subscription, and a copyable purchase ID to quote if you ever need help with a transaction.
Attributions
- Credits and licenses for fonts, icons, and bundled assets.
About
- Version — the build you're running. Worth quoting in a bug report.
- Below the version, where your copy came from: App Store or Direct download.
- Links to rate the app, contact support, visit the website, or follow along on X, Threads, and Discord — plus More Apps from the same developer.
Free vs Pro
What's included and where Pro unlocks more.
Free tier
- 1 project — you can keep editing it forever.
- 3 rows per project.
- 5 templates per row.
- Full access to all device frames, shapes, languages, export resolutions, and store uploads.
- Watermark-free exports.
Pro
- Unlimited projects, rows, and templates.
- No row or screenshot-column limits when building larger launch sets.
- Future Pro-only features as they ship.
Buying or restoring
- Settings ▸ Purchase lists the available plans. RevenueCat handles the transaction.
- Plans and US prices for every version are on the Pricing page.
- Restore Purchase brings back an existing purchase on a new Mac.
- Subscriptions are managed through your Apple Account. To change or cancel one, open System Settings, click your name, choose Media & Purchases, then click Manage next to Subscriptions.
Pro paywall messages adapt to context — the prompt you see when adding a 4th row is different from the one you see when adding a 6th template, so you always know exactly which limit you're hitting.
Tips & Tricks
Small things that save time.
- Drop groups of screenshots together. Select several image files and drop them onto a row — Screenshot Bro fills templates in order and detects device category/frame where possible.
- Span backgrounds for storytelling. Turn on Stretch across all screenshots and use a wide gradient or panoramic image to make a 3-template carousel feel like one continuous scene.
- Lock aspect when resizing icons by holding ⇧ while dragging a corner handle.
- Duplicate while dragging with ⌥. Combined with snap, this is the fastest way to lay out a row of equal-sized cards.
- Type rotation degrees directly. The rotation field accepts text input — type
45for an exact 45° rotation instead of dragging. - Use the SVG button for icons. SVG scales infinitely, so your hero icon stays crisp at export size.
- Re-translate after editing base text. If you change the base headline, run Language ▸ Re-Translate All Text… (or use Translate Selected to All Languages in the language bar with the edited text selected) so every language picks up the new wording.
- Use Invisible category for clipped designs. When you want the screenshot to bleed off the canvas with no bezel, pick the Invisible device category.
- Star frequently used projects. Star Project — on the toolbar ⋯ menu, or by right-clicking a card on the Projects screen — floats it to the top of the picker.
- Preview before exporting. The Preview button on each template renders the row's screenshots and opens the preview at that template — handy for spot-checks.
- Repeat a shape across the row. Right-click ▸ Duplicate ▸ To All Screenshots drops a logo or footer onto every template at the same spot.
- Translate a repeated headline once. Right-click a text shape ▸ Reuse Translation links it to another string so they share one translation.
- Lock the background art. ⌘L on a full-bleed image stops you grabbing it every time you click near the canvas edge.
- Check the set, not just the screenshot. The pencil/eye switch in a row header shows the templates as a store-style carousel, which is how buyers will actually see them.
- Custom fonts persist. Imported fonts are bundled per project, so a project shared via iCloud or zip backup keeps its typography.
Keyboard Shortcuts
Mac keyboard shortcuts and canvas gestures.
File
⌘N | New project |
⌘E | Export screenshots |
Edit
⌘Z | Undo |
⌘⇧Z | Redo |
⌘C | Copy selected shapes, or focused text |
⌘X | Cut focused text |
⌘V | Paste shapes, images, SVGs, or focused text |
⌘A | Select all shapes in the active row, or focused text |
⌘D | Duplicate selected shapes / row |
⌘L | Lock or unlock selected shapes |
Delete | Delete selected shapes |
Esc | Deselect |
⌘⇧] | Bring shape to front |
⌘⇧[ | Send shape to back |
← → ↑ ↓ | Nudge selection by 1px |
⇧ + Arrow | Nudge selection by 10px |
⌥ + Drag | Duplicate while dragging |
⇧ + Drag rotation handle | Snap rotation to 15° steps |
⇧ + Drag resize handle | Lock aspect ratio |
View
⌘+ | Zoom in |
⌘− | Zoom out |
⌘0 | Reset to default zoom |
⌘⌥I | Show or hide the inspector |
F | Focus on selection |
Pinch / ⌘ + Scroll | Zoom canvas |
Middle-click + drag | Pan canvas |
Language
Language menu | Lists every language you've added, plus every translation action |
⌘] | Next language |
⌘[ | Previous language |
⌘⌥0 | Switch to base language |
Text editing
Double-click text | Enter inline edit mode |
Esc / click outside | Commit text edit |
Window
Window ▸ Show Main Window | Bring the editor back when its window is closed |
App
⌘, | Open Settings |
⌘? | Open Screenshot Bro Help |
Support & Feedback
We read every message.
The fastest way to get help is the Screenshot Bro Discord — questions, bug reports, and feature requests all land in front of the maker there, and you can see what is shipping next. Prefer email? Write to [email protected].
Reporting a bug
- Paste Settings ▸ General ▸ Copy Diagnostics into your message — it carries your version, setup, and the ID that lets us find your crash reports. No project content.
- Describe the steps that reproduce the problem, ideally with a screen recording.
- If the issue involves a specific project, attach a backup zip (Settings ▸ General ▸ Storage ▸ Create Backup…) — it makes fixes dramatically faster.
Privacy
- Your projects and screenshots stay on your Mac (and your iCloud, if you enable sync). See the privacy policy for details.
Enjoying Screenshot Bro? An App Store review genuinely helps a small app get discovered.