tui: Terminal UI for Go
A UI library for terminal applications.
tui (pronounced tooey) provides a higher-level programming model for building rich terminal applications. It lets you build layout-based user interfaces that (should) gracefully handle resizing for you.
IMPORTANT: tui-go is still in an experimental phase so please don't use it for anything other than experiments, yet.
Installation
go get github.com/marcusolsson/tui-go
Usage
package main
import "github.com/marcusolsson/tui-go"
func main() {
box := tui.NewVBox(
tui.NewLabel("tui-go"),
)
ui := tui.New(box)
ui.SetKeybinding("Esc", func() { ui.Quit() })
if err := ui.Run(); err != nil {
panic(err)
}
}
Getting started
If you want to know what it is like to build terminal applications with tui-go, check out some of the examples.
Documentation is available at godoc.org.
Related projects
tui-go is mainly influenced by Qt and offers a similar programming model that has been adapted to Go and the terminal.
For an overview of the alternatives for writing terminal user interfaces, check out this article by AppliedGo.
License
tui-go is released under the MIT License.
Contact
If you're interested in chatting with users and contributors, join
#tui-go on
the Gophers Slack.
If you're not already a part of the Slack workspace, you can join
here. If you prefer a lower-bandwidth
interface, see this
article
on connecting to Slack via IRC or XMPP.