Install DeckTalk, build the scaffold video without an account, then add your voice.
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.
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.
decktalk doctor
python ok 3.13.1 (~/.local/share/uv/tools/decktalk/bin/python)chromium ok 151.0.7922.34ffmpeg ok ~/.local/share/uv/tools/decktalk/lib/python3.13/site-packages/static_ffmpeg/bin/darwin_arm64/ffmpegffprobe ok ~/.local/share/uv/tools/decktalk/lib/python3.13/site-packages/static_ffmpeg/bin/darwin_arm64/ffprobeconfig ok none (optional, at ~/Library/Application Support/decktalk/decktalk.toml)katex ok ~/Library/Caches/decktalk/katex/0.18.7
Check that every row says ok. If a row does not, run decktalk setup again.
decktalk init writes the scaffold, a complete example project.
decktalk init my-lesson
created ~/my-lesson decktalk.toml the plan: sections -> pages or clips, voice, mix, soundscape script.md the narration (## N. sections) cues.json which spoken phrase each visual lands on deck/ index.html, lesson.html, decktalk-runtime.js (open a page for its scene index) media/ your clips, b-roll, markers.jsonnext: cp .env.example .env (ELEVENLABS_API_KEY, ELEVENLABS_VOICE_ID), then `decktalk build` or `decktalk build --silent` to render with placeholder narration and no API key
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
cd my-lesson
6
Open the slides in a browser
Open the scaffold’s main page. This takes seconds, and you see the slides before you build.
macOS
Linux
Windows
open deck/index.html
xdg-open deck/index.html
start deck\index.html
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.
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.
If you have no ElevenLabs account, stop here. The silent video is a complete build.
9
Copy the example settings file
macOS and Linux
Windows
cp .env.example .env
copy .env.example .env
10
Set your key and voice id
In .env, replace the two placeholders with your API key and voice id.
.env
ELEVENLABS_API_KEY=<your-elevenlabs-key> # Profile, then API keys, on elevenlabs.ioELEVENLABS_VOICE_ID=<voice-id> # the id on a voice's card under Voices
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.
decktalk build
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
-A bowl. [beat] A ball. [beat] Watch it step down on my count. [beat] One. [beat] Two, three. [beat]+A bowl. [beat] A ball. [beat] Watch it step down on my count. [beat] One. [beat] Two, three, four. [beat]
In section 1 of cues.json, add a cue for the new word after the cue for “three”.
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 build --only 1 --only 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
decktalk verify 1:1.1four
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.
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.
Section
Plays
What it shows
1. Open
deck/index.html, scene 1
A bowl and a ball appear on their words. The ball steps down on each count word, and each count word’s start time appears.
2. How it works
deck/index.html, scene 2
A script card and a slide card appear. A waveform runs under one line, and the slide card grows into the lesson.
3. How AI learns
deck/lesson.html, scene 3
A box of knobs guesses, and a meter shows its error. A nudge to the knobs lowers the error. A ball steps down a bowl, and the lesson ends on chips that do the math.
4. The edit
deck/index.html, scene 4
The lesson shrinks into a video player. Five chips name the video’s parts, and the script opens under them.
5. The edit
the clip media/edit-before.mov
The Open before the edit, inside the player. A titled slate plays until the file exists.
6. The edit
deck/index.html, scene 6
The script gains one word, “four”, and a new box waits for it. The build voices only part one again.
7. The edit
the clip media/edit-after.mov
The Open after the edit, with a fourth count. A titled slate plays until the file exists.
8. The edit
deck/index.html, scene 7
Before and after stand side by side with their count times and a check. Then the player grows back into the video.
9. Close
deck/index.html, scene 5
The end card.
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.