Typewriter-style text display for terminal demos. Demonator reads a YAML config file of commands and "types" them out character-by-character with realistic timing, then executes each command when you press Enter — so live terminal demos look natural and polished.
📖 Full documentation: lukehinds.github.io/demonator
cargo install demonatorOr build from source:
cargo install --path .demonator # uses demo.yml in the current directory
demonator -c my.yml # use a custom config file
demonator --dry-run # preview demo flow without executing
demonator --watch # re-run demo when config file changesPress Enter after each step to run the command and advance to the next one.
Create demo.yml:
speed: 20
clear: true
highlight: true
steps:
- comment: "Let's build the project."
style: cyan
- text: "cargo build --release"
- text: "cargo test"
- text: "echo 'All done!'"Run it:
demonator| Feature | Description |
|---|---|
| Commentary | Styled narration text between commands |
| Fake output | Pre-defined command output for offline demos |
| Syntax highlighting | Colorize commands as they are typed |
| Chapters | Named sections with keyboard navigation |
| Auto-advance | Hands-free mode for recording with asciinema |
| Wait-for-pattern | Pause until regex matches in output |
| Setup & teardown | Hidden environment prep and cleanup |
| Environment variables | Global and per-step env: for commands |
| Interactive commands | Expect-style responses to prompts |
| User prompts | Collect yes/no or free-text input from the presenter |
| Conditional steps | Branch based on captured variables |
| Capturing output | Extract values with regex and reuse them in later steps |
See the configuration reference for all global options, per-step overrides, and CLI flags.
Apache-2.0