Nobody's Perfect, Man


    0.7.2 • Public • Published


    Import and export between multiple terminal colour scheme formats

    Many templates are sourced from the Base16-Builder.

    Colors are handled using Colr.


    npm install termcolors

    Terminal Usage

    Use the -i and -o flags to set the input and output formats. Pipe the input data into stdin.

    Missing colors will be automatically replaced with the default colors.

    Reading from one file and writing to another:

    $ termcolors -i xresources -o json < ~/.Xresources > output.json

    Reading from xrdb output, and writing to stdout:

    $ xrdb -q | termcolors -i xresources -o text

    JS API Usage

    var fs = require('fs');
    var termcolors = require('termcolors');
    var xresources = fs.readFileSync('~/.Xresources', 'utf8');
    var colors = termcolors.xresources.import(xresources);
    var iterm = termcolors.iterm.export(colors);
    fs.writeFile('~/config.itermcolors', iterm);

    Supported Formats

    Note: only a select few formats support importing.

    Name ID Import Export
    Alacritty alacritty
    Chrome Secure Shell chromeshell
    Gnome gnome
    Guake guake
    iTerm iterm
    JSON json
    Kitty kitty
    Konsole konsole
    Linux Console linux
    lxterminal lxterminal
    MinTTY mintty
    Putty putty
    Simple Terminal st terminalapp
    Terminator terminator
    Termite termite
    Plain Text text
    Sublime Text / Textmate textmate
    Tilix tilix
    urxvt urxvt
    Wal wal
    XFCE4 Terminal xfce
    Windows Terminal windowsTerminal
    Xresources xresources
    XSHELL xshell

    DIY Export

    Templates use doT.js.

    Check the templates folder for some examples.


    termcolors.export(template, [transformer])

    • template (string)
    • transformer (function)

    The transformer is an optional function that is passed the colors input into the template and can transform them for use in the template.

    This is useful so that you don't have to use the tinycolor

    Example Without Converter:

    var template = 'body { background {{=c.background.hexString()}}; }'
    var cssTemplate = termcolors.export(template);

    Example With Converter:

    var template = 'body { background: {{=c.background}}; }'
    var toHex = function (colors) {
        return {
            background: colors.background.hexString();
    var cssTemplate = termcolors.export(template, toHex);

    Example With Lodash Mapping:

    var _ = require('lodash');
    var template = 'body { background: {{=c.background}}; }'
    var toHex = _.partialRight(_.mapValues, function (color) {
        return color.hexString();
    var cssTemplate = termcolors.export(template, toHex);


    npm i termcolors@0.7.2





    Unpacked Size

    291 kB

    Total Files


    Last publish


    • stayradiated
    • 318h7