> What if our CLI programs could output HTML or JSON depending on whether they are piped or printed.
Well, they can, and there are tools that read HTML data from their standard input and render it in a browser.
I don't understand the preoccupation with rendering things like this within terminal emulators. We have graphics displays, X11, and can mount anything locally. If I quickly want to view some thumbnails, I'll use feh, or maybe just a graphical file browser. If I want to view an HTML document I'll open that in my web browser. If I want to plot some data I can use gnuplot. None of this is particularly distracting to my workflow.
On the contrary, I think there is some value to having command line applications output data that is easy to parse and WYSIWYG, because its strength to me lies in the ease with which you can automate workflows using a shell operating on text data. That's sort of lost when all the data you see is filled with invisible markup. This is already the case to some lesser extent with colors and e.g. ls formatting.
What if our CLI programs could output HTML or JSON depending on whether they are piped or printed.
Both standards are not good for this, but is VT100 really that great?