LinuxCommandLibrary

terminalizer

Record and create terminal animations

TLDR

Create the global configuration directory

$ terminalizer init
copy

Record the terminal and create a recording file
$ terminalizer record [path/to/recording.gif]
copy

Play a recorded file on the terminal
$ terminalizer play [path/to/recording.gif]
copy

Render a recording file as an animated GIF image
$ terminalizer render [path/to/recording.gif]
copy

Upload a video to
$ terminalizer share [path/to/recording.gif]
copy

SYNOPSIS

terminalizer <command> [options] [arguments]

Common Commands:
  record [<file>]
  play [<file>]
  render [<file>]
  config
  init
  help [<command>]
  version

PARAMETERS

-o, --output <file>
    Specify the output file path for recording (e.g., recording.yml) or rendering (e.g., output.gif).

-c, --commands <cmds>
    Provide a comma-separated list of commands to execute automatically at the beginning of the recording or during playback.

-s, --speed-factor <factor>
    Adjust the playback or rendering speed. A factor greater than 1 speeds up, less than 1 slows down. (e.g., 0.5 for half speed, 2 for double speed).

-d, --delay <ms>
    Set an initial delay in milliseconds before the recording begins. Useful for preparing your terminal.

-g, --gif-images
    (For record) Immediately render GIF images from the recording upon completion.

-l, --loop <n>
    (For play) Loop the playback n times. Set to 0 for infinite looping.

-i, --interactive
    (For play) Allow user interaction during playback, pausing for user input if required.

-q, --quality <factor>
    (For render) Set the quality of the generated GIF. Higher values result in better quality but larger file sizes (0-100).

--transparent
    (For render) Render the GIF with a transparent background.

--width <width>, --height <height>
    (For render) Specify the width and height of the rendered GIF in pixels.

--font-size <size>
    (For render) Set the font size for the text in the rendered GIF.

--cursor-style <style>
    (For render) Define the style of the cursor (e.g., block, underline, beam).

--window-frame
    (For render) Include a window frame (border and title bar) around the terminal content in the GIF.

--window-title <title>
    (For render) Set a custom title for the window frame when --window-frame is enabled.

DESCRIPTION

terminalizer is a powerful and versatile command-line tool designed to record your terminal sessions and replay them as animated GIFs or directly in your terminal. Built with Node.js, it captures terminal input, output, and precise timing information, storing it in a YAML-based recording file. This allows for accurate reproduction of the session, including cursor movements, delays, and interactive commands.

Beyond simple playback, terminalizer excels at rendering high-quality animated GIFs from these recordings, making it an excellent tool for creating tutorials, demonstrations, or sharing specific command-line interactions. It offers extensive customization options for the rendered GIFs, including dimensions, font styles, cursor appearance, and theme colors, ensuring the output aligns with your aesthetic and functional requirements. Its cross-platform compatibility makes it accessible to a wide range of users on Linux, macOS, and Windows.

CAVEATS

terminalizer requires Node.js and npm to be installed on your system. While it captures a wide range of terminal activities, complex interactive applications (e.g., full-screen TUI apps like vim or htop) might not always render or play back with perfect fidelity, especially concerning cursor position or real-time updates. The quality and file size of generated GIFs can vary significantly based on recording length, resolution, and chosen rendering options.

CONFIGURATION FILE

terminalizer uses a global configuration file, typically located at ~/.terminalizer/config.yml. This file allows users to define default settings for recording and rendering, such as theme, font details, window dimensions, and more, avoiding the need to specify options repeatedly on the command line.

USE CASES

Beyond simple recording, terminalizer is extensively used for creating highly effective technical tutorials, showcasing command-line tool functionalities, debugging sessions, or providing visual steps for complex setups. The GIF output is particularly valuable for embedding in documentation, GitHub READMEs, or blog posts.

HISTORY

Created by Gokhan Ozcelebi, terminalizer emerged as an open-source project written in JavaScript/Node.js. It quickly gained traction for its user-friendly interface and unique ability to render terminal recordings into shareable animated GIFs, offering a modern alternative to traditional terminal recording methods and making it accessible to a broader audience for documentation and demonstration purposes.

SEE ALSO

asciinema(1), script(1), byzanz(1)

Copied to clipboard