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

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay