If you do end up emitting color by default, please at least make it contingent on isatty() - maybe the user can override that but I rarely want it when redirecting.
As a counter-example, I hate that piping to less will generally strip colour unless I tell both less and the command to really output color.
It would be nice to be able to have something like 'colorless ', and the 'colorless' command will run the given program, fake a TTY so that the isatty() check passes and it outputs color, then pipe it into the pager.
Unfortunately, calling it colorless would be exactly the wrong name for it!
Check out lesstty from https://github.com/kilobyte/colorized-logs.
(Or https://github.com/jwilk/pagerboy, which supports pagers other than less.)