Demo Time empowers you to script flawless coding demonstrations and present slides seamlessly within Visual Studio Code. Eliminate typos and missteps, ensuring engaging and stress-free presentations.
- Scripted Demos: Automate your coding demonstrations to maintain a perfect flow.
- Code Highlighting: Emphasize specific code segments to draw audience attention.
- Integrated Slides: Present slides directly within VS Code for a cohesive experience.
- Customizable Actions: Execute various VS Code commands and tasks as part of your demo.
- PowerPoint Integration: Seamlessly move from slides to code using the PowerPoint integration.
- Companion Desktop App: Use the Demo Time Companion desktop app for screen overlays, blur effects, spotlight mode, zoom, and message displays during your presentations.
- Installation: Install the extension.
- Initialization: After installation, initialize the extension in your project by opening the
Explorer panel in VS Code. Locate the Demo Time view and click on the "Initialize"
button. This action creates a
.demofolder in your workspace containing either ademo.jsonordemo.yamlfile, depending on your chosen format. - Creating Demos: Populate the demo file with your actions, defining each step and action as required. More information about the available actions can be found in the supported actions documentation section.
For detailed instructions, advanced configurations, and best practices, please refer to the comprehensive documentation available at https://demotime.show. This resource offers in-depth guides and examples to help you maximize the extension's capabilities.
Here is an example demo:
{
"$schema": "https://demotime.show/demo-time.schema.json",
"title": "Sample demo",
"description": "This is a sample demo configuration to show the capabilities of the extension.",
"demos": [
{
"title": "Step 1",
"description": "This is step 1",
"steps": [
{
"action": "create",
"path": "sample.json",
"content": "{\n \"firstName\": \"Elio\",\n \"lastName\": \"Struyf\"\n}"
},
{
"action": "open",
"path": "sample.json"
},
{
"action": "highlight",
"path": "sample.json",
"position": "2:3"
}
]
},
{
"title": "Step 2",
"description": "This is step 2",
"steps": [
{
"action": "snippet",
"contentPath": "./snippets/insert_and_highlight.json",
"args": {
"MAIN_FILE": "sample.json",
"CONTENT_PATH": "content.txt",
"CONTENT_POSITION": "3",
"HIGHLIGHT_POSITION": "4"
}
}
]
}
]
}You can also explore a comprehensive example in the following GitHub Repositories:
- Introduction presentation about Demo Time
- presentation-github-actions
- presentation-m365-playwright-github-actions
The Demo Time Companion is a desktop application that enhances your presentations with screen overlays and effects:
- 🌫️ Blur Overlay: Temporarily blur the screen during transitions
- 🔦 Spotlight Mode: Highlight specific areas by dimming everything else
- 🔍 Zoom In/Out: Smooth zoom functionality for detailed views
- 💬 Message Overlay: Display custom messages on screen
- ⌨️ Keyboard Shortcuts: Global shortcuts for all actions
- 🔌 HTTP API: Control from VS Code or any application
# Build the companion app
cd apps/companion-app
yarn install
yarn tauri:build
# Run in development
yarn tauri:devThe app starts an HTTP API on http://127.0.0.1:42042 that you can call from your demos:
# Toggle blur overlay
curl -X POST http://127.0.0.1:42042/action \
-H "Content-Type: application/json" \
-d '{"action": "blur.toggle"}'
# Show a message
curl -X POST http://127.0.0.1:42042/action \
-H "Content-Type: application/json" \
-d '{"action": "message.show", "params": {"text": "Switching to slides..."}}'For full documentation, see apps/companion-app/README.md and apps/companion-app/INTEGRATION.md.
Run linting and unit tests with:
npm run lint
npm testTests use Jest with built-in coverage. New tests are located in the tests/
directory.
If you enjoy my work and find them useful, consider sponsor me and the ecosystem to help Open Source sustainable. Thank you!
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

