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
安装总模块
go get github.com/phoenix-tui/phoenix@latest - 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 数据每日更新。
相关项目
一个基于 Elm 架构的 Go 语言终端 UI(TUI)框架,用于构建交互式命令行应用。
为 Bubble Tea 终端应用提供的一组现成 TUI 组件,包括输入框、表格、列表、进度条等。
用于管理编程智能体技能的终端界面,可查看、检查、安装和更新技能。
一款用 Go 编写、基于 Bubble Tea 的现代终端文件管理器,用于在命令行中浏览和管理文件。
一个 Go 语言终端 UI 库,提供表单、表格、树形视图、列表等现成交互组件。