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.
go get github.com/marcusolsson/tui-go
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)
}
}
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.
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.
tui-go is released under the MIT License.