termui
Golang terminal dashboard
termui is a Go library for building interactive terminal dashboards with charts, tables, progress bars, and other visual widgets that run entirely inside a command-line window, with keyboard and mouse support.
termui is a Go library for building dashboard-style displays that run entirely inside a terminal window. Instead of opening a separate browser or GUI application, you write a Go program that uses termui to draw charts, tables, progress bars, and other visual elements directly in your command-line interface. The library works across platforms and responds to keyboard and mouse input, as well as terminal resize events.
The library includes a set of ready-made components: bar charts, line plots, scatter plots, pie charts, sparklines, tables, scrollable lists, tree views, a gauge for showing percentages, and a braille-dot canvas for freeform drawing. You can position these components on a grid layout that scales relative to the terminal size, or place them at fixed coordinates if you prefer. You can also create custom components beyond the built-in set.
Several tools use termui as their display layer, including gotop (a system resource monitor), a Docker container dashboard, a Jira interface, and an Ethereum node monitor. The library is written in Go and released under the MIT license. The README notes that the maintainer's availability is inconsistent, so update frequency may vary, and the project is open to new contributors taking on a more active maintenance role.
Where it fits
- Build a real-time system resource monitor showing CPU, memory, and network as live charts in the terminal.
- Add bar charts or line plots to a Go CLI tool to visualize metrics without opening a browser.
- Create a scrollable table or tree view in a terminal app for browsing structured data interactively.