[HN Gopher] Ask HN: Recommendations for Good TUI Libraries (Text...
       ___________________________________________________________________
        
       Ask HN: Recommendations for Good TUI Libraries (Text User
       Interface)?
        
       Anyone seen anything exciting/interesting in the field of TUI's?
       Any language, as long as the library is interesting with good
       examples or screen shots/videos.  For those unfamiliar, a TUI is a
       text mode user interface library, for building user interfaces
       within character oriented plain text consoles.
        
       Author : andrewstuart
       Score  : 50 points
       Date   : 2020-09-08 20:14 UTC (2 hours ago)
        
       | sjakobi wrote:
       | http://hackage.haskell.org/package/brick is popular in the
       | Haskell world.
        
         | 2mol wrote:
         | Can confirm that it's awesome for getting something small and
         | useful done quickly.
         | 
         | I was a beginner Haskell programmer when I first used brick,
         | and it's great exposure to building a real world application
         | (something a lot of Haskell beginners crave learning). Docs are
         | very good too.
         | 
         | Code for anyone that might find it useful:
         | https://github.com/2mol/pboy
         | 
         | edit: forgot to mention that it's very "Elm architecture", so
         | if you like modern frontend development, then you might feel
         | right at home in that paradigm.
        
       | allthing wrote:
       | I'm not really sure any TUI I've ever seen could really be
       | classified as "good" but the one I like best is probably urwid
       | (http://urwid.org/).
        
       | sixhobbits wrote:
       | Also take a look at Repl.it's "CLUI"[0] which they released
       | fairly recently
       | 
       | [0] https://blog.repl.it/clui
        
       | css wrote:
       | Python includes bindings for curses and includes some pretty good
       | documentation:
       | https://docs.python.org/3/howto/curses.html#curses-howto
        
       | zephraph wrote:
       | In the node ecosystem there are a few interesting ones.
       | 
       | https://github.com/vadimdemedes/ink for writing TUIs with react.
       | Here's a project I wrote using that:
       | https://github.com/zephraph/solitaire. It's not as powerful as
       | ncurses, but it works rather well.
       | 
       | If you want something more on par with ncurses try
       | https://github.com/cronvel/terminal-kit
        
         | andrewstuart wrote:
         | https://github.com/cronvel/terminal-kit
         | 
         | This is the one that most catches my attention.
         | 
         | Currently actively maintained plus it has something analagous
         | to a document object model https://github.com/cronvel/terminal-
         | kit/blob/master/doc/docu...
         | 
         | Also Ink is incredibly interesting as it enables ReactJS for
         | creating TUI apps - mind bending!
         | 
         | https://github.com/vadimdemedes/ink
         | 
         | I can imagine the things above being combined with a sandbox
         | plus Fabrice Bellard's QuickJS https://bellard.org/quickjs/
         | into a new type of application ..... the "pure text mode
         | browser".
         | 
         | A "pure text mode browser" would not be designed to render
         | ordinary HTML web pages, but would instead be a minimal browser
         | designed only for text mode.
        
       | jamesponddotco wrote:
       | aerc[1]'s design is the main reason why I use it over mutt, even
       | though mutt has more features. No idea what they use behind the
       | scenes for their TUI, but you could take a look at their source
       | code[2].
       | 
       | [1] https://aerc-mail.org/
       | 
       | [2] https://git.sr.ht/~sircmpwn/aerc
        
         | Shared404 wrote:
         | It looks like Tcell probably, assuming I've understood what
         | Tcell does correctly.
         | 
         | https://github.com/gdamore/tcell/
        
       | andyv wrote:
       | My favorite is the python-based Urwid library at
       | http://www.urwid.org. It was a little hard for me to wrap my head
       | around it at first, but once you get it, you can write TUI
       | applications without a lot of code. Easy to install, many
       | examples to work from.
        
         | rbanffy wrote:
         | How popular is it in the Python space? I loved the large text
         | widget and would love to contribute with a font using the
         | Teletext 2x3 mosaics that got into Unicode 13 (which are fully
         | supported in VTE)
        
       | aeontech wrote:
       | python prompt toolkit [0] and click [1] are used to create tools
       | like pgcli [2], which is utterly wonderful.
       | 
       | [0]: https://github.com/prompt-toolkit/python-prompt-toolkit
       | 
       | [1]: https://click.palletsprojects.com/en/7.x/
       | 
       | [2]: https://www.pgcli.com/
        
       | aaron-santos wrote:
       | https://github.com/chjj/blessed is a curses-like library with a
       | high level terminal interface API for node.js. It also has
       | impressive demos.
        
       | jakobdabo wrote:
       | notcurses - https://github.com/dankamongmen/notcurses
        
       | corysama wrote:
       | I'd to try out https://github.com/ggerganov/imtui Looks like a
       | lot of fun.
        
       | tabtab wrote:
       | I've been looking for something similar that either has a markup
       | language associated with it or is easy to add one to. I wish to
       | prototype a GUI markup standard with it as a proof of concept so
       | that we can have GUI-over-HTTP instead of live with the ever
       | failing & bloated HTML/JS/DOM/CSS GUI emulators. So far,
       | Terminal.Gui looks interesting, but I don't know if it's cross-
       | platform yet.
        
       | dheera wrote:
       | I wrote a Python library to draw graphics in a console using
       | Braille dots, with a fallback mode to ASCII:
       | 
       | https://github.com/dheera/python-termgraphics
       | 
       | I used it in ROSshow, which visualizes robot sensor data inside a
       | terminal:
       | 
       | https://github.com/dheera/rosshow
        
         | rbanffy wrote:
         | Teletext (also TRS-80) 2x3 mosaics got into Unicode 13. I hope
         | Kaypro's 2x4 mosaics get into version 14.
        
       | kitd wrote:
       | TView is popular and active in the Golang world
       | 
       | https://github.com/rivo/tview
        
       | nikisweeting wrote:
       | I like https://github.com/bpython/curtsies by @ballingt. It was
       | used to implement bpython, one of the best python REPLs imo.
        
       | fuball63 wrote:
       | I like termbox. I'm the Ada binding maintainer. A quick search
       | and you can find many other language bindings.
       | https://github.com/bmsauer/termbox-ada
        
       | heldergg wrote:
       | Turbo Vision, this is TUI perfection.
       | 
       | https://en.wikipedia.org/wiki/Turbo_Vision
        
         | ystad wrote:
         | Ah, I remember this. This is friendly UI
        
       | andrewstuart wrote:
       | This looks pretty impressive:
       | 
       | Terminal.Gui - Terminal GUI toolkit for .NET
       | 
       | https://github.com/migueldeicaza/gui.cs
       | 
       | Written by Miguel de Icaza.
       | 
       | Hanselman wrote on it here:
       | 
       | https://www.hanselman.com/blog/Its2020AndItIsTimeForTextMode...
       | 
       | and here:
       | 
       | https://www.hanselman.com/blog/DotnetDependsIsAGreatTextMode...
        
         | dsissitka wrote:
         | I'm curious about what other people think about this one. I
         | tried the demo in a few terminals a couple months ago and it
         | didn't work well in any of them.
        
       | manjana wrote:
       | You could check out AsciiMatics.
       | https://github.com/peterbrittain/asciimatics
       | 
       | Here are some examples how it can look in action:
       | https://github.com/peterbrittain/asciimatics/wiki
        
       | gw wrote:
       | For nim i like this one: https://github.com/johnnovak/illwill
       | 
       | It is immediate mode so you render the entire UI every tick,
       | though it is smart enough to not actually redraw things that
       | didn't change.
        
       | sbeckeriv wrote:
       | https://github.com/fdehau/tui-rs
       | 
       | Liked using this. I wrote a TUI for my company's api with it. I
       | dont use the website much any more.
        
       | imhoguy wrote:
       | Don't know why, but I have imagined a CSS framework for text
       | only.
       | 
       | Edit: found one https://github.com/vinibiavatti1/TuiCss
        
       ___________________________________________________________________
       (page generated 2020-09-08 23:01 UTC)