I spent a good chunk of time last week looking for a solid cross-platform GUI toolkit. I came to the conclusion that the terminal is the most portable GUI platform available. You can create an app that has windows, buttons, mouse support, etc, statically compile it for Windows, Linux, and Mac, and run it over SSH. The closest you can get to that with real graphics is using a toolkit built on OpenGL, and you'll be forced to dynamically link to X11 or Wayland on Linux.

The achilles heel of terminal UIs is that they can't display images.

The cross-platform GUI toolkit I personally prefer is Qt. Bein' I'ma "Python guy" I tend to interact with Qt mainly via PyQt/PySide, but there's handy bindings for a ton of other cross-platform programming languages as well. I've also recently(ish) discovered and been thoroughly impressed by Will McGugan's "Rich" library and the "Textual" TUI library he built for it. Been sprucing up all my terminal output to be more modern using those two lately.

> "The achilles heel of terminal UIs is that they can't display images."

That statement is not entirely 100% accurate these days, thanks to some really creative hacks over the years. I'll list a few links where some fun examples live. ;)

[1] https://github.com/atanunq/viu

[2] https://github.com/stefanhaustein/TerminalImageViewer

[3] https://askubuntu.com/questions/97542/how-do-i-make-my-termi...

[4] https://unix.stackexchange.com/questions/35333/what-is-the-f...