explaingit

gizak/termui

13,545GoAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

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.

Mindmap

mindmap
  root((repo))
    What it does
      Terminal dashboards
      Interactive widgets
      Cross-platform Go
    Widget types
      Charts and plots
      Tables and lists
      Progress bars
      Braille canvas
    Features
      Grid layout
      Keyboard and mouse
      Custom components
    Audience
      Go developers
      CLI tool builders
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a real-time system resource monitor showing CPU, memory, and network as live charts in the terminal.

USE CASE 2

Add bar charts or line plots to a Go CLI tool to visualize metrics without opening a browser.

USE CASE 3

Create a scrollable table or tree view in a terminal app for browsing structured data interactively.

Tech stack

Go

Getting it running

Difficulty · moderate Time to first run · 30min

Maintainer availability is inconsistent, the project is open to new contributors taking a more active role.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

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.

Copy-paste prompts

Prompt 1
Using termui in Go, write a program that displays a real-time line chart of CPU usage that updates every second.
Prompt 2
Show me how to build a termui terminal dashboard that shows a bar chart and a scrollable table side by side on a grid layout.
Prompt 3
Write Go code with termui that displays a progress bar advancing from 0% to 100% over 10 seconds.
Prompt 4
How do I handle keyboard events in a termui dashboard so the user can quit with q and scroll a list with arrow keys?
Prompt 5
Using termui, write a Go program that draws a pie chart showing disk usage breakdown by partition.
Open on GitHub → Explain another repo

← gizak on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.