Earlier quoted context omitted.
> Another workaround is to merely pipe the output to a file in certain cases. If that works for a certain tool, it's author really has no excuse to not implement NO_COLOR env as well.
Piping the output does not guarantee the removal of the color codes. This is yet another standard some programs have chosen to implement. The program checks if the output is a tty, if it is not a tty it will drop color information as it is either a pipe or a file. The escape codes would look ugly in a file and could get in your way with some text processing programs. Even if the program did drop color when not sendin…
You don't need a pager. cat works. Compare
grep --color=auto hacker /usr/share/dict/words
with grep --color=auto hacker /usr/share/dict/words | cat
The same applies to GNU ls, which actually changes more than just colors depending on whether it's printing to a tty or not.Programs that emit colors by default when not sending output to a tty are buggy.
A wild card in this mix is Windows. On UNIX-like systems, detecting a tty is simple. On Windows, it is... not so simple. But the OP's tool, blush, doesn't appear to support Windows at all anyway. (Which is totally cool. I very much understand why you might not.)