T Rec Rs
Blazingly fast terminal recorder that generates animated gif images for the web written in rust
Install / Use
npx skills add sassman/t-rec-rsInstalls into whichever agent you are using.
Quality Score
Category
Development & EngineeringSupported Platforms
README
Blazingly fast terminal recorder that generates animated gif images for the web written in rust.
</div>Demo

[!IMPORTANT] Windows support is in preview. The first Windows-capable release is shipped as a pre-release (
v0.9.0-preview1) so it does not auto-install viacargo install t-recor distro packages — you have to opt in. If you are on Windows, please try it and report what you find on the issue tracker. See Installation on Windows for the exact install command.
Features
- Screenshotting your terminal with configurable framerate (4-15 fps)
- Generates high quality small sized animated gif images or mp4 videos
- built-in idle frames detection and optimization (for super fluid presentations)
- Applies (can be disabled) border decor effects like drop shadow
- Runs on Windows, MacOS, Linux and NetBSD
- 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
- Can record every arbitrary window you want (e.g. browser, ide)
- Written in Rust 🦀
Installation on MacOS
with homebrew
brew install t-rec
with macports
sudo port selfupdate
sudo port install t-rec
with cargo
NOTE t-rec depends on imagemagick.
brew install imagemagick
cargo install -f t-rec
NOTE -f just makes sure the latest version is installed
Installation on Linux
with cargo
sudo apt-get install libx11-dev imagemagick
cargo install -f t-rec
as .deb
sudo apt-get install imagemagick
wget https://github.com/sassman/t-rec-rs/releases/download/v0.5.0/t-rec_0.5.0_amd64.deb
sudo dpkg -i t-rec_0.5.0_amd64.deb
as snap
- installation for Linux Mint
- installation for Arch Linux
TL;DR:
sudo snap install t-rec --classic
/snap/bin/t-rec --version
t-rec 0.4.3
from AUR
t-rec can be installed from available AUR packages using an AUR helper. For example,
paru -S t-rec
If you prefer, you can clone the AUR packages and then compile them with makepkg. For example,
git clone https://aur.archlinux.org/t-rec.git
cd t-rec
makepkg -si
Installation on NetBSD
pkgin install t-rec
Or, if you prefer to build from source,
cd /usr/pkgsrc/multimedia/t-rec
make install
Installation on Windows
[!NOTE] Windows support ships as the
v0.9.0-preview1pre-release. Cargo and distro package managers do not pick up pre-releases by default, so the install command below pins the version explicitly. Once Windows support graduates to stable, the regularcargo install -f t-recwill work.
System requirements
t-rec uses ConPTY (CreatePseudoConsole) which is available from Windows 10 v1809 (build 17763) onwards. Earlier Windows versions are not supported.
Prerequisites
t-rec requires ImageMagick for GIF generation and decor effects, and optionally ffmpeg for MP4 video. Install them with winget:
winget install ImageMagick.ImageMagick
winget install ffmpeg
Make sure both binaries are on your PATH after install — restart your terminal if needed.
with cargo (pre-release)
cargo install -f t-rec --version 0.9.0-preview1
Pre-built binary (pre-release)
Grab the Windows zip attached to the v0.9.0-preview1 release, unpack it, and drop t-rec.exe somewhere on your PATH.
Shells
By default t-rec spawns cmd.exe. To record a different shell, pass it as an argument or set $env:SHELL:
t-rec powershell.exe
t-rec pwsh.exe
$env:SHELL = "pwsh.exe"; t-rec
| tested on those distros |
|-------------------------|
| ubuntu 20.10 on GNOME |
|
|
| ubuntu 20.10 on i3wm |
|
|
| linux mint 20 on cinnamon |
|
|
| ArcoLinux 5.4 on Xfwm4 |
|
|
Usage
t-rec
or with specifying a different program to launch
t-rec /bin/sh
Full Options
Blazingly fast terminal recorder that generates animated gif images for the web written in rust.
Usage:
Arguments:
[PROGRAM] Shell or program to launch. Defaults to $SHELL
Options:
-v, --verbose
Enable verbose insights for the curious
-q, --quiet
Quiet mode, suppresses the banner: 'Press Ctrl+D to end recording'
-m, --video
Generates additionally to the gif a mp4 video of the recording
-M, --video-only
Generates only a mp4 video and not gif
-d, --decor <DECOR>
Decorates the animation with certain, mostly border effects [default: none] [possible values: shadow, none]
-p, --wallpaper <WALLPAPER>
Wallpaper background. Use 'ventura' for built-in, or provide a path to a custom image (PNG, JPEG, TGA)
--wallpaper-padding <WALLPAPER_PADDING>
Padding in pixels around the recording when using --wallpaper [default: 60]
-b, --bg <BG>
Background color when decors are used [default: transparent] [possible values: white, black, transparent]
-n, --natural
If you want a very natural typing experience and disable the idle detection and sampling optimization
-l, --ls-win
If you want to see a list of windows available for recording by their id [aliases: --ls]
-w, --win-id <WIN_ID>
Window Id (see --ls-win) that should be captured, instead of the current terminal
-e, --end-pause <END_PAUSE>
Pause time at the end of the animation (e.g., "2s", "500ms")
-s, --start-pause <START_PAUSE>
Pause time at the start of the animation (e.g., "1s", "200ms")
-i, --idle-pause <IDLE_PAUSE>
Max idle time before optimization kicks in. Can enhance readability [default: 3s]
-o, --output <OUTPUT>
Output file without extension [default: t-rec]
-f, --fps <FPS>
Capture framerate, 4-15 fps. Higher = smoother but larger files [default: 4]
--profile <PROFILE>
Use a named profile from the config file
--init-config
Create a starter config file at `~/.config/t-rec/config.toml` (linux) or `~/Library/Application Support/t-rec/config.toml` (macOS)
--list-profiles
List available profiles from the config file
-h, --help
Print help
-V, --version
Print version
Configuration File
You can save your preferred settings in a config file to avoid typing them every time.
Quick start:
# Create a starter config file
t-rec --init-config
# List available profiles
t-rec --list-profiles
# Use a profile
t-rec --profile demo
Config file locations (searched in order):
./t-rec.toml(project-local)~/.config/t-rec/config.toml(Linux)~/Library/Application Support/t-rec/config.toml(macOS)%APPDATA%\t-rec\config.toml(Windows)
Example config file:
# Default settings applied to all recordings
[default]
wallpaper = "ventura"
wallpaper-padding = 80
# Named profiles for different use cases
[profiles.demo]
wallpaper = "ventura"
wallpaper-padding = 120
start-pause = "10s"
idle-pause = "5s"
[profiles.quick]
quiet = true
idle-pause = "1s"
# Custom wallpaper with $HOME expansion
[profiles.custom]
wallpaper = "$HOME/Pictures/my-wallpaper.png"
wallpaper-padding = 80
Using profiles:
# Use default settings from config
t-rec
# Use a specific profile
t-rec --profile demo
# Override a profile setting
t-rec --profile demo --wallpaper-padding 150
# List available profiles
t-rec --list-profiles
Available config options:
| Option | Type | Description |
|--------|------|-------------|
| verbose | bool | Enable verbose output |
| quiet | bool | Suppress the Ctrl+D banner |
| video | bool | Also generate mp4 video |
| video-only | bool | Only generate mp4, no gif |
| decor | string | Border decoration (shadow, none) |
| wallpaper | string | Wallpaper preset or file path (supports $HOME) |
| wallpaper-padding | number | Padding around recording (1-500) |
| bg | string | Background color (white, black, transparent) |
| natural | bool | Disable idle detection
Related Skills
clawhub
385.5kSearch ClawHub for skills when a requested capability is not already available; install, verify, update, uninstall, publish, or sync skills.
coding-agent
385.5kDelegate coding work to Codex, Claude Code, or OpenCode as background workers; not simple edits or read-only code lookup.
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
taskflow
385.5kCoordinate multi-step detached tasks as one durable TaskFlow job with owner context, state, waits, and child tasks.
