Reference
render
The call that produces the pixels: preview panels, full-resolution panels or a fastlane bundle.
What it does
- Writes
- Open world
- No account needed
Render the store screenshots. Name a saved project and it renders the screenshots, frame order, captions and look the project already holds, with nothing attached to the conversation; or pass screenshots and a style and it composites each one into a styled 3D device. output chooses what comes back: a preview to iterate against (the default, a quarter of the full price), full-resolution panels, or a zip ready for fastlane deliver. Rendering never saves a project, and you run fastlane yourself — this server never holds an Apple or store credential and never submits anything for review.
You can ask: “Preview the saved Tidebook project, then build its bundle for both locales.”
The published schema accepts any shape inside screenshots, style and look so a malformed entry comes back as a sentence naming the field rather than a stacked union error.
Annotated open-world because a bundle can publish a share link. It still never reaches a store.
Input
projectstringoptionalat least 1 characterSaved project id or exact name. Renders the screenshots, captions and look it holds.
screenshotsarrayoptionalat most 60 itemsScreenshots to render, one per panel in order: { "ref" } from import_screenshot or request_screenshot_upload, { "url" }, { "path" } (local only), or small base64. With a
project, entries carrynameand replace the project file of that name.each item
any
The published schema does not constrain this element, on purpose — a malformed entry comes back as a sentence instead of a stacked union error. What the server re-validates against is below.
outputstringoptional"preview" (default, quarter resolution, cheap), "panels" (full-resolution PNGs) or "bundle" (fastlane zip).
one of
previewpanelsbundleoutputsarrayoptionalat least 1 itemat most 2 itemsDevices to render: iphone-6-9, iphone-6-5. Default: the project's saved devices, else iphone-6-9.
each item
string
one of
iphone-6-9iphone-6-5localestringoptionalApp Store locale, e.g. "de-DE". Default: the project base locale, else en-US.
localesarrayoptionalat least 1 itemat most 40 itemsBundle only: one fastlane folder per locale.
each item
string
styleobjectoptionalSupplied screenshots only: layout, captions, background, shotLook. Fields: describe_look.
lookobjectoptionalSupplied screenshots only: a look from read_look or a
layout.correctedLook.bundleIdstringoptionalBundle only, required: reverse-DNS app id, e.g. com.acme.app. Pre-fills the Deliverfile.
sharebooleanoptionalBundle only: also create a 14-day share link.
deliverystringoptional"inline" base64 or short-lived "urls". Default: inline when small.
one of
inlineurlswaiversarrayoptionalReadiness findings to waive, passed back exactly as a refusal returned them.
each item
object
idempotencyKeystringoptionalat least 1 characterat most 200 charactersA new key forces a fresh paid render; omit for safe retries.
Result
Results arrive as structured JSON with a contract envelope; the example below says what comes back. The schema is not declared, to keep what a model reads small.
Example
That request maps to this call:
{
"name": "render",
"arguments": {
"project": "Tidebook 2.4 launch",
"output": "bundle",
"bundleId": "com.tidebook.app",
"locales": [
"en-US",
"de-DE"
]
}
}Panels as PNGs or a zip, inline or as download URLs. A render also reports its composition: a layout block names every caption sitting on a device and, where the repair is deterministic, carries a corrected look you can pass straight back.
Access and cost
- Previews are open to everyone, including a hosted caller with no account.
- Full-resolution panels and every bundle are production output: they need an active Pro trial or Pro, and the server decides that before anything renders or any cloud credit is spent.
- On the hosted server a preview panel costs 1 cloud credit and a full-resolution panel 4 cloud credits. On the local stdio server rendering is free and spends nothing.
- Without an account the hosted server allows 3 preview attempts per network per 30 days, up to 5 panels each.
- Rendering a saved project needs an account. A project holds its own screenshots when its owner set its reach to "Your account" in the web app; read_project reports that.
When it refuses
- The reply says production output is not available.
- That is an entitlement answer, not a render failure — nothing was rendered and nothing was charged. Call account_status, do the step it names, then retry. Previews keep working.
- A full-resolution screenshot is rejected as too large.
- Inline base64 is capped for small payloads. Import the file first (import_screenshot for a URL or a ChatGPT attachment, request_screenshot_upload for a file on the user’s disk) and pass the returned ref instead.
- The result carries a
layoutblock full of findings. - Captions are landing on devices. Pass
layout.correctedLookback aslookand render again, or pick a layout template sized for the longest headline in the set. - Shots of a saved project come back reported as missing.
- The project has a frame with no stored or supplied screenshot. Supply that file by its original name, or accept the strip without it.
- A locale folder in a bundle came back with fallback captions.
- That locale has no caption words of its own, so the base locale was used. Add them with edit_project and render again.
Where this fits
What the agent is told
The title and description the server publishes on tools/list — this is the copy a model chooses between, reproduced verbatim.
Render App Store screenshots
Render store screenshots from a saved `project` (it holds its screenshots, captions and look) or from supplied `screenshots` styled with `style`. `output`: "preview" (default), "panels" (full resolution) or "bundle" (fastlane zip). Rendering never saves a project.