Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
November 7, 2023 04:14
July 6, 2019 23:08
July 6, 2019 23:08
July 6, 2019 23:08
July 6, 2019 23:08
June 29, 2020 15:37
November 7, 2023 04:14
November 7, 2023 04:14


Check if stdout or stderr is interactive

It checks that the stream is TTY, not a dumb terminal, and not running in a CI.

This can be useful to decide whether to present interactive UI or animations in the terminal.


npm install is-interactive


import isInteractive from 'is-interactive';

//=> true




Type: object


Type: stream.Writable
Default: process.stdout

The stream to check.


Why are you not using ci-info for the CI check?

It's silly to have to detect individual CIs. They should identify themselves with the CI environment variable, and most do just that. A manually maintained list of detections will easily get out of date. And if a package using ci-info doesn't update to the latest version all the time, they will not support certain CIs. It also creates unpredictability as you might assume a CI is not supported and then suddenly it gets supported and you didn't account for that. In addition, some of the manual detections are loose and might cause false-positives which could create hard-to-debug bugs.

Why does this even exist? It's just a few lines.

It's not about the number of lines, but rather discoverability and documentation. A lot of people wouldn't even know they need this. Feel free to copy-paste the code if you don't want the dependency. You might also want to read this blog post.


  • is-in-ci - Check if the process is running in a Continuous Integration (CI) environment
  • is-unicode-supported - Detect whether the terminal supports Unicode
  • supports-color - Detect whether a terminal supports color