rivo / tview


Rich interactive widgets for terminal-based UIs written in Go

Rich Interactive Widgets for Terminal UIs

Godoc Reference Go Report

This Go package provides commonly needed components for terminal based user interfaces.


Among these components are:

  • Input forms (include input/password fields, drop-down selections, checkboxes, and buttons)
  • Navigable multi-color text views
  • Sophisticated navigable table views
  • Selectable lists
  • Flexbox and page layouts
  • Modal message windows
  • An application wrapper

They come with lots of customization options and can be easily extended to fit your needs.


go get github.com/rivo/tview

Hello World

This basic example creates a box titled "Hello, World!" and displays it in your terminal:

package main

import (

func main() {
	box := tview.NewBox().SetBorder(true).SetTitle("Hello, world!")
	if err := tview.NewApplication().SetRoot(box, true).Run(); err != nil {

Check out the GitHub Wiki for more examples along with screenshots. Or try the examples in the "demos" subdirectory.

For a presentation highlighting this package, compile and run the program found in the "demos/presentation" subdirectory.


Refer to https://godoc.org/github.com/rivo/tview for the package's documentation.


This package is based on github.com/gdamore/tcell (and its dependencies).

Your Feedback

Add your issue here on GitHub. Feel free to get in touch if you have any questions.


  • v0.4 (2018-01-12)
    • TextView now accepts color tags with any W3C color (including RGB hex values).
    • Support for wide unicode characters.
  • v0.3 (2018-01-11)
    • Added masking to InputField and password entry to Form.
  • v0.2 (2018-01-10)
    • Added Styles variable with default colors for primitives.
    • Completed some missing InputField functions.
  • v0.1 (2018-01-06)
    • First Release.
Ещё не оценен