For example, I made an image browser for the terminal [0] based on Terminal Image Viewer [1] (for most image formats) and catimg [2] (for animated GIFs) that doesn't require installing a new terminal. It works great with tmux and SSH and I use it all the time for this purpose (though I didn't initially expect to find it so useful).
YMMV, but I have found that the image quality provided by TIV for example is more than sufficient for the kinds of use cases I tend to have when in a console session and needing to quickly view one or more images. Mostly that involves quickly identifying a particular image file among others in a directory, but it's so much easier to not have to leave the terminal and change contexts that it's often more convenient to reach for it for more general tasks too. Any tradeoff in quality is more than made up for in my view by the convenience of being able to use my regular terminal.
[0]: https://github.com/dohliam/console-image-browser [1]: https://github.com/stefanhaustein/TerminalImageViewer [2]: https://github.com/posva/catimg/
If your language has a REPL with appropriate control over the display of objects you can get a pretty great experience. I used it to get familiar with Haskell's diagrams and JuicyPixel libraries and it was great[0].
[0] https://hackage.haskell.org/packages/search?terms=iterm-show
It's promising but my main problem is that the multiplexers tmux and screen don't really support the various protocols.
There are some terminals that support images using various protocols:
- iTerm2 (Macos) - bespoke protocol
- Kitty - bespoke protocol
- Mlterm - Sixel and iTerm2 protocol
- Wezterm - iTerm2 protcol (and potentially Sixel too)
- Xterm - Sixel (but not built with it in your distro, maybe)
- Gnome-terminal/libvte terminals - Sixel - not released yet/not available to me, so unconfirmed
Using this support one can for example configure IPython to render images in the terminal inline using its mime-type hooks.
It would be great if we could slowly move terminals forward with this (even if I understand the technology is quite cumbersome to work with). Imagine having neovim, IPython or jupyter notebooks etc all available with image support in a multiplexed terminal.