DEV Community

Cover image for 🎉 🚀 🍺 New release of Terminal Recorder - t-rec
Sven Kanoldt
Sven Kanoldt

Posted on

🎉 🚀 🍺 New release of Terminal Recorder - t-rec

Blazingly fast terminal recorder that generates animated gif images for the web written in rust for MacOS.

Demo

demo

Features

  • 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 🦀

Install

NOTE for now t-rec depends on imagemagick, but this is going to change soon.

❯ brew install imagemagick
❯ cargo install -f t-rec 
Enter fullscreen mode Exit fullscreen mode

Hidden Gems

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"
Enter fullscreen mode Exit fullscreen mode

this is how it looks then:
demo-chrome

2) use the env var WINDOWID like this:

  • for example let's record a VSCode window
  • figure out the window id program, and make it
  • make sure the window is visible on screen
  • set the variable and run t-rec
❯ t-rec --ls-win | grep -i code
Code | 27600

# set the WINDOWID variable and run t-recWINDOWID=27600 t-rec

Frame cache dir: "/var/folders/m8/084p1v0x4770rpwpkrgl5b6h0000gn/T/trec-77862.BMYiHNRWqv9Y"
Press Ctrl+D to end recording

Enter fullscreen mode Exit fullscreen mode

this is how it looks then:
demo-vscode

Contribute

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.

License

Top comments (0)