As far as I know it's just xterm on desktop. It's fascinating that we have this standard that allows us to build programming environments like notebooks -- without resorting to layering hacks on hacks to make it work on web -- practically crossplatform yet we don't make use of it.
At repl.it we've been toying around with adding sixel support for xterm.js and we have a prototype up and people in our community are already building things on it.
> 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.
At repl.it we've been toying around with adding sixel support for xterm.js and we have a prototype up and people in our community are already building things on it.
Here are a few examples:
- gnuplot: https://gnuplot.basicer.repl.run/rob
- gif in terminal (python): https://repl.it/talk/share/SPINNING-GLOBE-GIF-WITH-SIXEL-NEW...
- connect 4 game (ruby): https://repl.it/talk/share/Connect-4-20-with-better-graphics...