GitHub Hot Board

GitHub Hot Board · Repository archive

gizak/termui

Golang terminal dashboard (This description comes from the repository itself.)

Data at October 25gizak

Best

#320

All-time · Go facet

14K

Total stars

820

Total forks

0

Days on boards (30d)

Project statusLicense: MITLast push: July 10Open issues: 106

Collected since 2026-10-25; unknown = not yet harvested

Put your badge on the README · gizak/termui[![Put your badge on the README](https://git.vaiox.xyz/api/badge/gizak/termui.svg)](https://git.vaiox.xyz/en/repo/gizak/termui)
<a href="https://git.vaiox.xyz/en/repo/gizak/termui"><img src="https://git.vaiox.xyz/api/badge/gizak/termui.svg" alt="Put your badge on the README" height="20"></a>

README

termui

demo cast under osx 10.10; Terminal.app; Menlo Regular 12pt.)

termui is a cross-platform and fully-customizable terminal dashboard and widget library built on top of termbox-go. It is inspired by blessed-contrib and tui-rs and written purely in Go.

Note

Please be aware that due to my fluctuating availability, the frequency of updates to this project may not always follow a consistent schedule. I would like to invite potential maintainers to contribute to this project. If you are interested in becoming a maintainer, please do not hesitate to reach out to me.

Versions

termui is currently compatible with Go 1.15 (as in go.mod) and above (tracking the Debian's oldstable). Please use the version-numbered branch as stable release. The new changes will be pushed to master branch first and then merge to version branch.

Features

  • Several premade widgets for common use cases
  • Easily create custom widgets
  • Position widgets either in a relative grid or with absolute coordinates
  • Keyboard, mouse, and terminal resizing events
  • Colors and styling

Installation

Go modules

It is not necessary to go get termui, since Go will automatically manage any imported dependencies for you. Do note that you have to include /v3 in the import statements as shown in the 'Hello World' example below.

Dep

Add with dep ensure -add github.com/gizak/termui. With Dep, /v3 should not be included in the import statements.

Hello World

package main

import (
	"log"

	ui "github.com/gizak/termui/v3"
	"github.com/gizak/termui/v3/widgets"
)

func main() {
	if err := ui.Init(); err != nil {
		log.Fatalf("failed to initialize termui: %v", err)
	}
	defer ui.Close()

	p := widgets.NewParagraph()
	p.Text = "Hello World!"
	p.SetRect(0, 0, 25, 5)

	ui.Render(p)

	for e := range ui.PollEvents() {
		if e.Type == ui.KeyboardEvent {
			break
		}
	}
}

Widgets

Run an example with go run _examples/{example}.go or run each example consecutively with make run-examples.

Documentation

Uses

Related Works

License

MIT

Current rankings

Momentum, past 30 days

No leaderboard records in the last 30 days.

← Back to boards