v2.4.0
🚀 Highlights
-
Export a play as a video
(#418) Demo Time plays your demo on its own in a separate VS Code window, records it, and writes an MP4, with an optional GIF, captions, chapters, and title and end cards. Run it from VS Code, or from a terminal or CI withnpx @demotime/video export. -
Preflight check
(#459) Find the broken moves before you are on stage. The preflight check goes through the whole play without running it and reports missing files, patches that don’t apply, unknown scene ids, unset variables and more in the Problems panel and in the act editor. -
AI skills
(#419) GitHub Copilot, Claude Code and other assistants that supportSKILL.mdcan now plan your talk, create slides and slide themes, and script live coding demos with act files that load and run. -
Speaker notes in your slides
(#421) Write the notes of a slide in the slide itself with a<!-- notes ... -->block. The presenter view, the remote control and the PDF export show them. -
Help while writing slides
(#420, #427, #442) Completion, hover and diagnostics for every front matter property, a warning when content doesn’t fit the slide, and the newautoFitproperty to scale it down. -
New settings view
(#463) The Demo Time: Settings view has categories, search, a Modified only filter, a reset per setting, and now includes every Demo Time setting.
✨ New & Notable Features
Video Export
-
Demo Time: Export play as videoCommand (#418) – Export the whole play or one act in 16:9, 1:1 or 9:16. Add a GIF for a README, SRT captions from the scene titles or notes, chapters, and title and end cards made from the first and last slide. The files go to.demo/exports, and Export again reuses your choices. -
@demotime/videoCLI – Export from any terminal or in CI withnpx @demotime/video export, without opening VS Code or installing Demo Time first. Pick a range like--range act:2/scenes:3-5, a--preset, captions, a GIF and more. -
Unattended run – The
Demo Time: Run play unattended for recordingandDemo Time: Stop unattended runcommands play the whole play or an act in the current window, so you can record it with your own tool. -
Settings –
demoTime.videoExport.command,demoTime.videoExport.extensionanddemoTime.videoExport.options.
Preflight Check
-
Demo Time: Run preflight checkCommand (#459) – Checks every move in the play without running it. It reports:- missing
path,contentPath,patchand notes files copy,moveandrenamedestinations that already exist- patches that don’t apply to their snapshot
- moves without a property they need, or with an unknown
action runDemoByIdmoves for scene ids that don’t existopenSlidemoves for a slide number the file doesn’t have{STATE_...}and{SCRIPT_...}variables that no earlier move sets- snippet arguments that the
argsdon’t set
The check follows the play in order, so a file that an earlier move creates, copies, moves or deletes is taken into account.
- missing
-
Go to the move – Each problem links to its scene and move, like
Scene 3 · Move 2, and opens the act editor with that move selected. -
Problems in the act editor – The act editor shows the problems of its act while you edit, also before you run the check: a count of errors and warnings in the header, counts on the scenes and moves, and the message below the field it’s about.
-
Create file – Problems about a missing file have a Create file action, in the act editor and as a quick fix in the Problems panel.
AI Skills
-
Four skills (#419) –
demotime-talk-plan,demotime-slides,demotime-slide-themeanddemotime-code-demo. Their references are generated from the documentation and the act file JSON schema, so they match the release you have installed. -
GitHub Copilot in VS Code – Copilot loads the skills from the extension; there is nothing to install.
-
Demo Time: Install or update AI skillsCommand – Install the skills for GitHub Copilot, Claude Code or other agents in the project or user skills folder. After an update, Demo Time offers to update the skills that an older version installed. -
Claude Code plugin – Install the skills with
/plugin marketplace add estruyf/vscode-demo-timeand/plugin install presentation-skills@demotime. Every release also has the skills asdemotime-skills.zipfor other assistants.
Writing Slides
-
Front matter completion and hover (#427) – Completion suggests the properties a slide doesn’t set yet, with the properties of its layout first, and the values of
layout,theme,transition,controlsPosition,progressand thetrue/falseproperties. Hover shows the description, values, default and layouts of a property. -
Front matter diagnostics (#420) – The Problems panel shows invalid YAML, misspelled properties with a “did you mean” quick fix, unused properties, invalid values, missing
image,video,svgFile,customThemeandcustomLayoutfiles, invalid Handlebars in layouts, headers and footers, and aWord: textline that hides slide content. -
Slide front matter JSON schema (#427) – Available at
https://demotime.show/slide.schema.json, generated from the same definitions as the completion, hover and diagnostics. -
Content that doesn’t fit (#442) – The slide preview shows a Content doesn’t fit the slide badge with how much the content is too tall or too wide, and marks every edge where it is cut off. Slides of the file that don’t fit also show in the Problems panel and in the Go to slide overview.
-
autoFitProperty (#442) – Scales the content of a slide down, to at most 50%, when it doesn’t fit. It works in the preview, presentation mode, the overview, the PDF export and the presenter view, and the quick fix of the overflow warning adds it for you. -
Preview and editor sync (#443) – Moving the cursor to another slide shows that slide in the preview, the preview opens at the slide under the cursor, and double-clicking a slide moves the cursor to its source. Turn it off with the
demoTime.slidePreviewSyncsetting. -
backgroundandclassProperties (#424) – Change the look of one slide without a custom layout.backgroundtakes a colour, a gradient, or an image path or URL, andclassadds CSS classes for your custom theme to style. Set them in the document front matter to use them for the whole deck. They also apply in the overview, the PDF export and the presenter view. -
dt-actionComponent (#440) – Run a scene by itsidfrom a slide, like a “Run it” button next to a code sample or an agenda that jumps to each act. It renders as a button, or as a link withvariant="link", and is styled with the--demotime-action-*CSS variables. Adt-actionwithout anid, or with anidno scene uses, shows a warning.
Presenting Slides
-
Speaker notes in slides (#421) – A
<!-- notes ... -->block is removed from the slide and shown in the presenter view, the remote control and the/api/notesendpoint, updating on every slide change. Slides without notes fall back to the notes file of the scene. Write them from the preview with Add speaker notes in the More actions menu. -
Hidden slides (#444) – The
hidefront matter property keeps a slide in the file without presenting it. Next/previous, auto-advance and the presenter view skip it, and{{crntSlideIdx}}and{{totalSlides}}don’t count it. Toggle it from the preview with Hide slide while presenting. -
Header and footer placeholders (#447) –
{{slideTitle}},{{sceneTitle}},{{actTitle}},{{presentationTitle}}and{{date}}, with{{date "d MMM yyyy"}}to format it. Set the presentation title with thedemoTime.presentationTitlesetting. -
Progress bar (#447) – Show a thin progress bar at the top or bottom of the slides with the
demoTime.slideProgressBarsetting or theprogressfront matter property, styled with the--demotime-progress-*CSS variables. -
Reduced motion (#451) – Slide transitions become a short crossfade, text animations and animated SVGs show their end state, and zoom and the laser pointer no longer animate. It follows the
workbench.reduceMotionsetting of VS Code, or set it withdemoTime.slideReducedMotion(auto,on,off). Custom themes can follow it with thedata-reduced-motionattribute. -
Clicker support (#436) –
PageDownandPageUprunDemo Time: StartandDemo Time: Previousin presentation mode, for presenter clickers that send these keys.dt-listhas a newclicksattribute to set the click on which its first item appears.
PDF Export
-
Speaker notes (#421) – The
demoTime.pdfExport.notessetting adds the notes below each slide or on a separate page. -
Hidden slides (#444) – Hidden slides are left out by default. Include them with the
demoTime.pdfExport.includeHiddenSlidessetting.
Moves and Status Bar
-
waitTimeoutProperty (#400) – Let theexecuteTerminalCommandmove wait longer than 5 seconds for a long-running command, like a build or a test run, before the next move runs. Thanks to @88871. -
demoTime.nextSceneButtonTextSetting (#380) – Show a fixed text, likeNext, on the next scene button in the status bar, so the button no longer changes width with every scene. -
Secondary side bar –
demoTime.presentationViewToggleshas a newsecondarySideBaroption, on by default, so presentation view also closes the side bar where VS Code shows Chat.
Settings View
-
New layout (#463) – Settings are grouped in categories with a navigation list, a search box (Cmd/Ctrl+F), a Modified only filter, markers for modified and unsaved settings, and a Reset to default link per setting.
-
Every setting – The settings that were missing from the view are now there, including the zoom, remote, analytics, recording, PDF export, redaction and video export settings.
-
Highlight colors – Pick a VS Code theme color, a custom color with opacity, or no color for
demoTime.highlightBorderColoranddemoTime.highlightBackground, with a preview in the colors of your theme.
🛠 Improvements & Fixes
- Reveal slide source (#443) – The Open slide source action of the slide controls is now Reveal slide source, and puts the cursor on the current slide instead of at the top of the file.
- Click steps (#436) –
dt-show,dt-hideanddt-listnow advance with the remote, the API, auto-advance, the Next button andPageDown, not only the right arrow key. Clicks on the slide controls no longer count as a step. - PDF export of click steps (#437) –
The PDF shows the final state of each slide instead of empty
dt-listlists and hiddendt-showcontent. - PDF export themes – Themes that target
[data-theme]now also apply in the PDF. - Front matter parsing (#428,
#429) – Document front matter followed
directly by
---no longer shows as an extra slide, a slide starting with aWord:line (likeNote: remember this) is no longer read as front matter, and---inside a~~~code block no longer splits the slide. - Front matter help in every block (#438) – Hover and completion work in the front matter of every slide, not only the first.
- Video autoplay (#430) – Video slides
respect
autoplay: false. - Custom layout errors (#431) – A
missing
customLayoutfile or invalid Handlebars now shows an error on the slide and in the Demo Time output channel instead of failing silently. - Mermaid diagrams (#432) – Diagrams
with double quotes or a
<in their code, likeA["Start here"]or a<br/>in a label, render on the slide and in the PDF. - Escape while zoomed (#433) – The
first
Escapeonly leaves zoom and no longer turns off presentation view. - Presenter view next-slide preview
(#434,
#435) – The preview uses the
slideof the nextopenSlidemove, scenes without anidno longer share a cached preview,/previewreturns HTML instead of a cached screenshot, and the card refreshes when the next slide has no H1. - Go to slide overview (#442) – Slides show with their own theme and all click steps revealed, and no longer add click steps to the current slide.
- Slide numbers in headers and footers
(#447) –
{{crntSlideIdx}}and{{totalSlides}}work in a slide’s ownheaderandfooter, and in the presenter view’s next-slide preview. - Remark plugins (#453) –
transformMarkdownrunsremarkPluginsbeforeremark-rehype, so they see the markdown tree. - Zoom moves (#463) –
zoomInandzoomOutrespect thedemoTime.zoomsetting. - Act file JSON schema (#419) – An act
without
versionis no longer validated as a version 3 act, andpositionCursorno longer requires anendPlaceholder.
📚 Documentation
- Export a play as a video – Exporting from VS Code and the command line, captions, timing, and keeping the video in sync in CI.
- Preflight check – What the check covers and how it follows your play.
- AI skills – The four skills and how to install them for Copilot, Claude Code and other assistants.
- Front matter reference – Every slide front matter property, generated from the same definitions as the editor support.
- Slides – New sections on hiding slides,
slide background and classes,
styling a single slide in a custom theme,
content that doesn’t fit,
problems in slide files,
notes in your slides,
the
dt-actioncomponent, header and footer placeholders, the progress bar and reduced motion. - Fixes – The slide themes page lists all built-in themes, the custom layout page covers images,
{{metadata.webViewUrl}}and theeqanddatehelpers, and the descriptions of theopenSlidemove, the video layout and several settings are corrected.
🔗 See Also
- Full project changelog: CHANGELOG.md