Reference
edit_project
Change a saved project — captions per locale, frame order, layout, styling, device pose.
What it does
- Writes
- Destructive
- Account required
Make a concrete change to a saved project and save it. You state the change — the caption words for a frame in a locale, a new frame order, a layout or preset for every frame, caption style, background, or one device’s pose and finish — and ShotOps applies it with the same engine the web app uses. Frames and devices are numbered from 1, the way read_project lists them. It returns what changed, not pixels: render the project afterwards to see it.
You can ask: “Translate the first Tidebook headline into German and move the forecast panel first.”
Input
projectstringrequiredat least 1 characterProject id or exact name.
captionsarrayoptionalat most 400 itemsCaption words per frame and locale.
each item
object
frameintegerrequiredmin 1max 601-based frame number.
textstringrequiredat most 400 charactersThe caption words.
localestringoptionalat least 2 charactersat most 35 charactersApp Store locale code, e.g. "de-DE". Default: the base locale. A new one is added.
layerintegeroptionalmin 1max 81 = headline (default), 2 = the line under it.
orderarrayoptionalat least 1 itemNew frame order as current frame numbers, e.g. [3, 1, 2].
each item
integer
layoutstringoptionalLayout template for every frame (see describe_look).
one of
standardbleedtop-bleedlean-rightlean-leftswipecorner-bleedpresetstringoptionalDesign preset for every frame (see describe_look).
one of
noirdaylightpopclaystudiocaptionStyleobjectoptionalCaption styling for every frame: fontId, sizePt, color, align, band….
backgroundobjectoptionalStrip background: { stops: [{ color, at }], angle, shadow, floorReflection }.
framesarrayoptionalat most 60 itemsPer-frame overrides: [{ frame, layout?, captionStyle?, background?, clearBackground? }].
each item
object
devicesarrayoptionalat most 120 itemsDevice pose and finish: [{ frame, device?, roll, orbit, deviceSize, vOffset, colorway… }]. device is 1-based within the frame; omit for all.
each item
object
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": "edit_project",
"arguments": {
"project": "Tidebook 2.4 launch",
"captions": [
{
"frame": 1,
"locale": "de-DE",
"text": "Kenne die Tide, bevor du losgehst"
}
],
"order": [
2,
1,
3
]
}
}The project it saved, its new record version, and a list of what changed.
Access and cost
- Needs an account. Not available to an anonymous hosted caller.
- Free. An edit renders nothing and spends no cloud credits.
When it refuses
- The reply names a field and what it accepts.
- Nothing was saved. Fix that one value and call again.
- The save failed because the project changed meanwhile.
- Somebody saved it in the web app first. Read the project again and reapply the change.
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.
Edit a saved project
Change a saved project: caption words per frame and locale, frame order, layout, preset, caption style, background and device pose. Frames and devices are numbered from 1 as read_project lists them. Saves immediately; render afterwards to see it.