# Downloads

The actions of the export group, with their input fields and their names on every transport.

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.
