renza

Import a deck

Importing is how an artifact made anywhere becomes a Renza deck. You can bring in a single HTML file, a multi-file bundle, or paste markup directly. Renza hosts it as-is — your exact design is never flattened into a template.

Ways to import

SourceWhat it isLimit
Upload a fileA single .html file8 MB
Paste markupRaw HTML pasted into the importer8 MB
Folder or .zip bundleindex.html plus local assets (images, video, CSS)100 MB total

For a bundle, Renza auto-detects the entry file (it looks for index.html). Relative asset references resolve through an isolated capability gate when the deck is served.

What happens on import

  1. Renza reads your HTML against the slide contract to find slide boundaries.
  2. The content is stored and a deck plus its first artifact are created.
  3. The deck opens in the viewer with present mode, thumbnails, and a shareable link ready.

If a deck ships its own chrome — nav buttons, a progress bar, keyboard handling — Renza detects that and adapts rather than fighting it. If a deck is clean (each slide marked data-renza-slide, no embedded navigation), Renza supplies present mode and navigation itself.

The slide contract

To get reliable slide parsing, mark each slide as a section with the data-renza-slide attribute:

<section data-renza-slide>
  <h2>Net revenue retention</h2>
  <!-- slide content -->
</section>

<section data-renza-slide>
  <h2>What we shipped this quarter</h2>
  <!-- slide content -->
</section>

A conforming deck delegates all chrome to Renza — you provide the slides, Renza provides present mode, keyboard navigation, and the comment layer.

Two CLI helpers keep you inside the contract: renza guide prints the full authoring contract (pipe it into a prompt to teach your agent), and renza check deck.html validates a deck against it without publishing.

Missing local assets

If you upload a single file whose markup references local images or video that weren't included, the import wizard lists the missing paths and lets you drop the files (or the folder) in. It matches by filename. You can also import anyway — unreferenced assets simply 404 in the viewer until provided.

Import programmatically

The same flow is available over the API, CLI, and SDK. Three steps: create the import, check it, then work with the deck it made.

1. Import a file

POST /v1/imports takes your HTML (a file over the CLI, pasted markup or a base64 bundle over the API) and creates a deck plus its first artifact:

Terminal
renza import deck.html --title "Q3 Board Deck"

(renza publish deck.html is the same call with more porcelain — it scans the folder, writes the assigned id back into the file, and opens the link.)

2. Check the import

The import record tells you what happened — status, the deck and artifact it created, and any parse problems:

Terminal
renza imports get imp_5d2a…

3. The deck

The import's deck field is the durable document — fetch it to get the title, status, share mode, and current artifact:

Terminal
renza decks get deck_2a9f8c1b

From here, share it or keep iterating.

Re-import to version, not duplicate

Provide an external_id on import to upsert: the first call creates the deck, and later calls with the same external_id add a new artifact version to that same deck. This is how an agent keeps one deck up to date instead of creating duplicates. See Comments & versions for what a new version means for open feedback.