Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. gocui

gocui

BSD-3-ClauseGo

A minimalist Go package for building console user interfaces with overlapping views and keybindings.

GitHubGitHub
10.6k stars644 forks0 contributors

What is gocui?

GOCUI is a minimalist Go package for building console user interfaces (CUIs). It enables developers to create text-based applications with features like overlapping views, mouse support, and keybindings, solving the need for lightweight terminal-based interfaces.

Target Audience

Go developers building terminal applications, CLI tools, or text-based dashboards that require interactive user interfaces.

Value Proposition

Developers choose GOCUI for its minimal API, concurrent-safe design, and comprehensive feature set including mouse support and colored text, making it a powerful yet simple alternative to more complex UI frameworks.

Overview

Minimalist Go package aimed at creating Console User Interfaces.

Use Cases

Best For

  • Building terminal-based dashboards with interactive elements
  • Creating CLI tools with complex user interfaces
  • Developing text-based applications with overlapping windows
  • Implementing keyboard-driven console applications
  • Building reusable widgets for Go console interfaces
  • Creating cross-platform terminal applications in Go

Not Ideal For

  • Projects requiring graphical user interfaces with rich visuals or multimedia support
  • Teams seeking drag-and-drop UI builders or pre-styled components for rapid development
  • Applications that must run in web browsers or on mobile devices
  • Large-scale projects needing extensive third-party widgets or plugin ecosystems

Pros & Cons

Pros

Minimalist API

Offers a simple and straightforward interface, as highlighted in the philosophy, enabling rapid development of console UIs without unnecessary complexity.

Concurrent-Safe Design

The GUI can be modified at runtime safely, allowing for dynamic updates and interactions in multi-threaded Go applications without data races.

Overlapping Views Support

Enables creation of complex layouts with overlapping windows, similar to desktop applications, within the terminal, as shown in the screenshots with dynamic views.

Comprehensive Input Handling

Supports global and view-level keybindings along with mouse input, providing flexible user interaction for keyboard-driven and mouse-enabled interfaces.

Colored Text and Editing

Allows customization of text colors and includes a customizable edition mode with views implementing io.ReadWriter, enhancing visual distinction and user input management.

Cons

Manual Coordinate Management

Building layouts requires setting exact coordinates for views, as seen in the example, which can be error-prone and tedious for dynamic or responsive interfaces.

Lack of Pre-built Widgets

Despite mentioning reusable widgets, there is no standard library of components like buttons or forms, forcing developers to build everything from scratch.

Sparse Documentation

The README provides only basic examples, and advanced features like custom widgets or complex event handling require digging into source code or external resources.

Limited Graphical Capabilities

Being text-based, it cannot render images or advanced graphical elements, restricting UI aesthetics to terminal-compatible text and colors.

Frequently Asked Questions

Quick Stats

Stars10,596
Forks644
Contributors0
Open Issues44
Last commit1 year ago
CreatedSince 2014

Tags

#terminal-application#cui#gocui#cli-framework#go-package#tui-library#console-ui#gui#text-based-ui#keybindings#go

Built With

G
Go

Included in

Go169.1kRobotic Tooling3.8k
Auto-fetched 11 hours ago

Related Projects

the-art-of-command-linethe-art-of-command-line

Master the command line, in one page

Stars162,295
Forks14,831
Last commit2 years ago
fzffzf

:cherry_blossom: A command-line fuzzy finder

Stars82,864
Forks2,863
Last commit1 day ago
BatBat

A cat(1) clone with wings.

Stars60,389
Forks1,643
Last commit3 days ago
bubbleteabubbletea

A powerful little TUI framework 🏗

Stars44,839
Forks1,312
Last commit6 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub