Introduction
Terminalizer captures everything happening in your terminal session and replays it as an animated GIF or web-based recording. It is designed for creating documentation, tutorials, and README demos that show terminal workflows in action without requiring viewers to watch a video.
What Terminalizer Does
- Records terminal input and output with precise timing information
- Renders recordings into animated GIF files with customizable quality
- Supports custom frame delays, cursor styles, and terminal themes
- Generates shareable YAML recording files that can be edited before rendering
- Allows sharing recordings via terminalizer.com web player
Architecture Overview
Terminalizer uses node-pty to create a pseudo-terminal that captures all output bytes and timing. The recording is stored as a YAML file containing frame data (content + delay pairs). The render step processes each frame through a headless terminal emulator, captures screenshots as PNG, then assembles them into a GIF using gifencoder with optimized palette quantization.
Self-Hosting & Configuration
- Install globally via npm: npm install -g terminalizer
- Initialize config with terminalizer init to create ~/.terminalizer/config.yml
- Configure output dimensions (cols, rows), GIF quality, and repeat count
- Set custom fonts and themes in the YAML configuration
- Edit recording YAML files to adjust timing or remove frames before rendering
Key Features
- Editable recordings: modify YAML to fix typos or adjust timing post-capture
- Configurable frame delay, quality, and maximum frame count
- Built-in themes and custom color scheme support
- GIF optimization with lossy compression for smaller file sizes
- Web sharing platform for interactive playback without GIF limitations
Comparison with Similar Tools
- asciinema — text-based recording format; lighter but no native GIF export
- VHS (Charm) — script-driven approach; writes commands in a file rather than recording live
- ttyrec/ttygif — older Unix tools; less portable and fewer export options
- Peek — screen recorder for Linux; captures pixels not terminal state
FAQ
Q: How do I reduce the GIF file size? A: Lower the quality setting in config, reduce cols/rows, or use the -q flag during render. Editing the YAML to remove idle frames also helps.
Q: Can I edit the recording after capturing? A: Yes, the recording is a plain YAML file. You can change delays, remove frames, or even modify the displayed text.
Q: What terminal features are supported? A: Full ANSI escape sequences, 256 colors, and Unicode. TrueColor support depends on the renderer.
Q: Can I use custom fonts in the GIF output? A: Yes, specify the font family in the config file. The font must be installed on the rendering machine.