Claude Code · App Store Connect

Make and upload App Store screenshots from Claude Code

Point Claude Code at your raw simulator captures. MetaRun's Screenshot Studio lays them out in device frames with captions, translates the captions, renders every slide on the server, and uploads them to App Store Connect once you approve.

Setup checked October 2026 against Claude Code MCP docs, permissions

01 · Uplink

Connect Claude Code once

01 · Add the server

Run it in any terminal. --scope user makes MetaRun available in every project; leave it out to limit it to the current one.

claude mcp add --transport http --scope user metarun https://metarun.dev/api/mcp

02 · Sign in

In a Claude Code session, run /mcp, choose metarun and authenticate. MetaRun opens in your browser, where you pick read-only or read and change. From a plain shell, claude mcp login metarun does the same.

/mcp

03 · Optional: add the skills too

The MetaRun plug-in bundles the same server with six mission skills (release handoff, worldwide pricing, localization, review inbox, ASO audit, store media).

claude plugin marketplace add metarun/metarun-skills
claude plugin install metarun-skills@metarun
Prefer a personal access token (scripts, CI)?

Add the server with a token

Mint a personal access token in MetaRun under Settings, MCP. It's shown once and can be revoked any time.

claude mcp add --transport http --scope user metarun https://metarun.dev/api/mcp \
  --header "Authorization: Bearer $METARUN_TOKEN"

Or share it with your team in .mcp.json

Project scope writes .mcp.json at the repo root. Claude Code expands ${METARUN_TOKEN} from each person's environment, so the token itself is never committed.

{
  "mcpServers": {
    "metarun": {
      "type": "http",
      "url": "https://metarun.dev/api/mcp",
      "headers": { "Authorization": "Bearer ${METARUN_TOKEN}" }
    }
  }
}
02 · Briefing

What Claude Code handles here

Screenshots are the part of a release people dread: frame every capture, write captions that fit, redo it all per language, export at Apple's sizes, then upload ten images per display size per language by hand.

MetaRun's studio is fully tool-driven, so Claude Code can build a project, apply a template, set captions, translate them, render previews you can look at, and then upload. Uploads go through the same preview gate as every other write.

03 · Preflight

Before you start

  • Raw captures of your app: simulator screenshots, UI test output or exported images.
  • An editable version to upload to.
  • For iPhone Duo, app previews or creative assets: the App Asset Library tools.
04 · Execution

How it runs

  1. 01

    Start from your captures

    Local files get an https URL with npx metarun upload, or the studio's own upload tools. Claude Code creates a project and assigns one capture per slide.

  2. 02

    Design and caption

    The agent applies a template and writes captions. Every slide can be rendered on the server and returned as an image, so you see the real result in the conversation.

  3. 03

    Translate

    Captions are translated per language, and the lint flags text that overflows its frame in a longer language.

  4. 04

    Upload behind a preview

    Each upload previews the target set, size and position. The confirm token is bound to the image bytes, so what you approved is exactly what reaches Apple.

05 · Session

An example session in Claude Code

Use the PNGs in fastlane/screenshots/en-US to build a 6-slide screenshot set with the Keynote template. Write captions from our feature list in README.md.

  1. studio_create_projectProject created with six slides, one capture each.
  2. Claude Code asks before running studio_apply_template. You read the preview above and approve.
  3. studio_apply_templateKeynote template applied: background, device frame, caption type.
  4. studio_render_slideSlide 1 rendered at 1320 x 2868 and shown in the conversation.
  5. apple_preview_upload_screenshotPreview: slide 1 to the iPhone 6.9-inch set, English (U.S.), position 1.
  6. Claude Code asks before running apple_apply_upload_screenshot. You read the preview above and approve.
  7. apple_apply_upload_screenshotUploaded. Apple is processing the image.

Illustrative: your apps, versions and numbers will differ. The tool names and their order are real.

06 · Tools

The MetaRun tools Claude Code calls

ToolWhat it does
studio_create_projectMetaRunA new screenshot project for the app.
studio_apply_templateMetaRunOne of eight complete designs: background, device placement, caption type.
studio_set_slide_textMetaRunCaptions per slide and per language.
studio_translate_slidesMetaRunTranslate every caption into the project's languages.
studio_render_slideMetaRunRender a slide on the server so you can see it before anything uploads.
studio_lint_assetsreadCheck captions against Apple's asset rules.
apple_preview_upload_screenshotpreview + applyUpload one rendered image to a screenshot set. The token is bound to the image's MD5.
apple_preview_reorder_screenshotspreview + applySet the order shoppers see.
apple_preview_upload_library_assetpreview + applyUpload to Apple's App Asset Library (API 4.5.1), needed for app previews and iPhone Duo.

Each preview has an apply twin (the same name with apply instead of preview) that only runs with the confirm token from a fresh preview, and refuses if App Store Connect changed in between. MetaRun tools save to your MetaRun workspace only (studio projects, tracked keywords), never to Apple.

07 · Apple rules

What Apple enforces, and how MetaRun handles it

Ten screenshots per display size per language

Apple caps each set at ten. The first three are what most shoppers see in search results, which is why order is its own tool.

Uploads come from https URLs

MetaRun fetches the image from an https URL behind an SSRF guard, checks its size and type from the bytes, and binds the confirm token to the file's MD5.

iPhone Duo needs the App Asset Library

Apple's older screenshot sets have no iPhone Duo display type, and Apple requires Duo screenshots on submissions from April 2027. Duo, app preview videos and creative assets go through the library tools.

Server renders skip the 3D frame

Slides rendered on the server use the 2D device frame. 3D mockups render in the studio in your browser; the tool says so in its notes when it falls back.

08 · Comms

What to ask Claude Code

  • Ask Claude Code: Use the PNGs in fastlane/screenshots/en-US to build a 6-slide screenshot set with the Keynote template. Write captions from our feature list in README.md.
  • Ask Claude Code: Render slides 1 to 3 and show me before uploading anything.
  • Ask Claude Code: Translate the captions into German and Japanese, check for overflow, then upload the English and German sets.
09 · Unattended

Run it from a script with Claude Code

claude -p runs one request with no interactive session. The browser sign-in can't complete inside -p, so sign in once interactively first, or configure the server with a personal access token in CI. Tools missing from --allowedTools are refused in -p mode.

Read-only check, safe to schedule

claude -p "List the screenshot sets on the editable version of com.example.app, with the count per display size and language. Read only." \
  --allowedTools "mcp__metarun__studio_lint_assets,mcp__metarun__apple_preview_upload_screenshot,mcp__metarun__apple_preview_reorder_screenshots,mcp__metarun__apple_preview_upload_library_asset"

Only reads and previews are on that list, so nothing can reach App Store Connect unattended. Run applies in an interactive session where Claude Code can ask you.

10 · Safety

How Claude Code asks before a change

Claude Code asks before every MCP tool call by default. You can allow a tool for the session or permanently; allow rules look like mcp__metarun__apple_list_versions for one tool, and mcp__metarun__* allows the whole server, applies included. Allowing reads and previews is reasonable. Leave the apply tools on ask: that prompt is the confirm step for every App Store change.

Apple key stays on MetaRun, encryptedPreview before every writeRecorded, revertible from history
11 · FAQ

Frequently asked questions

Can Claude Code upload screenshots from my machine?

Yes, via an https URL. npx metarun upload <file> returns one for a local PNG or JPEG, and the studio tools take uploads directly. The upload itself runs on MetaRun's servers with your Apple key, which never touches your machine.

Do I have to use MetaRun's studio?

No. If you already have final images, Claude Code can upload and order them directly with the screenshot tools. The studio is for when you want framing, captions and translations done too.

What sizes does it support?

Every display size Apple lists for screenshot sets, plus the App Asset Library's catalog for newer placements such as iPhone Duo. apple_get_asset_catalog returns Apple's current specs.

Can I see the screenshots before they go up?

Yes. studio_render_slide returns each slide as an image and studio_store_preview shows them in App Store context. Nothing uploads until you approve the apply.

How do I connect Claude Code to App Store Connect?

Run claude mcp add --transport http --scope user metarun https://metarun.dev/api/mcp, then run /mcp in Claude Code and sign in to MetaRun in your browser. After that, ask for "screenshots" in plain words and Claude Code picks the MetaRun tools.

Does Claude Code see my App Store Connect key?

No. Your App Store Connect API key stays envelope-encrypted on MetaRun's servers and is decrypted per request. Claude Code holds a MetaRun token that you can revoke in Settings at any time.

More with Claude Code

In depth: Screenshot studio

Agent access

14-day free trial with agent access. No credit card. Your Apple key stays encrypted on MetaRun.