Engineering story
A scripted demo engine for Wayland
Read the scripted demo-engine story for the design behind repeatable Wayland recordings.
Repeatable desktop and terminal demos
Describe keystrokes, commands and pauses in a `.reel` script. Wayreel starts a nested Wayland desktop, runs the demo, and captures a repeatable video or screenshot without taking over the desktop you are using.
curl -fsSL https://codeberg.org/ubunatic/wayreel/raw/branch/main/scripts/install.sh | shProject snapshot · measured 2026-10-26
| Week starting | Commits |
|---|---|
| 2026-08-03 | 17 |
| 2026-08-10 | 0 |
| 2026-08-17 | 3 |
| 2026-08-24 | 5 |
| 2026-08-31 | 2 |
| 2026-09-07 | 1 |
| 2026-09-14 | 0 |
| 2026-09-21 | 0 |
| 2026-09-28 | 0 |
| 2026-10-05 | 13 |
| 2026-10-12 | 0 |
| 2026-10-19 | 1 |
Go 1.26, Cobra, YAML, Linux/Wayland, nested Sway, Xvfb/Xephyr, PTYs, wtype, wf-recorder, grim, FFmpeg
Interactive demos
Why wayreel
Recording a GUI or terminal workflow by hand is difficult to repeat and interrupts other desktop work. Wayreel describes the steps in a .reel script and runs them in a separate nested Wayland session. A run can be captured and replayed for documentation, review or a user-configured CI job.
Recording pipeline
Recorded demos
Capabilities
Encode keystrokes, commands and pauses in versioned .reel scripts.
Run the recording in a nested Sway session while leaving the host desktop available.
Record terminal workflows and graphical applications in the same pipeline.
Capture output for project documentation, reviews and configured CI jobs.
Check required commands before a run starts so missing apps fail early.
Use FFmpeg to encode captured runs and configure output quality and speed.
Quickstart
Install the current release, check the required desktop and capture tools, then run one of the project examples or write a .reel script for your own workflow.
wayreel record path/to/demo.reelEngineering story
Read the scripted demo-engine story for the design behind repeatable Wayland recordings.
Architecture
Engineering story
Starting state: A mature Go project with a reel scripting language, a growing issue tracker, and an existing static product website.
Read the engineering story