Blazingly fast terminal recorder that generates animated gif images for the web written in rust for MacOS.
- Screenshotting your terminal with 4 frames per second (every 250ms)
- Generates high quality small sized animated gif images
- Build-In idle frames detection and optimization (for super fluid presentations)
- Runs (only) on MacOS
- Uses native efficient APIs
- Runs without any cloud service and entirely offline
- No issues with terminal sizes larger than 80x24
- No issues with fonts or colors
- No issues with curses based programs
- No issues with escape sequences
- No record and replay - just one simple command to rule them all
- Hidden feature: Record every window you want
- Written in Rust 🦀
NOTE for now
t-rec depends on
imagemagick, but this is going to change soon.
❯ brew install imagemagick ❯ cargo install -f t-rec
You can record not only the terminal but also every other window. There 2 ways to do so:
1) abuse the env var
TERM_PROGRAM like this:
- for example lets record a window 'Google Chrome'
- make sure chrome is running and visible on screen
❯ TERM_PROGRAM="google chrome" t-rec Frame cache dir: "/var/folders/m8/084p1v0x4770rpwpkrgl5b6h0000gn/T/trec-74728.rUxBx3ohGiQ2" Press Ctrl+D to end recording Recording Window: "Google Chrome 2"
2) use the env var
WINDOWID like this:
- for example let's record a
- figure out the window id program, and make it
- make sure the window is visible on screen
- set the variable and run
❯ t-rec --ls-win | grep -i code Code | 27600 # set the WINDOWID variable and run t-rec ❯ WINDOWID=27600 t-rec Frame cache dir: "/var/folders/m8/084p1v0x4770rpwpkrgl5b6h0000gn/T/trec-77862.BMYiHNRWqv9Y" Press Ctrl+D to end recording
Testers on different Apple hardware needed. Also, exotic shell setups are very interesting for testing.
To contribute to
t-rec you can either checkout existing issues labeled with
good first issue or open a new issue and describe your problem.
Also every PR is welcome. Support for Linux and Windows needs to be done.