control your terminal from node


Terminal is a small package that can be used with node.js to control terminal output. The package can move the cursor in the terminal and output colored text. It can colorize a message with a simple straightforward markup syntax.


Some examples from the examples directory.

Control colored output. See also examples/colors.js. Colors may vary depending on the terminal settings.

Simple color changing:


This will output Unicorn in magenta (or purple). To change the background color to magenta:

terminal.color('magenta', 'background').write('Unicorn');

Terminal supports formatting strings with colors using a simple syntax. Outputting Unicorn in magenta (like the example above) would look like this:


// And changing the background color to magenta

Using this syntax we can create Rainbows easily in one line:


// Or with background colors
terminal.colorize('%w%1  R  %2  A  %3  I  %4  N  %5  B  %6  O  %7  W  %n ');

The colorize function accepts the following modifiers:

                  text      text            background
      %k %K %0    black     dark grey       black
      %r %R %1    red       bold red        red
      %g %G %2    green     bold green      green
      %y %Y %3    yellow    bold yellow     yellow
      %b %B %4    blue      bold blue       blue
      %m %M %5    magenta   bold magenta    magenta
      %p %P       magenta (think: purple)
      %c %C %6    cyan      bold cyan       cyan
      %w %W %7    white     bold white      white

      %F     Blinking, Flashing
      %U     Underline
      %8     Reverse
      %_,%9  Bold

      %n,%N  Resets the color
      %%     A single %

Colored ouput can be reset with the reset function:

terminal.color('red').write('This is red,').reset().write(' and this is not');


Terminal is licensed under The MIT License