is-interactive
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.
Install
$ npm install is-interactive
Usage
import isInteractive from 'is-interactive';
isInteractive();
//=> true
API
isInteractive(options?)
options
Type: object
stream
Type: stream.Writable
Default: process.stdout
The stream to check.
FAQ
ci-info
for the CI check?
Why are you not using 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.
Related
- is-unicode-supported - Detect whether the terminal supports Unicode
- supports-color - Detect whether a terminal supports color