gocui
CategoryCommand Line
SubcategoryAdvanced Console UIs
Stars10,611
Minimalist Go library aimed at creating Console User Interfaces
About gocui
GOCUI - Go Console User Interface
Minimalist Go package aimed at creating Console User Interfaces.
Features
- Minimalist API.
- Views (the "windows" in the GUI) implement the interface io.ReadWriter.
- Support for overlapping views.
- The GUI can be modified at runtime (concurrent-safe).
- Global and view-level keybindings.
- Mouse support.
- Colored text.
- Customizable edition mode.
- Easy to build reusable widgets, complex layouts...
Installation
Execute:
go get github.com/jroimartin/gocui
Documentation
Execute:
go doc github.com/jroimartin/gocui
Or visit pkg.go.dev to read it online.
Example
package main
import (
"fmt"
"log"
"github.com/jroimartin/gocui"
)
func main() {
g, err := gocui.NewGui(gocui.OutputNormal)
if err != nil {
log.Panicln(err)
}
defer g.Close()
g.SetManagerFunc(layout)
if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, quit); err != nil {
log.Panicln(err)
}
if err := g.MainLoop(); err != nil && err != gocui.ErrQuit {
log.Panicln(err)
}
}
func layout(g *gocui.Gui) error {
maxX, maxY := g.Size()
if v, err := g.SetView("hello", maxX/2-7, maxY/2, maxX/2+7, maxY/2+2); err != nil {
if err != gocui.ErrUnknownView {
return err
}
fmt.Fprintln(v, "Hello world!")
}
return nil
}
func quit(g *gocui.Gui, v *gocui.View) error {
return gocui.ErrQuit
}
Screenshots



Frequently Asked Questions
What is gocui?
gocui is a Command Line library for the Go programming language. Minimalist Go library aimed at creating Console User Interfaces
How many GitHub stars does gocui have?
gocui has 10,611 GitHub stars in the directory's latest synchronization.
How do I install gocui?
Install gocui with the Go module system using `go get jroimartin/gocui`. Check the repository for the current installation instructions.
What category does gocui belong to?
gocui is listed under Command Line, specifically Advanced Console UIs.