用途:指导用 Charmbracelet 生态构建终端 UI(TUI)。适用场景包括 Go TUI 开发、shell 脚本的提示与加载动画、让 CLI 更美观、自适应布局、异步处理、通过 SSH 提供 TUI 服务以及录制终端演示。
主要能力与使用方式:
- 选型决策。shell 脚本用 Gum(需录制用 VHS,需 AI 用 Mods);Go 应用仅样式输出用 Lip Gloss,简单表单用 Huh,完整交互式 TUI 用 Bubble Tea + Bubbles + Lip Gloss,生产级再叠加精英模式,需 SSH 访问用 Wish + Bubble Tea。
- 脚本方式(无需 Go):brew install gum 安装,提供 gum input、gum choose、gum filter、gum confirm、gum spin、gum style 等命令。
- Go 方式:go get github.com/charmbracelet/bubbletea github.com/charmbracelet/lipgloss,采用 Model/Update/View 结构,tea.NewProgram(m).Run() 启动。库速查:bubbletea 框架、bubbles 组件、lipgloss 样式、huh 表单、glamour Markdown、harmonica 动画。
- SSH 应用使用 wish.NewServer 搭配 bubbletea.Middleware 与 logging.Middleware,监听端口后通过 ssh 连接。
- 生产架构模式针对卡顿、布局破坏、多视图混乱、数据可视化、精致体验等问题给出方案,如两阶段异步、不可变快照、预计算样式、自适应布局、语义主题、焦点状态机、面包屑、防抖搜索、内联展开、Unicode 火花线、ASCII 依赖图、持久状态、优雅降级。
- 上线前检查清单:处理 WindowSizeMsg、ctrl+c 清理与终端恢复、检测管道输入回退纯文本、测试 80×24 终端、提供 --no-tui/NO_TUI 逃生口、测试明暗背景与 NO_COLOR=1、TERM=dumb。
限制:输出被管道、CI/CD 无终端、只有一个简单提示时不宜使用 Charm,应回退纯文本或 flags/环境变量。具体价格、平台支持与效果材料未提供。