Convert ansi escaped text streams to html.



Ansi to Html


This was originally a port of the ansi to html converter from bcat to JavaScript. It has since undergone quite a lot of modification.

It has a few additions:

  • The API has been altered to accept options in the constructor, and input in toHtml().
  • ANSI codes for setting the foreground or background color to default are handled
  • the 'erase in line' escape code (\x1b[K) is dropped from the output.


npm install ansi-to-html


var Convert = require('ansi-to-html');
var convert = new Convert();


    <span style="color:#000">black<span style="color:#AAA">white</span></span>

Command line usage

When using ansi-to-html from the command line the stream option is set to true. Other options can be provided. See ansi-to-html -h for more detail.

Process a file

ansi-to-html the_filename


git log | ansi-to-html


Options can be be passed to the constructor to customize behaviour.

fg <CSS color values>. The default foreground color used when reset color codes are encountered.

bg <CSS color values>. The default background color used when reset color codes are encountered.

newline true or false. Convert newline characters to <br/>.

escapeXML true or false. Generate HTML/XML entities.

stream true or false. Save style state across invocations of toHtml().

colors Object/Array (with values 0 - 255 containing CSS color values). Can override specific colors or the entire ANSI palette

Default options

    fg: '#FFF',
    bg: '#000',
    newline: false,
    escapeXML: false,
    stream: false


Once you have the git repository cloned, install the dependencies:

cd ansi-to-html
npm install


npm run lint


npm run build
  • Builds the /src files by running babel.
  • Saves the built files in /lib output directory.
  • Recommended to run babel in Watch mode - will re-build the project each time the files are changed.
npm run build:watch


npm test
  • Note: Runs the tests against the built files (in the /lib directory).
  • You also run the tests in watch mode (will rerun tests when files are changed).
  • Recommended to run the build in watch mode as well to re-build the project before the tests are run.
npm run test:watch