Show HN: Gotui – a modern Go terminal dashboard library

Posted by carsenk 3 days ago

Counter46Comment13OpenOriginal

I’ve been working on gotui, a modern fork of the unmaintained termui, rebuilt on top of tcell for TrueColor, mouse support, and proper resize handling. It keeps the simple termui-style API, but adds a bunch of new widgets (charts, gauges, world map, etc.), nicer visuals (collapsed borders, rounded corners), and input components for building real dashboards and tools. Under the hood the renderer’s been reworked for much better performance, and I’d love feedback on what’s missing for you to use it in production.

Comments

Comment by biomcgary 3 days ago

The Readme for a UI library benefits enormously from screenshots, even terminal based UIs.

Comment by keyle 3 days ago

I second that, even better would be if every type chart would be a folder, with a readme containing a screenshot and the code example. That would be top notch.

PS: looks great on the surface!

Comment by carsenk 3 days ago

Next updates will include better docs and many screenshots/examples, thanks!

Comment by ciarand 3 days ago

If you don’t already have a preferred workflow for autogenerating these, you might be interested in vhs https://github.com/charmbracelet/vhs

I am not affiliated, I just think it’s a neat tool

Comment by carsenk 3 days ago

Screenshots added for all widgets :) Flex layouts were added too!

Comment by unsnap_biceps 3 days ago

As a FYI, you removed the original author's name from your license information. Per the MIT license, you need to preserve their copyright in your fork

Comment by porridgeraisin 3 days ago

Genuinely curious. Do you actually open the license file on all repos posted to HN?

Comment by unsnap_biceps 3 days ago

Not every one, but if it looks like something I might use, I do take a quick look at it and any upstream it came from. It keeps me from using something when I shouldn't and have to rip it out later.

Comment by carsenk 3 days ago

Will fix, thanks

Comment by smaughk 2 days ago

This project has made me think about more about the difference between TUI's and "command-line" (CLI) apps as categories. Traditionally CLIs were kind of run-and-exit tools, and "real" TUIs were long-running, stateful apps, but what we're creating seems to sit somewhere in between the to.

With richer terminals and libraries like this, the distinction feels more about interaction style than environment. Curious how others think about that boundary when designing tools that work in terminals.

Comment by Evidlo 3 days ago

Think tabs widget would look better if it was more like a text area in appearance. Tab title should be connected to its content.

Comment by carsenk 3 days ago

Agreed, tabs widget needs work, I will try to get into the next release! Thanks!

Comment by tigranbs 3 days ago

It is interesting that suddenly the Terminal UI became popular. I am super happy to see this kind of thing pop up.