A terminal UI for GitHub that lets you browse, review and act on PRs and issues without leaving the command line.
phoenix-tui/phoenix
A Go terminal UI framework built on the Elm Architecture, with Unicode-correct layout, inline and full-screen rendering, and a component library.
- Stars
- 45
- Forks
- 1
- Open issues
- 0
- Last commit
- 2 months ago
What is it?
Phoenix is a Go framework for building terminal user interfaces. It is split into 10 independent modules that can be imported together or one at a time, and it follows the Elm Architecture (Model, Update, View). Each library is organized in DDD-style layers of domain, application, infrastructure and api.
Text width is calculated with grapheme clusters and East Asian Width rules, so emoji and CJK characters are meant to keep layouts aligned. Rendering works either inline with per-line diffing or in full alt-screen mode. A TTY control API can run external programs such as editors or shells from inside a TUI and restore the interface afterwards.
The component library includes text inputs, lists, tables, modals, progress bars with spinners, forms and select menus. It also provides a CSS-like styling system with theme presets, flexbox and grid layout, mouse event handling, and a cross-platform clipboard that works over SSH via OSC 52. A migration guide covers moving from Bubbletea, Lipgloss and Bubbles.
Key features
- 01Elm Architecture state management with generic type-safe models
- 02Unicode and emoji width calculation based on UAX #11
- 03Inline per-line diffing rendering or full alt-screen mode
- 04TTY control to run external processes like editors and shells
- 05Component library with text inputs, tables, modals, forms and progress bars
- 06Mock terminal and test utilities for testing TUIs
Use cases
- Building interactive command-line tools in Go that need forms, lists or menus
- Writing shell-like or editor-like applications that hand off to external programs
- Creating TUIs that must display CJK or emoji text with correct alignment
- Migrating an existing Bubbletea/Lipgloss project to a DDD-structured codebase
Quick start
- 1
Install the umbrella module
go get github.com/phoenix-tui/phoenix@latest - 2
Create a main.go with the Quick Start example from the README and run it
Things to know
- Requires Go 1.25 or newer.
- Early-stage project with only 45 stars, so it has a small community and limited track record.
Topics
FAQ
- What is phoenix?
- A Go terminal UI framework built on the Elm Architecture, with Unicode-correct layout, inline and full-screen rendering, and a component library. Phoenix is a Go framework for building terminal user interfaces. It is split into 10 independent modules that can be imported together or one at a time, and it follows the Elm Architecture (Model, Update, View). Each library is organized in DDD-style layers of domain, application, infrastructure and api.
- Is phoenix free to use? What license does it have?
- phoenix is open source under the MIT license. Check the license terms before using it in commercial products.
- Is phoenix still maintained?
- Updated within 6 months. The last commit to phoenix was on Aug 25, 2026.
- What can I use phoenix for?
- Building interactive command-line tools in Go that need forms, lists or menus Writing shell-like or editor-like applications that hand off to external programs Creating TUIs that must display CJK or emoji text with correct alignment Migrating an existing Bubbletea/Lipgloss project to a DDD-structured codebase
- How do I install phoenix?
- Install the umbrella module: go get github.com/phoenix-tui/phoenix@latest Create a main.go with the Quick Start example from the README and run it
- Where can I get phoenix?
- The source code and installation instructions are on GitHub: https://github.com/phoenix-tui/phoenix
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Go framework for building terminal user interfaces using The Elm Architecture's model-update-view pattern.
A collection of ready-made TUI components (spinner, text input, table, list, viewport, help and more) for building Bubble Tea terminal apps in Go.
A terminal UI for viewing, checking, installing and updating agent skills across Claude Code, OpenCode, Codex, Cursor and other coding agents.
A modern terminal file manager written in Go, built with Bubble Tea, for browsing and managing files from the command line.
A Go library of ready-made interactive widgets (forms, tables, trees, lists, text areas) for building terminal user interfaces.