Repolode
phoenix-tui

phoenix-tui/phoenix

基于 Elm 架构的 Go 终端 UI 框架,支持正确的 Unicode 宽度计算,内置丰富组件,可迁移自 Charm 生态。

Star
45
Fork
1
未关闭 Issue
0
最近提交
2个月前

这是什么?

Phoenix 是一个用于构建终端用户界面(TUI)的 Go 框架,由 10 个相互独立的模块组成,可以整体引入,也可以按需单独使用。它采用 Elm 架构(Model、Update、View),每个库内部按 domain、application、infrastructure、api 分层组织。

文本宽度计算基于字形簇和东亚宽度规则,目标是让 emoji 和中日韩字符也能保持布局对齐。渲染方式既可以是逐行差分的内联模式,也可以是全屏备用屏幕模式。框架还提供 TTY 控制接口,可以在界面中调起 vim、shell 等外部程序,结束后自动恢复 TUI。

组件库包含文本输入、列表、表格、弹窗、进度条与加载动画、表单和选择菜单。此外还提供类 CSS 的样式系统和主题预设、Flexbox 与 Grid 布局、鼠标事件处理,以及通过 OSC 52 支持 SSH 场景的跨平台剪贴板。项目附有从 Bubbletea、Lipgloss、Bubbles 迁移的指南。

核心功能

  • 01基于 Elm 架构的状态管理,模型支持泛型与类型安全
  • 02依据 UAX #11 计算 Unicode 与 emoji 宽度
  • 03支持逐行差分的内联渲染和全屏备用屏幕模式
  • 04通过 TTY 控制运行 vim、shell 等外部进程
  • 05提供文本输入、表格、弹窗、表单、进度条等组件
  • 06附带模拟终端和测试工具,便于编写 TUI 测试

适用场景

  • 用 Go 开发需要表单、列表或菜单的交互式命令行工具
  • 开发需要调起外部程序(如编辑器或 shell)的类终端应用
  • 构建需要正确显示中日韩文字或 emoji 对齐的终端界面
  • 将已有的 Bubbletea/Lipgloss 项目迁移到分层结构的代码库

快速上手

  1. 1

    安装总模块

    go get github.com/phoenix-tui/phoenix@latest
  2. 2

    使用 README 中的快速开始示例创建 main.go 并运行

使用前须知

  • 需要 Go 1.25 或更高版本。
  • 项目处于早期阶段,仅有 45 个 star,社区较小,经过的实践检验有限。

标签

常见问题

phoenix 是什么?
基于 Elm 架构的 Go 终端 UI 框架,支持正确的 Unicode 宽度计算,内置丰富组件,可迁移自 Charm 生态。 Phoenix 是一个用于构建终端用户界面(TUI)的 Go 框架,由 10 个相互独立的模块组成,可以整体引入,也可以按需单独使用。它采用 Elm 架构(Model、Update、View),每个库内部按 domain、application、infrastructure、api 分层组织。
phoenix 可以免费使用吗?用的什么许可证?
phoenix 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
phoenix 还在维护吗?
半年内有更新。phoenix 最近一次提交是在 2026年8月25日。
phoenix 适合用来做什么?
用 Go 开发需要表单、列表或菜单的交互式命令行工具 开发需要调起外部程序(如编辑器或 shell)的类终端应用 构建需要正确显示中日韩文字或 emoji 对齐的终端界面 将已有的 Bubbletea/Lipgloss 项目迁移到分层结构的代码库
phoenix 怎么安装和运行?
安装总模块: go get github.com/phoenix-tui/phoenix@latest 使用 README 中的快速开始示例创建 main.go 并运行
在哪里获取 phoenix?
源代码和安装说明在 GitHub 上:https://github.com/phoenix-tui/phoenix

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目