Per-project/window tmux recorder using asciinema; records the current pane
and follows the user around the current window.
Requires Python 3.13 or newer and tmux.
Install tvmux from pip or uv, or run standalone from uvx, like so:
$ uvx tvmuxThe above will open a textual user interface, where you can view ongoing
recordings, start + stop them etc.
You can start recording from the command line too:
# Start recording the current window
tvmux rec
# list ongoing recordings
tvmux rec ls
# stop them all
tvmux rec stop
# or pick them off like Docker containers
tvmux rec stop $(tvmux rec ls -q)There's also a background server you can manage, and a CLI generated straight from its REST API if you want to poke at it:
tvmux server start|stop|status
tvmux api --helpBy default, it'll save to ~/Videos/tmux/YYYY-MM/. See all configuration options:
# Show default config (TOML format)
tvmux config defaults
# Show available environment variables
tvmux config defaults --format=env
# Show your current config
tvmux config showTo customize, create ~/.tvmux.conf or use environment variables like TVMUX_OUTPUT_DIRECTORY.
| 📺 asciinema | The terminal recorder |
| 🪟 textual | TUI library for Python |
| 🗔 bittty | My terminal |
| 🎬 sh2mp4 | Convert this to MP4 files |