Skip to content

termui

A Go library for building colorful terminal dashboards with charts, tables and lists.

Stars
13.6k
Forks
818
Licence
MIT
Language
Go
Last update
1.3 years ago
Type
Library

No commits in over a year — check for forks or alternatives before adopting.

What it is

termui is a Go library for building dashboards that run inside a terminal window. It provides ready-made widgets such as charts, gauges, tables, lists and paragraphs, and lets you position them in a grid or at fixed coordinates. It is built on termbox-go and is meant for programmers who want to show live information in a text-based interface.

  • Build a terminal dashboard that shows live charts with the Plot or Sparkline widget
  • Display tabular data with the Table widget inside a grid layout
  • Create a custom widget by building on the library's base components
  • Show progress with a Gauge or BarChart inside a terminal app

Great for

  • Go developers who want to build a terminal monitoring dashboard
  • Programmers who need prebuilt charts, tables or gauges in a terminal app
  • Developers who want to create custom terminal widgets in Go
  • Developers who want keyboard and mouse events handled in a text UI

Not ideal for

  • People who just want a ready-made dashboard without writing Go code, because termui is a library rather than a finished program
  • Projects that need actively maintained updates on a fixed schedule, because the README says update frequency may be irregular and the maintainer is looking for help
  • Teams that cannot use Go 1.15 or newer, since the README states that is the compatibility target
Step-by-step guide: how to use termuiInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Go 1.15 or newer

    Add to a Go project (the README says Go modules manage imports automatically)

    go get github.com/gizak/termui/v3
  2. 2

    Run it

    • Create a Go file that imports github.com/gizak/termui/v3 and github.com/gizak/termui/v3/widgets
    • Copy the Hello World example from the README into the file
    • Run the program with go run and press any key to exit
  3. 3

    Get the most out of it

    • Run the bundled examples with go run _examples/{example}.go to see each widget in action
    • Run make run-examples to step through all examples in sequence
    • Read the project wiki linked in the README for widget documentation
    • Look at the demo program in _examples/demo.go to see a full dashboard layout

Downloads

Strengths

  • Includes many common widgets such as charts, tables, lists and trees
  • Supports keyboard, mouse and terminal resize events
  • Documented examples are provided in the repository for each widget

Trade-offs

  • The README says maintenance is irregular and the author is seeking maintainers
  • Requires writing Go code; there is no standalone dashboard to run directly
  • Relies on termbox-go, so behavior depends on that underlying layer

How it compares

ProjectStarsTypeLevelUpdatedBest for
termui (this)13.6kLibraryintermediate1.3 years agoGo developers who want to build a terminal monitoring dashboard
blessed-contrib15.8kLibraryintermediate6 months agoDevelopers who want a monitoring or status dashboard that runs in a terminal
tui-rs10.9kLibraryintermediate3.3 years agoRust developers who want to build a terminal dashboard and are willing to use existing code
tview14.1kLibraryintermediate3 months agoGo developers building interactive command-line tools with menus, forms, or tables

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.