A powerful little TUI framework 🏗
43.6k
Stars
1.3k
Forks
190
Open issues
30
Contributors
AI Analysis
Bubble Tea is a Go framework for building terminal user interfaces (TUIs) based on The Elm Architecture functional programming paradigm. It excels at creating both simple and complex terminal applications with features like high-performance rendering, keyboard/mouse handling, and clipboard support. It is best suited for Go developers building CLI tools and interactive terminal applications, and is not intended for web applications or graphical desktop UIs.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
Elm Architecture-inspired Go TUI framework with 43k stars and broad ecosystem adoption
Bubble Tea is a Go framework for building terminal user interfaces based on The Elm Architecture (Model-Update-View). It targets Go developers who need interactive, stateful CLI apps — from simple inline widgets to full-window TUIs. It sits at the center of the Charmbracelet ecosystem, which includes companion libraries for components (Bubbles), styling (Lipgloss), forms (Huh), and SSH apps (Wish). README explicitly states it is production-ready with performance optimizations including a cell-based renderer, color downsampling, and high-fidelity input handling. Wide adoption is observable across the Go CLI tooling space.
Created in January 2020 by Charmbracelet. Grew steadily as Go CLI tooling matured. Recently released v2 (breaking change from v1), signaling continued active architectural evolution rather than stagnation.
Growth was driven by the broader trend of developer-focused CLI tools written in Go, the appeal of functional/Elm-style architecture in a language with no dominant TUI framework, and strong ecosystem synergy across Charmbracelet repos. The companion libraries (Bubbles, Lipgloss, Huh) reinforce each other's adoption. 145 stars in 7 days indicates ongoing organic interest nearly 6 years in.
README states the framework 'is in use in production.' The broader Charmbracelet ecosystem (gum with 23k stars, lipgloss with 11k stars) strongly implies real downstream production usage. Multiple high-profile Go CLI tools in the ecosystem are known to use Bubble Tea as their TUI layer. Adoption is verifiable through dependent projects on GitHub and pkg.go.dev, though specific production case studies are not enumerated in the README.
Appears to implement a strict unidirectional data flow pattern inspired by The Elm Architecture: a Model struct, an Init function returning an initial Cmd, an Update function handling Msg events and returning updated Model+Cmd, and a View function rendering string output. Likely uses goroutines and channels internally for async command execution. The v2 release (charm.land/bubbletea/v2) appears to be a non-trivial API revision with a published upgrade guide, suggesting deliberate architectural refinement.
Not documented in README
Last push was 2026-06-22, two days before the evaluation date. CI badge is present. Active v2 development and an explicit upgrade guide indicate sustained, intentional maintenance rather than passive upkeep. Charmbracelet as an organization maintains multiple actively developed repositories, reducing bus-factor risk.
ADOPT IF: you are building a Go CLI tool that requires interactive, stateful terminal UI and are comfortable with functional/Elm-style architecture patterns. AVOID IF: you need a quick imperative widget layout, prefer Python or another language ecosystem, or your TUI needs are limited to static output that lipgloss or simple fmt printing can handle. MONITOR IF: you are evaluating v2 migration from v1 and need to assess API stability before committing to the new module path.
Independent dimensions
Mainstream potential
7/10
Technical importance
8/10
Adoption evidence
7/10
- v2 API migration introduces a new module path (charm.land/bubbletea/v2) that may cause fragmentation between v1 and v2 ecosystem libraries until all companions fully migrate.
- Elm Architecture imposes a specific mental model that has a real learning curve for developers accustomed to imperative or reactive UI patterns, potentially limiting adoption in teams without prior functional UI experience.
- Charmbracelet is a small company; while the organization reduces single-contributor risk, commercial sustainability of maintaining multiple high-quality open source libraries long-term is not publicly documented.
- Terminal rendering remains an inherently inconsistent target across terminal emulators, OSes, and CI environments — framework quality notwithstanding, edge-case rendering bugs are structurally harder to eliminate.
- The framework is Go-only, so any organizational shift away from Go for CLI tooling eliminates it as an option regardless of quality.
Bubble Tea is likely to consolidate its position as the de facto TUI framework for Go, with v2 stabilization driving a new wave of ecosystem tooling over the next 12-18 months. Mainstream dominance outside Go is unlikely.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- Go
- License
- MIT
- Last updated
- 4d ago
- Created
- 79mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
Top contributors
Recent releases
Similar repos
charmbracelet/bubbles
Bubbles provides reusable TUI (terminal user interface) components for building...
charmbracelet/lipgloss
Lip Gloss is a Go library for declarative terminal styling and layout, designed...
charmbracelet/wish
Wish is a Go library for building custom SSH servers with sensible defaults and...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
43.6k | +126 | Go | 9/10 | 4d ago |
|
|
8.6k | — | Go | 8/10 | 4d ago |
|
|
7k | — | Go | 8/10 | 4d ago |
|
|
11.5k | — | Go | 9/10 | 5d ago |
|
|
5.3k | — | Go | 8/10 | 4d ago |
|
|
24k | — | Go | 8/10 | 4w ago |
tview offers a widget-tree model closer to traditional GUI frameworks. Bubble Tea's functional/immutable approach is more predictable for complex state but requires more explicit wiring. tview has older adoption base; Bubble Tea has stronger recent momentum.
tcell is a low-level terminal cell library, not a framework. Bubble Tea likely builds on similar primitives but provides full application structure. Suitable comparison only for teams wanting full control vs. opinionated abstractions.
termui is dashboard/widget focused and appears less actively maintained. Bubble Tea is more general-purpose and has a clearly more active maintenance signal.
gocui uses a layout-and-keybinding imperative model. Bubble Tea's Elm architecture is a different philosophy — more testable state management but a steeper initial mental model shift for imperative-minded developers.
Textual (Python) is the closest philosophical analog across languages, also framework-level with component model. Not directly competitive for Go projects but relevant when language choice is open.

