Repolode
charmbracelet

charmbracelet/bubbletea

一个基于 Elm 架构的 Go 语言终端 UI(TUI)框架,用于构建交互式命令行应用。

Star
45,471
Fork
4,035
未关闭 Issue
272
最近提交
13天前

这是什么?

Bubble Tea 是一个用 Go 编写的终端应用框架,适合从小型交互工具到全屏程序的各种场景。它采用 Elm 架构:应用由保存状态的 model、处理按键等消息的 Update 函数,以及根据状态渲染界面的 View 函数组成。运行时负责重绘,开发者只需描述界面内容,无需手动管理终端输出。

框架支持行内、全屏以及两者混合的布局方式。它内置基于单元格的渲染器、面向有限调色板终端的颜色降采样、可声明备用屏幕和鼠标追踪等选项的声明式视图,以及键盘和鼠标输入处理与剪贴板支持。通过命令机制,程序可以执行定时器或网络请求等 I/O 操作而不阻塞界面。

常见的搭配是同一项目的配套库:Bubbles 提供文本输入、视口等现成组件,Lip Gloss 负责样式与布局,Harmonica 提供动画效果。

核心功能

  • 01基于 Elm 架构,通过 Init、Update、View 三个方法组织应用。
  • 02提供基于单元格的渲染器和内置颜色降采样。
  • 03支持行内、全屏及混合式终端布局。
  • 04处理键盘与鼠标输入,并支持原生剪贴板。
  • 05通过命令机制执行定时器、网络请求等异步 I/O。

适用场景

  • 用 Go 开发带表单、列表或菜单的交互式命令行工具。
  • 制作全屏终端仪表盘或文件管理器。
  • 编写响应键盘与鼠标事件的终端游戏或可视化程序。

快速上手

  1. 1

    在 Go 代码中导入 Bubble Tea v2 包

  2. 2

    下载 bubbletea 及其依赖

    go mod tidy

使用前须知

  • 使用它需要Go语言的基础知识,因为它是用Go编写的。
  • 从v1升级到v2需要参考单独的升级指南,因为v2的API有所改变。

标签

常见问题

bubbletea 是什么?
一个基于 Elm 架构的 Go 语言终端 UI(TUI)框架,用于构建交互式命令行应用。 Bubble Tea 是一个用 Go 编写的终端应用框架,适合从小型交互工具到全屏程序的各种场景。它采用 Elm 架构:应用由保存状态的 model、处理按键等消息的 Update 函数,以及根据状态渲染界面的 View 函数组成。运行时负责重绘,开发者只需描述界面内容,无需手动管理终端输出。
bubbletea 可以免费使用吗?用的什么许可证?
bubbletea 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
bubbletea 还在维护吗?
活跃维护中。bubbletea 最近一次提交是在 2026年10月8日。
bubbletea 适合用来做什么?
用 Go 开发带表单、列表或菜单的交互式命令行工具。 制作全屏终端仪表盘或文件管理器。 编写响应键盘与鼠标事件的终端游戏或可视化程序。
bubbletea 怎么安装和运行?
在 Go 代码中导入 Bubble Tea v2 包 下载 bubbletea 及其依赖: go mod tidy
在哪里获取 bubbletea?
源代码和安装说明在 GitHub 上:https://github.com/charmbracelet/bubbletea

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

相关项目