Record your terminal and generate animated gif images or share a web player link terminalizer.com
Built to be jusT cOol 👌🦄 !
If you think so, support me with a
Built while listening to Nyan Cat 😛
Generatecommand to generate a web player for a recording file.
You need to install Node.js first, then install the tool globally using this command:
npm install -g terminalizer
Still facing an issue? Check the Issues section or open a new issue.
The installation should be very smooth with Node.js v4-v12. For newer versions, if the installation is failed, you may need to install the development tools to build the
C++ add-ons. Check node-gyp.
Start recording your terminal using the
terminalizer record demo
A file called
demo.yml will be created in the current directory. You can open it using any editor to edit the configurations and the recorded frames. You can replay your recording using the
terminalizer play demo
Now let's render our recording as an animated gif.
terminalizer render demo
GIF compression is not implemented yet. For now we recommend https://gifcompressor.com.
You can use the
--helpoption to get more details about the commands and their options
terminalizer <command> [options]
Create a global config directory
Generate a config file in the current directory
Record your terminal and create a recording file
terminalizer record <recordingFile>
-c, --config Overwrite the default configurations [string] -d, --command The command to be executed [string] [default: null] -k, --skip-sharing Skip sharing and showing the sharing prompt message [boolean] [default: false]
terminalizer record foo Start recording and create a recording file called foo.yml terminalizer record foo --config config.yml Start recording with your own configurations
Play a recording file on your terminal
terminalizer play <recordingFile>
-r, --real-timing Use the actual delays between frames as recorded [boolean] [default: false] -s, --speed-factor Speed factor, multiply the frames delays by this factor [number] [default: 1]
Render a recording file as an animated gif image
terminalizer render <recordingFile>
-o, --output A name for the output file [string] -q, --quality The quality of the rendered image (1 - 100) [number] -s, --step To reduce the number of rendered frames (step > 1) [number] [default: 1]
Upload a recording file and get a link for an online player
terminalizer share <recordingFile>
Generate a web player for a recording file
terminalizer generate <recordingFile>
config.yml file is stored under the root directory of the project. Execute the below command to copy it to your current directory.
Use any editor to edit the copied
config.yml, then use the
-coption to override the default one.
RECOMMENDED, use the
initcommand to create a global config file to be used instead of the default one.
For Linux and MacOS, the created directory is located under the home directory
~/.terminalizer. For Windows, it is located under the
command: Specify a command to be executed like
ls, or any other command. The default is
cwd: Specify the current working directory path. The default is the current working directory path.
env: Export additional ENV variables, to be read by your scripts when starting the recording.
cols: Explicitly set the number of columns or use
autoto take the current number of columns of your shell.
rows: Explicitly set the number of rows or use
autoto take the current number of rows of your shell.
frameDelay: The delay between frames in ms. If the value is
autouse the actual recording delays.
maxIdleTime: Maximum delay between frames in ms. Ignored if the
frameDelayisn't set to
auto. Set to
autoto prevent limiting the max idle time.
quality: The quality of the generated GIF image (1 - 100).
repeat: Amount of times to repeat GIF:
-1, play once.
0, loop indefinitely.
cursorStyle: Cursor style can be one of
fontFamily: You can use any font that is installed on your machine like
Lucida Console(CSS-like list).
fontSize: The size of the font in pixels.
lineHeight: The height of lines in pixels.
letterSpacing: The spacing between letters in pixels.
You can set the colors of your terminal using one of the CSS formats:
rgb(255, 255, 255).
hsl(0, 0%, 100%).
You can use the value
The default colors that are assigned to the terminal colors are:
You can add a watermark logo to your generated GIF images.
watermark: imagePath: AbsolutePathOrURL style: position: absolute right: 15px bottom: 15px width: 100px opacity: 0.9
watermark.imagePath: An absolute path for the image on your machine or a URL.
watermark.style: Apply CSS styles (camelCase) to the watermark image, like resizing it.
Terminalizer comes with predefined frames that you can use to make your GIF images look cool.
frameBox.type: Can be
frameBox.title: To display a title for the frame or
frameBox.style: To apply custom CSS styles or to override the current ones.
No frame, just your recording.
Don't forget to add a
frameBox: type: null title: null style: backgroundColor: black
frameBox: type: window title: Terminalizer style: 
frameBox: type: floating title: Terminalizer style: 
frameBox: type: solid title: Terminalizer style: 
frameBox: type: solid title: null style: 
You can disable the default shadows and margins.
frameBox: type: solid title: null style: boxShadow: none margin: 0px
The default command that gets recorded for Linux is
bash -l. You need to change the default command to
fontFamily: "Meslo for Powerline, Meslo LG M for Powerline"
-coption to override the config file:
terminalizer record demo -c config.yml
error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory
sudo yum install libXScrnSaver
error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory
sudo apt-get install libgconf-2-4
This project is under the MIT license.