Build Status

The ANSI project is a collection of ANSI escape code related libraries enabling ANSI code based colorization and stylization of output. It is very nice for beautifying shell output.

This collection is based on a set of scripts spun-off from Ruby Facets. Included are Code (used to be ANSICode), Logger, ProgressBar and String. In addition the library includes Terminal which provides information about the current output device.


  • ANSI::Code provides ANSI codes as module functions.
  • String#ansi makes common usage very easy and elegant.
  • ANSI::Mixin provides an alternative mixin (like +colored+ gem).
  • Very Good coverage of standard ANSI codes.
  • Additional clases for colorized columns, tables, loggers and more.


There are a number of modules and classes provided by the ANSI package. To get a good understanding of them it is best to pursue the QED documents or the API documentation.

At the heart of all the provided libraries lies the ANSI::Code module which defines ANSI codes as constants and methods. For example:

require 'ansi/code' + "Hello" + + "World"
=> "\e[31mHello\e[34mWorld"

Or in block form.{ "Hello" } +{ "World" }
=> "\e[31mHello\e[0m\e[34mWorld\e[0m"

The methods defined by this module are used throughout the rest of the system.



To install with RubyGems simply open a console and type:

$ sudo gem install ansi

Local installation requires Setup.rb (gem install setup), then download the tarball package and type:

$ tar -xvzf ansi-1.0.0.tgz
$ cd ansi-1.0.0
$ sudo setup.rb all

Windows users use 'ruby setup.rb all'.

Release Notes

Please see file.

License & Copyrights

Copyright (c) 2009 Rubyworks

This program is redistributable under the terms of the FreeBSD license.

Some pieces of the code are copyrighted by others.

See LICENSE.txt and files for details.