A few seconds.


Detect whether a terminal supports color

supports-color Build Status

Detect whether a terminal supports color


$ npm install --save supports-color


var supportsColor = require('supports-color');

if (supportsColor) {
    console.log('Terminal supports color');

if (supportsColor.has256) {
    console.log('Terminal supports 256 colors');

if (supportsColor.has16m) {
    console.log('Terminal supports 16 million colors (truecolor)');


Returns an object, or false if color is not supported.

The returned object specifies a level of support for color through a .level property and a corresponding flag:

  • .level = 1 and .hasBasic = true: Basic color support (16 colors)
  • .level = 2 and .has256 = true: 256 color support
  • .level = 3 and .has16m = true: 16 million (truecolor) support


It obeys the --color and --no-color CLI flags.

For situations where using --color is not possible, add an environment variable FORCE_COLOR with any value to force color. Trumps --no-color.

Explicit 256/truecolor mode can be enabled using the --color=256 and --color=16m flags, respectively.


MIT © Sindre Sorhus

Pincer is a project which aims to provide best library discovery tools for developers. We're growing day by day. We have only npm platform for now but we will add the others as much as we can.