Skip to content

Latest commit

 

History

History
184 lines (140 loc) · 6.44 KB

documentation.md

File metadata and controls

184 lines (140 loc) · 6.44 KB

Terminal Kit

A full-blown terminal lib featuring: 256 colors, styles, keys & mouse handling, input field, progress bars, screen buffer (including 32-bit composition), text buffer, and many more...

Whether you just need colors & styles, build a simple interactive command line tool or a complexe terminal application: this is the absolute terminal lib for Node.js!

It does NOT depend on ncurses.

  • License: MIT
  • Platform: linux and any xterm-compatible terminal. These terminals have been successfully tested:
    • xterm
    • gnome-terminal
    • Konsole
    • iTerm
    • Terminator
    • xfce4-terminal
    • Linux Console
    • rxvt/urxvt
    • Eterm
    • Terminology
    • Your terminal? Help tracking terminal compatibilities on github!

Some tutorials are available at blog.soulserv.net/tag/terminal.

Quick examples

// Require the lib, get a working terminal
var term = require( 'terminal-kit' ).terminal ;

// The term() function simply output a string to stdout, using current style
// output "Hello world!" in default terminal's colors
term( 'Hello world!\n' ) ;

// This output 'red' in red
term.red( 'red' ) ;

// This output 'bold' in bold
term.bold( 'bold' ) ;

// output 'mixed' using bold, underlined & red, exposing the style-mixing syntax
term.bold.underline.red( 'mixed' ) ;

// printf() style formatting everywhere:
// this will output 'My name is Jack, I'm 32.' in green
term.green( "My name is %s, I'm %d.\n" , 'Jack' , 32 ) ;

// Since v0.16.x, style markup are supported as a shorthand.
// Those two lines produce the same result.
term( "My name is " ).red( "Jack" )( " and I'm " ).green( "32\n" ) ;
term( "My name is ^rJack^ and I'm ^g32\n" ) ;

// Width and height of the terminal
term( 'The terminal size is %dx%d' , term.width , term.height ) ;

// Move the cursor at the upper-left corner
term.moveTo( 1 , 1 ) ;

// We can always pass additional arguments that will be displayed...
term.moveTo( 1 , 1 , 'Upper-left corner' ) ;

// ... and formated
term.moveTo( 1 , 1 , "My name is %s, I'm %d.\n" , 'Jack' , 32 ) ;

// ... or even combined with other styles
term.moveTo.cyan( 1 , 1 , "My name is %s, I'm %d.\n" , 'Jack' , 32  ) ;

// Get some user input
term.magenta( "Enter your name: " ) ;
term.inputField(
    function( error , input ) {
        term.green( "\nYour name is '%s'\n" , input ) ;
    }
) ;

Install

Use Node Package Manager:

npm install terminal-kit

Some conventions used in this document

In all examples, termkit is assumed to be var termkit = require( 'terminal-kit' ) ; while term is assumed to be var term = require( 'terminal-kit' ).terminal ; or var term = termkit.terminal ;.

So term is an instanceof of termkit.Terminal, that should in almost all cases match correctly the terminal you are currently using. This is the default terminal.

You can also define your own terminal interface, see .createTerminal().

Table of Contents