Borrowing it
Nothing to install: this file belongs to gug007/lpm. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/gug007/lpm/main/.claude/skills/app-store-screenshots/SKILL.mdgit clone --depth 1 https://github.com/gug007/lpmWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/gug007/lpm/app-store-screenshots)<a href="https://agentmods.dev/skills/gug007/lpm/app-store-screenshots"><img src="https://agentmods.dev/badge/skills/gug007/lpm/app-store-screenshots/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/gug007/lpm/app-store-screenshots"><img src="https://agentmods.dev/badge/skills/gug007/lpm/app-store-screenshots.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00160 | $0.01969 |
| Opus 5.5 | $0.00064 | $0.00788 |
| Sonnet 5.5 | $0.00032 | $0.00394 |
| Haiku 4.5 | $0.00016 | $0.00197 |
Grade A, and why
app-store-screenshots scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Makes the lpm Link App Store screenshots again whenever the app changes, with no
clicking in the app: scripts/shots.js builds a screenshot copy of the app, launches it once
per screen in the iOS Simulator, and composes the store images. The one manual step is opening
the iPhone Duo (below).
node scripts/shots.js all # build, prepare, capture, compose (~2.5 min)
node scripts/shots.js capture --only diff,stats --device iphone
node scripts/shots.js compose # after editing captions only (seconds)
node scripts/shots.js cleanup # clear status bars, shut down simulators it booted
buildcopiesmobile/to~/Library/Caches/lpm-app-store-shots/src(the repo is never touched), applies thePATCHESinscripts/build.js, addsscripts/swift/*.swift, runsxcodegenand a Release simulator build. The copy shows Demo Mode as a real Mac: no purple Demo banner, the Mac is "MacBook Pro", the status line reads "Connected · on your network", a busier sample seed (ShotSeed.swift), and the storefront Claude session already finished and waiting on you.preparefinds (or creates) the simulators named inshots.json, sets US English (the clock reads 9:41, not 09:41; reboots once), a full non-charging battery, light mode, installs the build and launches it once (the first launch after an install is slow).capturelaunches the app withLPM_SHOT_ROUTE=<route>(ShotDriver.swiftenters Demo Mode and pushes the route), waits, and savessimctl io screenshotat native size (the device'sdisplaywhen it has one).compose(compose.swift) writes the store images without an alpha channel (App Store Connect rejects one) and a contact sheet per device.
Output: ~/Pictures/lpm-link-app-store/<version>/ with iphone-6.3/NN-name.png,
ipad-13/NN-name.png, iphone-duo-outer/NN-name.png, iphone-duo-inner/NN-name.png,
sheet-<device>.png and source/raw/. The version
comes from mobile/ios/project.yml; --version <v> writes elsewhere (use it to try changes
without replacing a set the user already has).
shots.json: devices (simulator name, folder, store size, screenRadius of the display in
raw pixels, one number or top-left/top-right/bottom-right/bottom-left, cutout for the camera
simctl leaves out as x/y/width/height in raw pixels, and for the Duo the pose and the
display to capture) and shots in store order, each with
name, route, title (\n for the line break, two lines at most), subtitle (one line,
about 50 characters on iPhone), devices, an optional wait in seconds (default 4), and
optional captions to give one device its own title/subtitle.
Route steps, joined by >, are pushed in order:
list · project:<name> · terminal:<project>/<terminalId> · changes:<project> ·
usage · stats · activity · automations · automation:<project>/<jobId>.
Demo names: projects storefront, api-gateway, analytics, mobile-app, blog, …;
terminal demo-storefront-claude; automation nightly-tests
(mobile/ios/Sources/LpmMobile/DemoWorld.swift, DemoJobs).
iPhone Duo
Apple lists two Duo sizes, closed (outer display, 1398x2034, display: primary) and open
(inner display, 2007x2853, primary-1), without saying yet whether a listing needs both, so
the skill makes both from one simulator: duo-closed has the iPhone set, duo-open the iPad
set. The display of the other pose is dark. The Duo boots closed, every boot, so duo-closed
captures on its own; nothing in simctl folds it, so duo-open waits (up to 5 minutes)
printing "set it to Open, in portrait, in Device Hub" until the inner display shows a portrait
picture. Run all in the background, and when that line appears open it with computer use:
Device Hub (com.apple.dt.Devices) → iPhone Duo → bottom bar, the rightmost pose button
("Open"; the first click may only focus the window), then the rotate button left of the poses
once, to portrait. Closed is the leftmost pose button. Then move the pointer off the device:
hovering over it acts as a pointer in iOS, and the terminal shows a scroll bar in the shots. The outer display's hinge-side corners
are nearly square and its camera is a circle top-right, which compose draws back in.
What ships with it
9 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed · +30 lines · +19 tokens per session 492335407d8c
- 6d ago Changed 20e5e17104dd
- 15d ago First seen · 74 lines · 141 tokens per session scan A 64cf4cb9496f
app-store-screenshots is a skill published in the GitHub repository gug007/lpm (145 stars, last pushed today), licensed MIT. It adds 160 tokens to every session and 1,969 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-09.
Other skills, from other repositories
orca-emulator-android
Android device and emulator control from inside Orca over adb, with the live device view in Orca's emulator pane. Use when driving an adb-connected emulator or phone on Windows, Linux, or macOS: booting AVDs, taps, swipes, typing, hardware buttons, rotation, app install and launch, runtime permissions, the…
orca-emulator
This discovery stub loads the version-matched guide from the Orca executable used for this session.
loom-dart
Dart language expertise for idiomatic, production-quality code.
desktop-mobile-tauri
Tauri 2.x mobile development - iOS via WKWebView, Android via Android WebView, mobile plugins, Swift/Kotlin native code, permissions, debugging.
mobile-animation-reanimated
React Native Reanimated 4 - shared values, animated styles, spring/timing/decay, layout animations, gesture integration, scroll-driven animations, interpolation, worklets, CSS animations.
mobile-animation-skia
React Native Skia GPU-accelerated 2D graphics - Canvas, declarative drawing, shaders, image filters, Paragraph text, Atlas batch rendering, Reanimated animations.