Repolode
phoenix-tui

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. 1

    Install the umbrella module

    go get github.com/phoenix-tui/phoenix@latest
  2. 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