Fallback to a default if `process.stdout.getWindowSize` doesn't exist
Switch branches/tags
Nothing to show
Clone or download
Ilya Radchenko
Ilya Radchenko chore(release): 2.2.0
Latest commit 176376e Aug 22, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
test Added fourth fallback. Feb 15, 2016
.gitignore Update ignores Jan 26, 2016
.npmignore chore: Add changelog to npm ignore Aug 22, 2017
.travis.yml Add travis and coverage config Oct 16, 2015
CHANGELOG.md chore(release): 2.2.0 Aug 22, 2017
LICENSE Create LICENSE Oct 14, 2015
README.md Fix spelling of strict (#10) May 20, 2016
index.js feat: return default if env is 0 Aug 22, 2017
package.json chore(release): 2.2.0 Aug 22, 2017



Get stdout window width, with four fallbacks, tty, output.columns, a custom environment variable and then a default.

npm version Build Status Coverage Status


npm install --save cli-width
'use strict';

var cliWidth = require('cli-width');

cliWidth(); // maybe 204 :)

You can also set the CLI_WIDTH environment variable.

If none of the methods are supported, and the environment variable isn't set, the default width value is going to be 0, that can be changed using the configurable options.



cliWidth can be configured using an options parameter, the possible properties are:

  • defaultWidth<number> Defines a default value to be used if none of the methods are available, defaults to 0
  • output<object> A stream to be used to read width values from, defaults to process.stdout
  • tty<object> TTY module to try to read width from as a fallback, defaults to require('tty')


Defining both a default width value and a stream output to try to read from:

var cliWidth = require('cli-width');
var ttys = require('ttys');

  defaultWidth: 80,
  output: ttys.output

Defines a different tty module to read width from:

var cliWidth = require('cli-width');
var ttys = require('ttys');

  tty: ttys


npm install
npm test

Coverage can be generated with npm run coverage.