Colorize commands output or STDIN using patterns.
Branch: master
Clone or download
Pull request Compare This branch is 15 commits ahead, 194 commits behind nicoulaj:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



Easily colorize logs or commands output using patterns.

rainbow [ --COLOR=PATTERN ... | --conf CONF ] COMMAND


Using patterns

Just prepend rainbow with COLOR=PATTERN associations to your command, for example:

  • Tail some log file with lines containing ERROR in red:

    rainbow --red='.*ERROR.*' -- tail -f /var/log/my.log
  • Ping Google with IP addresses colorized in yellow:

    rainbow --yellow='\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' -- ping
  • Rainbow can also read from STDIN instead of providing a command:

    tail -f /var/log/my.log | rainbow --red='.*ERROR.*'

Using confs

Rainbow can read COLOR=PATTERN associations from config files, which is the most common way to use it. It automatically uses the config file if there is one named after the command name in ~/.rainbow, or a builtin one:

  • Colorize the diff command output using the builtin config:

    rainbow diff file1 file2
  • Start JBoss application server with colorized logs:

    rainbow --config=jboss -- jboss/bin/ run

The syntax for writing configs is very simple. See the builtin configs for examples.


Using packages

Building from sources

You can build from sources this way:

git clone git://
cd rainbow
sudo python install


This project is a fork of Linibou's colorex. It is is released under the terms of the GNU General Public License. See COPYING for details.