Skip to content

nolabs-ai/demonator

Repository files navigation

demonator

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

Install

cargo install demonator

Or build from source:

cargo install --path .

Usage

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 changes

Press Enter after each step to run the command and advance to the next one.

Quick start

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

Features

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.

License

Apache-2.0

Releases

Packages

Contributors

Languages