tui
A terminal UI turned into a demo video worth publishing. Written as a spec, recorded in a sandbox, scanned before it ships
- Skills
- record
- Carries
- skills
this project
uze tui@aithis machine
uze install tui@ai -mA video is a spec
One demo.yml, next to the video it makes, says everything: what the video
shows in order, the sandbox it is recorded in, the files the app works on, and
how it is cut. To change the video, edit the file and run it again.
tui-record init .demo/demo.yml # scaffold a spec
tui-record validate .demo # check it
tui-record beats .demo # read it back as prose
tui-record seed .demo # build the sandbox and fixtures
tui-record probe .demo # try a selector against the live app
tui-record run .demo # record, cut, scan, render
tui-record recut .demo # cut and render the last take againThe key-by-key format is in references/spec.md.
What it guarantees
- Never your machine. The take runs in a sandbox with its own
HOME, prompt and git identity. Your username and paths never reach the screen. - Every gesture is checked. A step that did nothing aborts the take instead of shipping a video where the app looks broken.
- Waiting is cut, not skipped. A build or a model answer is shortened to a fixed span. No frames are dropped, so nothing renders blank.
- Nothing leaks. Before a video is handed over it is scanned for usernames, hostnames, tokens, keys and private IPs, and redacted without shifting a single character on screen.
Skills
record
model + userRecord a terminal UI as a demo video worth publishing - an asciinema cast driven by a scripted, verified take, then cut and rendered to a GIF. Use whenever someone asks to record, film, capture or demo a TUI or CLI; to produce a README hero, a docs landing animation, a release-notes clip or a bug repro; or to redo a recording that is too long, too slow, robotic, visually off, or that leaked personal data. Also use when a recording driver misclicks, a beat silently does nothing, a long-running operation inside the app makes the video wait, or a rendered GIF comes out blank, padded in the wrong colour, or too heavy to embed. Not for editing existing video files, screen-recording a GUI, or writing docs prose to accompany a demo.
Needs bash, tmux, asciinema (2.x or 3.x) and python3 for recording and cutting; agg for GIF rendering; ffmpeg optional, for inspecting frames and for mp4.
Scripts tui-record
References driving.md, post-production.md, spec.md
Read record/SKILL.md