5 actions: 5 on the command line, 3 as MCP tools, 3 as HTTP endpoints and 3 in the page.
export.run
Export. Exports the deck to PPTX in flatten (perfect, pixel identical) or native (editable text) mode and returns the verified report.
| Field | Type | Required | Description |
|---|---|---|---|
format | "pptx" | "pdf" | yes | |
mode | "native" | "flatten" | no | Defaults to flatten, the perfect mode: a 2x page raster over an invisible text layer, every page measured within 0.1 percent (SPEC 8.2) |
theme | "light" | "dark"[] | no | One file per theme; defaults to both, which also writes <deckId>-both.zip |
fonts | "exact" | "standard" | no | The export font set (SPEC 8.4; docs/DESIGN.md 4.3): standard names Inter, Inter Medium, Inter Display and Inter Display Medium, exact names Inter Text 14 to Inter Text 26; defaults to standard |
embedFonts | boolean | no | Native mode only: embed the export faces as fntdata parts; off by default, and flatten never embeds (docs/pptx.md) |
headings | "raster" | no | Write every heading as a PNG instead of a text box (SPEC 8.3) |
rasterScale | "auto" | 2 | 3 | no | Device pixels per sheet pixel of the raster PNGs: auto (3x icons and marks, 2x the rest), 2 or 3 (SPEC 8.6) |
pictureScale | 2 | 3 | no | The scale two-tone pictures are regenerated at from the one-bit image (SPEC 8.2) |
excludeShareAlike | boolean | no | Replace share-alike pictures with the paper plate and its credit (SPEC 11, open question 12) |
svgVector | boolean | no | Write the vector of every svg picture and logo as asvg:svgBlip beside its PNG blip (docs/archive/rounds/VECTOR.md 4.6); on by default. false writes the PNG blip alone, which the parked control export.svg.vector selects |
baseline | "libreoffice" | "none" | no | The renderer whose measured first-baseline constant offsets native text boxes (calibration.json); defaults to libreoffice, the verify renderer |
verify | boolean | no | Render the files back through LibreOffice and diff every page against the web render (SPEC 8.5) |
slideIds | "all" | string[] | no | A subset to export; defaults to 'all' |
includeSkipped | boolean | no | Export the skipped slides too; left out by default |
includeNotes | boolean | no | Carry the speaker notes; left out by default |
includeComments | boolean | no | Write the comment threads as classic p:cm parts, editors and owners only; left out by default |
out | string | no | Output directory; defaults to .turboslide/export |
batch | object | no | Hosted only (window and http): render one batch of slides of a batched export into the job |
merge | object | no | Hosted only: build the file from the stored batches of the job (SPEC-2 8.1) |
- Command line:
turboslide export <format> --mode <mode> --theme <theme> --fonts <fonts> --embed-fonts --exclude-share-alike --baseline-target <baseline> --include-skipped --include-notes --include-comments --no-svg-vector --verify --out <out> - MCP tool:
deck_export - HTTP:
POST /api/actions/export.run - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: no.
export.check
Check export file. Reopens an exported PPTX with python-pptx, walks the package against its content types and relationships, and reports the pages, size, raster formats, fonts and any invalid part.
| Field | Type | Required | Description |
|---|---|---|---|
file | string | yes | The .pptx to check |
python | string | no | An interpreter with python-pptx; defaults to TURBOSLIDE_PYTHON, then .turboslide/venv/bin/python when it exists |
quickLook | boolean | no | Render the first page through macOS QuickLook when qlmanage exists; defaults to on |
out | string | no | Where the QuickLook thumbnail lands; defaults to a folder beside the file |
- Command line:
turboslide export check <file> --python <python> --out <out> - MCP tool: No MCP tool.
- HTTP: No HTTP endpoint.
- Runs on: command line.
- Changes the presentation: no.
export.text
Download as plain text. The deck as plain text: one block of paragraphs per slide in order, table cells joined by tabs, a blank line between slides, the notes after each slide when asked; skipped slides left out unless asked.
| Field | Type | Required | Description |
|---|---|---|---|
slideIds | "all" | string[] | no | A subset; defaults to 'all' |
includeNotes | boolean | no | Append each slide’s speaker notes |
includeSkipped | boolean | no | Include the skipped slides |
includeComments | boolean | no | Append each slide’s comment threads, for readers with readComments (SPEC-3 5.8) |
- Command line:
turboslide export txt <slideIds> --include-notes --include-skipped --include-comments - MCP tool:
deck_export_text - HTTP:
POST /api/actions/export.text - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: no.
build.run
Build standalone. Writes the single-file HTML deck with fonts and assets inlined and asserts the size budget.
| Field | Type | Required | Description |
|---|---|---|---|
out | string | yes | |
budgetMB | number | no | Defaults to 16 |
quality | integer | no | |
includeSkipped | boolean | no | Build the skipped slides too; left out by default |
includeNotes | boolean | no | Carry the speaker notes into the file |
- Command line:
turboslide build --out <out> --budget <budgetMB> - MCP tool:
deck_build - HTTP:
POST /api/actions/build.run - Runs on: command line, MCP, HTTP, page.
- Changes the presentation: no.
fonts.build
Build export fonts. Cuts the static export font set from InterVariable into packages/fonts/export with fonts.json (scripts/build-fonts.py); --check reports a stale committed set.
| Field | Type | Required | Description |
|---|---|---|---|
check | boolean | no | Compare the committed set with a fresh build; exit 1 when it differs |
python | string | no | The Python binary; defaults to .turboslide/venv/bin/python, created from scripts/requirements.txt when missing |
- Command line:
turboslide fonts build --check - MCP tool: No MCP tool.
- HTTP: No HTTP endpoint.
- Runs on: command line.
- Changes the presentation: no.