43 actions: 43 on the command line, 43 as MCP tools, 43 as HTTP endpoints and 43 in the page.
block.set
Set block property. Writes one property of a block by JSON pointer; an absent value deletes it.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
path | string | yes | JSON pointer inside the block, such as /key |
value | unknown | no | The new value; omit it to delete the property |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block set <slideId>#<blockId> <path> <value> - MCP tool:
deck_update_block - HTTP:
POST /api/actions/block.set - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.insert
Insert block. Inserts a block into a slot after the named block, or first; a block carrying pos on a slide that is not a canvas yet converts the slide first and lands as an object.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
slot | one of 8 values | yes | |
after | string | no | |
block | __schema0 | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block insert <slideId> --slot <slot> --after <after> < block.json - MCP tool:
deck_insert_block - HTTP:
POST /api/actions/block.insert - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.remove
Remove block. Removes a block from its slide.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block remove <slideId>#<blockId> - MCP tool:
deck_remove_block - HTTP:
POST /api/actions/block.remove - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.move
Move block. Moves a block to a slot after the named block, or first.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
slot | one of 8 values | yes | |
after | string | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block move <slideId>#<blockId> --slot <slot> --after <after> - MCP tool:
deck_move_block - HTTP:
POST /api/actions/block.move - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.align
Align blocks. Aligns objects on one edge, against the selection for several, the slide for one, or the content box; against the selection the shared edge is the extreme object's own edge unless snap is true, and the slide's and the content box's edges stay exact; a slide that is not a canvas yet converts first (docs/FOCUS.md rank 14).
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | The blocks to move, top level of a freeform slide |
edge | "left" | "center" | "right" | "top" | "middle" | "bottom" | yes | left, center or right move x; top, middle or bottom move y |
to | "selection" | "content" | "sheet" | no | The reference box; 'selection' for several blocks and 'sheet' (the slide) for one unless set |
snap | boolean | no | Snap the selection's shared edge to the guides and the grid; off unless true, and never applied to the slide's or the content box's edges |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block align <slideId> --blocks <blockIds> --edge <edge> --to <to> - MCP tool:
deck_align_blocks - HTTP:
POST /api/actions/block.align - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.distribute
Distribute blocks. Spreads freeform blocks along one axis with equal gaps between the first and the last, or with a fixed gap; with snap the moved edges round to the 8 px grid.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
axis | "horizontal" | "vertical" | yes | |
gap | number | no | A fixed gap in px instead of equal spacing |
snap | boolean | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block distribute <slideId> --blocks <blockIds> --axis <axis> --gap <gap> - MCP tool:
deck_distribute_blocks - HTTP:
POST /api/actions/block.distribute - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.order
Order block. Moves a freeform block through the stacking order, to the front or back or by one step, or to a given z rank, and renumbers the stack densely.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
move | "front" | "back" | "forward" | "backward" | no | |
z | integer | no | The target rank in the stack, 0 at the back |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block order <slideId>#<blockId> --move <move> --z <z> - MCP tool:
deck_order_block - HTTP:
POST /api/actions/block.order - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.duplicate
Duplicate block. Copies the named blocks of a slide with fresh ids, each after its original; a positioned copy sits 16 px right and down and on top of the stack, a copied group takes a fresh tag and copied connectors keep their attachments to copied targets.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block duplicate <slideId> --blocks <blockIds> - MCP tool:
deck_duplicate_block - HTTP:
POST /api/actions/block.duplicate - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.group
Group. Writes one group tag on two or more objects of a slide in one write; the tag is generated when none is given; a slide that is not a canvas yet converts first.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
group | string | no | The tag; a fresh one when absent |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block group <slideId> --blocks <blockIds> --as <group> - MCP tool:
deck_group_blocks - HTTP:
POST /api/actions/block.group - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.ungroup
Ungroup. Removes the group tag from the named objects, or from every member of a named group, in one write.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | no | |
group | string | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block ungroup <slideId> --group <group> --blocks <blockIds> - MCP tool:
deck_ungroup_blocks - HTTP:
POST /api/actions/block.ungroup - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.regroup
Regroup. Writes a tag back on the named objects, the set the editor remembers from the last ungroup.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
group | string | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block regroup <slideId> --blocks <blockIds> --as <group> - MCP tool:
deck_regroup_blocks - HTTP:
POST /api/actions/block.regroup - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.rotate
Rotate. Rotates objects to an angle or by an angle, degrees clockwise normalized to 0 up to 360, about each box or about the selection (a group rotation moves the members around the union centre); attached connectors follow; a slide that is not a canvas yet converts first.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
to | number | no | The angle in degrees |
by | number | no | Degrees added to the current angle |
about | "each" | "selection" | no | 'each' unless set |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block rotate <slideId>#<blockId> --to <to> --by <by> --about <about> - MCP tool:
deck_rotate_block - HTTP:
POST /api/actions/block.rotate - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.flip
Flip. Toggles one flip axis on objects; about the selection every member also mirrors about the union centre and its angle becomes 360 minus itself (a group flip); attached connectors follow.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
axis | "h" | "v" | yes | h flips horizontally, v vertically |
about | "each" | "selection" | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block flip <slideId>#<blockId> --axis <axis> --about <about> - MCP tool:
deck_flip_block - HTTP:
POST /api/actions/block.flip - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.crop
Crop image. Writes the crop of a picture as fractions of it trimmed from each side; a slide that is not a canvas yet converts first when the picture is positioned.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
trim | object | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block crop <slideId>#<blockId> --left <left> --right <right> --top <top> --bottom <bottom> - MCP tool:
deck_crop_image - HTTP:
POST /api/actions/block.crop - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.mask
Mask image. Clips a picture to a closed shape preset, or removes the mask with null.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
mask | string | null | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block mask <slideId>#<blockId> <mask> - MCP tool:
deck_mask_image - HTTP:
POST /api/actions/block.mask - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.resetImage
Reset image. Removes the crop, the mask, the adjustments and the round one crop anchor and aspect of a picture in one write.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block reset-image <slideId>#<blockId> - MCP tool:
deck_reset_image - HTTP:
POST /api/actions/block.resetImage - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.adjust
Adjustments. Writes a picture’s transparency (0 to 1), brightness and contrast (-1 to 1); null clears one.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
transparency | number | null | no | |
brightness | number | null | no | |
contrast | number | null | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block adjust <slideId>#<blockId> --transparency <transparency> --brightness <brightness> --contrast <contrast> - MCP tool:
deck_adjust_image - HTTP:
POST /api/actions/block.adjust - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.setAlt
Alt text. Writes the description of an object: on the block for a shape, chart, line or text box, on the asset for a block that shows a picture, so two pictures of one asset share one description; the output names where it went.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
alt | string | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block alt <slideId>#<blockId> <alt> - MCP tool:
deck_set_alt_text - HTTP:
POST /api/actions/block.setAlt - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.shadow
Drop shadow. Writes or removes the drop shadow of objects: colour, opacity, angle, distance and blur, the absent ones at their defaults.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
shadow | object | null | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block shadow <slideId>#<blockId> --on --color <color> --opacity <opacity> --angle <angle> --distance <distance> --blur <blur> - MCP tool:
deck_set_shadow - HTTP:
POST /api/actions/block.shadow - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
block.autofit
Text fitting. Writes the fitting mode of a text carrying block: Do not autofit, Shrink text on overflow or Resize shape to fit text (grow, positioned blocks only); with apply the fit is measured and written in the same write, and the output names the fields written.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
autofit | "none" | "shrink" | "grow" | yes | |
apply | true | no | Measure the block and write the fit now: the box height for grow, the size step for shrink |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block autofit <slideId>#<blockId> <autofit> --apply - MCP tool:
deck_set_autofit - HTTP:
POST /api/actions/block.autofit - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
text.style
Text style. Marks a range of a Text italic, underlined, struck, superscript or subscript, gives it a text or highlight colour, or a size in pixels (true sets, false clears, null clears a colour or the size), as one text.replace of the whole Text; the output returns the new markup.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
path | string | yes | JSON pointer of the Text inside the block, such as /text |
range | [integer, integer] | yes | The range in the plain text of the Text, [start, end], one character per paragraph break |
marks | object | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide text style <slideId>#<blockId> <path> --range <range> --italic --underline --strike --superscript --subscript --color <color> --highlight <highlight> --size <px> - MCP tool:
deck_style_text - HTTP:
POST /api/actions/text.style - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
text.list
List options. Writes the marker, the preset and the items’ levels of a list block (a paragraph or text box converts to a list first); levels run 1 to 9.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
marker | "rule" | "bullet" | "number" | no | |
preset | one of 15 values | no | |
items | integer[] | no | The items a level write applies to; every item unless set |
level | integer | no | |
levelBy | 1 | -1 | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide text list <slideId>#<blockId> --marker <marker> --preset <preset> --items <items> --level <level> - MCP tool:
deck_set_list - HTTP:
POST /api/actions/text.list - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
text.spacing
Line and paragraph spacing. Writes the line spacing (a factor) and the space before and after paragraphs (px) of text blocks; null clears one.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
line | number | null | no | |
before | number | null | no | |
after | number | null | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide text spacing <slideId>#<blockId> --line <line> --before <before> --after <after> - MCP tool:
deck_set_spacing - HTTP:
POST /api/actions/text.spacing - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
text.columns
Columns. Writes the column count of text blocks, 1 to 3.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
columns | 1 | 2 | 3 | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide text columns <slideId>#<blockId> <columns> - MCP tool:
deck_set_columns - HTTP:
POST /api/actions/text.columns - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
text.indent
Indent. Steps the left indent of text blocks by 64 px in or out, or writes it; on a list block with items the items’ levels step instead.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
by | 1 | -1 | no | One step in (1) or out (-1) |
to | number | no | The indent in px |
items | integer[] | no | List items whose level steps |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide text indent <slideId>#<blockId> --in --out --to <to> --items <items> - MCP tool:
deck_indent_text - HTTP:
POST /api/actions/text.indent - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
text.case
Capitalization. Rewrites the characters of a range in lowercase, UPPERCASE or Title Case, marks and links kept, as one text.replace.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
path | string | yes | JSON pointer of the Text inside the block, such as /text |
range | [integer, integer] | yes | The range in the plain text of the Text, [start, end], one character per paragraph break |
mode | "lower" | "upper" | "title" | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide text case <slideId>#<blockId> <path> --range <range> <mode> - MCP tool:
deck_set_case - HTTP:
POST /api/actions/text.case - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
text.insert
Insert text. Inserts a string at a plain text offset of a Text, the special characters picker’s write, as one text.replace at [at, at].
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
path | string | yes | JSON pointer of the Text inside the block, such as /text |
at | integer | yes | |
text | string | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide text insert <slideId>#<blockId> <path> --at <at> <text> - MCP tool:
deck_insert_text - HTTP:
POST /api/actions/text.insert - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
chart.setData
Edit chart data. Writes a chart’s categories and series in one write; every series carries one value per category.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
categories | string[] | yes | |
series | object[] | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide chart set-data <slideId>#<blockId> < data.json - MCP tool:
deck_set_chart_data - HTTP:
POST /api/actions/chart.setData - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
chart.setKind
Chart type. Writes a chart’s kind; a pie keeps the first series and the output names the dropped ones.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
kind | "bar" | "column" | "line" | "pie" | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide chart set-kind <slideId>#<blockId> <kind> - MCP tool:
deck_set_chart_kind - HTTP:
POST /api/actions/chart.setKind - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
table.merge
Merge cells. Merges the cells from one corner to another into the anchor; the covered cells’ texts join the anchor’s with a line break.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
from | [integer, integer] | yes | |
to | [integer, integer] | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide table merge <slideId>#<blockId> --from <from> --to <to> - MCP tool:
deck_merge_cells - HTTP:
POST /api/actions/table.merge - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
table.unmerge
Unmerge cells. Removes the merge that covers a cell.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
at | [integer, integer] | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide table unmerge <slideId>#<blockId> --at <at> - MCP tool:
deck_unmerge_cells - HTTP:
POST /api/actions/table.unmerge - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
table.insertRows
Insert rows. Inserts rows above or below a row, merges and cell styles shifted, in one write.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
at | integer | yes | |
count | integer | no | |
where | "above" | "below" | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide table insert-rows <slideId>#<blockId> --at <at> --count <count> --above --below - MCP tool:
deck_insert_rows - HTTP:
POST /api/actions/table.insertRows - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
table.insertColumns
Insert columns. Inserts columns left or right of a column, every row gaining empty cells, merges and cell styles shifted, in one write.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
at | integer | yes | |
count | integer | no | |
where | "left" | "right" | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide table insert-columns <slideId>#<blockId> --at <at> --count <count> --left --right - MCP tool:
deck_insert_columns - HTTP:
POST /api/actions/table.insertColumns - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
table.deleteRows
Delete rows. Deletes the rows from one index to another; deleting every row removes the table.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
from | integer | yes | |
to | integer | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide table delete-rows <slideId>#<blockId> --from <from> --to <to> - MCP tool:
deck_delete_rows - HTTP:
POST /api/actions/table.deleteRows - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
table.deleteColumns
Delete columns. Deletes the columns from one index to another; deleting every column removes the table.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
from | integer | yes | |
to | integer | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide table delete-columns <slideId>#<blockId> --from <from> --to <to> - MCP tool:
deck_delete_columns - HTTP:
POST /api/actions/table.deleteColumns - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
table.distribute
Distribute rows or columns. Gives every row an equal height or every column an equal width from a total; without a total the widths or heights clear so the content sizes them.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
axis | "rows" | "columns" | yes | |
total | number | no | The measured or declared total in px |
range | [integer, integer] | no | The first and last index to distribute; every one unless set |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide table distribute <slideId>#<blockId> <axis> --total <total> - MCP tool:
deck_distribute_table - HTTP:
POST /api/actions/table.distribute - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
table.cellStyle
Cell fill and border. Writes the fill and the border of cells in one write; null clears one; a border weight of 0 draws no border.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
cells | [integer, integer][] | yes | |
fill | "ink" | "paper" | "ink-2" | "titanium" | "hair" | "hair-soft" | "plate" | "edge" | "green" | "amber" | "red" | "blue" | "accent" | string | null | no | |
border | object | null | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide table cell-style <slideId>#<blockId> --at <cells> --fill <fill> --border-color <color> --border-weight <weight> --border-dash <dash> - MCP tool:
deck_style_cells - HTTP:
POST /api/actions/table.cellStyle - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
shape.set
Shape. Writes the shape fields of shape blocks in one write: the preset, its adjust values, fill, border colour, weight, dash and corner radius; null clears one.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
kind | string | no | |
adjust | number[] | null | no | |
fill | "ink" | "paper" | "ink-2" | "titanium" | "hair" | "hair-soft" | "plate" | "edge" | "green" | "amber" | "red" | "blue" | "accent" | string | null | no | |
stroke | "ink" | "paper" | "ink-2" | "titanium" | "hair" | "hair-soft" | "plate" | "edge" | "green" | "amber" | "red" | "blue" | "accent" | string | null | no | |
width | 1 | 1.5 | 2 | 3 | 4 | null | no | |
dash | "solid" | "dot" | "dash" | "dashDot" | "longDash" | "longDashDot" | null | no | |
radius | number | null | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide shape set <slideId>#<blockId> --kind <kind> --adjust <adjust> --fill <fill> --stroke <stroke> --width <width> --dash <dash> --radius <radius> - MCP tool:
deck_set_shape - HTTP:
POST /api/actions/shape.set - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
line.set
Line. Writes the line fields of line blocks in one write: the kind, the start and end decorations, weight, dash, bend and points; a connect end attaches to a shape’s connection site and moves the end onto it, null detaches.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockIds | string[] | yes | |
kind | one of 7 values | no | |
start | one of 10 values | no | |
end | one of 10 values | no | |
weight | 1 | 1.5 | 2 | 3 | 4 | no | |
dash | "solid" | "dot" | "dash" | "dashDot" | "longDash" | "longDashDot" | null | no | |
bend | number | null | no | |
points | [number, number][] | no | |
connect | object | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide line set <slideId>#<blockId> --kind <kind> --start <start> --end <end> --weight <weight> --dash <dash> --bend <bend> --points <points> --connect-start <connectStart> --connect-end <connectEnd> --detach <detach> - MCP tool:
deck_set_line - HTTP:
POST /api/actions/line.set - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
shader.insert
Insert a shader. Lands a shader as an object on the named slide: the entry’s featured preset unless one is named (the diamond for liquid metal), the common controls with their resolved uniforms beside them, motion.play show, in the largest free rectangle of the body slot (or at the box named), selected in the editor; a slide that is not a canvas converts first.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
materialId | string | yes | A catalog id from shader.list (paper:liquid-metal) |
preset | string | no | A preset of the entry; its featured one when absent |
controls | object | no | |
at | object | no | The box in sheet px; the free rectangle when absent |
alt | string | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide shader insert <slideId> <materialId> --preset <preset> --controls <controls> --at <at> - MCP tool:
deck_shader_insert - HTTP:
POST /api/actions/shader.insert - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
shader.set
Set a shader field. One write on a shader block: /preset writes the preset and clears the control overrides and the uniforms; /controls or /controls/<name> writes the controls and their resolved uniforms together; any other pointer (/anchor, /motion, /uniforms, /twoTone, /plate) is one block.set. One history entry.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
path | string | yes | A JSON pointer under the block |
value | unknown | no | Absent removes the field |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide shader set <slideId> <blockId> <path> <value> - MCP tool:
deck_shader_set - HTTP:
POST /api/actions/shader.set - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
picture.dither
Dither. Writes the deck’s two tone screen over a picture’s continuous source as a non destructive field, or removes it with null; a slide that is not a canvas converts first when the picture is positioned; answers the variant key, the metrics and any warnings.
| Field | Type | Required | Description |
|---|---|---|---|
slideId | string | yes | |
blockId | string | yes | |
dither | object | null | yes | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide block dither <slideId>#<blockId> --pattern <pattern> --tone <tone> --cell <cell> --strength <strength> --black <black> --white <white> --gamma <gamma> --polarity <polarity> --off - MCP tool:
deck_dither_picture - HTTP:
POST /api/actions/picture.dither - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.
picture.materialize
Materialize dithers. Writes the variant files and records of every dithered picture on the named slides, prunes the variants no picture references when asked, or names the missing variants without writing under dryRun; server side.
| Field | Type | Required | Description |
|---|---|---|---|
slideIds | "all" | string[] | no | A subset; 'all' when absent |
blockIds | string[] | no | |
prune | boolean | no | |
scale | 1 | 2 | no | Device pixels per sheet pixel; 2 unless set |
dryRun | boolean | no | |
baseRevision | integer | yes | The revision the caller read; a stale value is rejected with 409 |
- Command line:
turboslide picture materialize <slideIds> --prune --scale <scale> --dry-run - MCP tool:
deck_materialize_pictures - HTTP:
POST /api/actions/picture.materialize - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: yes; send the
baseRevisionyou read.