Skip to main content
This quickstart installs DeckTalk and builds the scaffold video, first with no account and then with your voice. Only part 3 needs an ElevenLabs API key. If an agent does these steps for you, give it the Reference card.

Before you start

  • You need Python 3.12 or later.
  • You need uv, pipx, or pip.
  • On Linux, step 2 needs sudo or root.
  • Part 3 needs an ElevenLabs API key and a voice id.

Part 1: Install DeckTalk

1

Install DeckTalk

Install the decktalk command with your Python installer.
uv is a Python package manager. If you do not have it, install uv first.
Check that the installer names the decktalk executable.
2

Download Chromium, ffmpeg, and KaTeX

decktalk setup downloads the tools that DeckTalk runs. Run it one time per machine.
Check that the last line is setup complete. On Linux, this step asks for sudo. What setup downloads says where each download goes.
3

Check the tools

decktalk doctor reports each tool that DeckTalk needs.
Check that every row says ok. If a row does not, run decktalk setup again.

Part 2: Build the scaffold without an account

4

Create the scaffold

decktalk init writes the scaffold, a complete example project.
If you skipped step 2, run decktalk setup now, then run init in a new folder. init copies the cached KaTeX into the project.
5

Go into the project

6

Open the slides in a browser

Open the scaffold’s main page. This takes seconds, and you see the slides before you build.
The page my-lesson in index mode. It lists scenes 1, 2, 4, 6, 7, and 5, each with a play link. Under each scene, one step shows its hold seconds and cue ids.

The scene index lists each scene of the page with its steps and cue ids.

Check that the page shows an index of its scenes and steps.
7

Build the video without an account

A silent build uses estimated word times and a click track, so it needs no key. Recording runs in real time. On a MacBook Pro with Apple M5 Pro and 64 GB memory, this build took about 276 seconds. Leave it running, and read What the example video shows.
Check that the last line starts with built.
8

Play the video

The video is 257.72 seconds long, in nine sections, with a soft click on each word. Sections 5 and 7 play titled slates, because the scaffold ships no clip files. What the example video shows describes each section.

Part 3: Add your voice and change a sentence

If you have no ElevenLabs account, stop here. The silent video is a complete build.
9

Copy the example settings file

10

Set your key and voice id

In .env, replace the two placeholders with your API key and voice id.
.env
A value that still starts with < counts as unset. DeckTalk never prints the key and never writes it under build/.
11

Build the video with your voice

decktalk build without --silent spends ElevenLabs credits. What spends credits lists the cost.
This build voices every section, because it never reuses the click track. Check that the last line starts with built.
12

Add one count

In section 1 of script.md, add a fourth count to the Open.
script.md
In section 1 of cues.json, add a cue for the new word after the cue for “three”.
cues.json
Scene 1 draws one box and one step for each count word it hears, so the page needs no change.
13

Build sections 1 and 2

DeckTalk voices only section 1 again. It records sections 1 and 2 again, because scene 2 opens on the Open’s last frame and shows its count times. The other sections take their narration from the cache. Rebuild one section says what each kind of edit runs again.
If you are not sure which sections changed, run decktalk build. It voices only the sections whose text changed.
14

Check that a reveal starts on its word

Check that the result is changed. The offset column is the time from the cue time to the onset of the reveal, in milliseconds. Verify defines every column.

What the example video shows

The scaffold is a short lesson in nine sections. Sections 4 to 8 share the title “The edit”, so the video has five chapters. Each page section names its page and its scene, and each clip section names its video file. Both clip sections set optional = true, so decktalk build --strict plays their slates and still passes. Add a clip section shows how to fill them. The scaffold’s decktalk.toml also has a section 0 in comments, which opens the video on a clip of your own. Add a clip section shows how to use it.

Next