Build an interactive terminal app in Go with a component-based structure instead of manual screen drawing.
Create a text based dashboard or tool with buttons, lists, and text inputs that runs in the terminal.
Add floating windows, dialogs, or popups to a command line application.
Learn component and hook based UI patterns in Go if you already know React.
| subhasundardass/retui | cloudpilot-ai/hermes | hloolx/hloolmail | |
|---|---|---|---|
| Stars | 17 | 17 | 17 |
| Language | Go | Go | Go |
| Setup difficulty | easy | hard | moderate |
| Complexity | 2/5 | 4/5 | 3/5 |
| Audience | developer | ops devops | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Go 1.26 or newer.
retui is a Go library for building interactive text based apps that run in a terminal, using the same style of thinking as building a modern web app. Instead of manually deciding where each character appears on screen, you build your app out of small pieces called components, similar to how React works for web pages, and the library handles drawing and updating the screen for you. Components are just Go functions that describe what should appear. Hooks let those functions remember information between screen updates, for example keeping track of a counter's current value. A layout system similar to CSS flexbox handles positioning things in boxes, rows, and columns, so you do not need to calculate pixel or character positions by hand. When something changes, retui figures out exactly what changed and redraws only that part, which keeps apps responsive even as they grow larger. No prior experience building terminal interfaces is needed. If you can write a Go function, the README suggests, you can build with retui. Getting started takes installing the package with Go's package manager, which requires Go version 1.26 or newer, then writing a single function and calling one run command to start the app. The repository includes a working example app you can run immediately to see the built in components in action. Most of the documentation lives in the project's wiki rather than the README itself, covering topics like core concepts, the layout system, hooks, individual components such as buttons and lists, styling, navigating between screens, and a floating window system for dialogs and popups. The project welcomes contributions, with a contributing guide covering setup and workflow, and asks that people open an issue before working on anything non-trivial. It is released under the MIT license.
A Go library for building terminal apps using components, hooks, and a flexbox-style layout, similar to how React works for web pages.
Mainly Go. The stack also includes Go.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.