DEV Community

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

Posted on

3 2

🎉 🚀 🍺 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

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

Eliminate Context Switching and Maximize Productivity

Pieces.app

Pieces Copilot is your personalized workflow assistant, working alongside your favorite apps. Ask questions about entire repositories, generate contextualized code, save and reuse useful snippets, and streamline your development process.

Learn more