Roastify Update Design Text
roastify_update_design_textApply text edits to a stored design and commit a new version of it.
The store is configuration management: the edit is committed back to the SAME design_id (git tracks the diff), not saved as a new file. Apply it onto a product with the browser courier. Only the words change — fonts, layout, and images are preserved, and the heavy image is never moved (the design keeps referencing the same content-addressed assets).
The box does not resize, so keep each new text within roughly ±10% of the
character count of the layer it replaces (see chars from get_design_text);
longer copy overflows and the merchant fixes it by hand.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| edits | Yes | A map of {layer_id: new_text}, using ids from roastify_get_design_text. Include every layer that should change, including ones that repeat a value or embed it in a longer blurb. A JSON object string is also accepted (some MCP clients serialize object args that way). | |
| label | No | Rename the design (optional). Defaults to keeping its current label. | |
| design_id | Yes | The design to edit, from roastify_list_designs. | |
| dpop_token | No | ||
| version_tag | No | The NEXT semver version (MAJOR.MINOR.PATCH, e.g. 1.3.0, no 'v') — call roastify_list_design_versions and increment. Required; reusing one is refused. | |
| commit_message | No | A specific description of WHAT changed and WHY — a real commit message, not a placeholder like 'save this' or 'update'. Required. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||