#sixels do “compress” image data by its nature design, #libsixel is highly optimized, on the other side #kittyterminal protocol

Direct transmission (t=d):
RGB/RGBA -> base64 … huge data transfer
RGB/RGBA -> PNG -> base64 … better in size, significant overhead
RGB/RGBA -> zlib compression -> base64 … also significant overhead
RGB/RGBA -> PNG -> zlib compression -> base64 .. even bigger overhead

Simple file transmission (t=f)
Client needs access to file … Forget about #ssh

Temporary file transmission (t=t)
Client needs access to /tmp, /dev/shm … forget about ssh

Shared memory object (t=s)
Client needs to have access to POSIX shared memory object/Windows named shared memory object … forget about ssh.

So yes, kitty is “superior” protocol with superior performance, except it works as “superior” only on localhost and event that is questionable at least in case of #brow6el (ok I acknowledge thats this is very specific “hack”)

#kittyterminal image protocol is literally unusable on #ssh, and thats the whole point of terminal apps. If we need something we need to improve the #sixels but let’s start with broader support and don’t excuse it is legacy bad protocol, because tbh it works really well even in Microsoft terminal.
How much a #kittyterminal image protocol is deemed as superior to #sixels, it is piece of crap. It breaks color terminal sequences, literally impossible to print image move cursor on location xy and print with sequences colored text on top of image. Or at least it is so complicated close to unusable from development experience.
Today I learned about #DEC #sixels, a decade-old terminal technology I didn't know about.

Pretty interesting.

https://en.wikipedia.org/wiki/Sixel
https://saitoha.github.io/libsixel/
Sixel - Wikipedia

Terminal-Based Web Browsing With Modern Conveniences

Programmers hold to a wide spectrum of positions on software complexity, from the rare command-line purists to the much more common web app developers, and the two extremes rarely meet. One point o…

Hackaday
@nixCraft and supports #sixels.
When I #procrastinate I write #gluecode, when I procrastinate and write glue code, I do really stupid things. I have hijacked headless chromium browser and “render” its output as #sixels. So I have “full” browser In terminal. It’s far from perfect, would like to add native dialogs handling (save file, alert, prompt, maybe handling certificates) but it will be hard to find motivation. So far I handle goto new page, go back and go forward. #linux #coding #fun #unimportantstuff
Probably I am getting old, but more and more I am thinking about user interfaces for native apps, more and more I am convinced that most portable “framework” is virtual #terminal escape sequences and #sixels, now even supported in windows terminal. So #linux isn’t alone in it.

#WindowsTerminal 1.22 is out this week, bringing support for the long-awaited #sixels

https://devblogs.microsoft.com/commandline/windows-terminal-preview-1-22-release/

There's a bunch of other stuff in there too - command snippets, winget suggestions, a big rewrite of how conpty works, etc.

It's probably the biggest release we've ever had, following the biggest release ever, following the biggest....

Windows Terminal Preview 1.22 Release

Hello friends, we have a new Windows Terminal Preview release! Windows Terminal Preview 1.22 is a large release that contains new features such as Sixel image support (a LARGE community contribution!), Grapheme Cluster Support, the Snippets Pane, Quick Fixes in CMD, and a new Cooked Read popup in CMD to name a few!

Windows Command Line

Made a tiny implementation of #sixels rendering for #uxn. Here it is in the very odd case anyone else needs it.

source: https://git.sr.ht/~rabbits/uxn-utils/tree/main/item/gui/sixels/sixels.tal#L15
docs: https://wiki.xxiivv.com/site/sixels.html