Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. bubbletea

bubbletea

MITGov2.0.8

A fun, functional, and stateful Go framework for building terminal user interfaces (TUIs) based on The Elm Architecture.

GitHubGitHub
43.9k stars1.3k forks0 contributors

What is bubbletea?

Bubble Tea is a Go framework for building terminal user interfaces (TUIs) using The Elm Architecture. It provides a declarative, stateful way to create interactive command-line applications, from simple tools to full-window interfaces. The framework handles rendering, input events, and component lifecycle, allowing developers to focus on application logic.

Target Audience

Go developers building interactive command-line tools, system administrators creating custom terminal dashboards, and anyone needing to build rich text-based interfaces beyond basic CLI output.

Value Proposition

Developers choose Bubble Tea for its elegant functional design, production-ready performance optimizations, and comprehensive feature set including mouse support, clipboard integration, and a vibrant ecosystem of companion libraries like Bubbles for UI components.

Overview

A powerful little TUI framework 🏗

Use Cases

Best For

  • Building interactive CLI tools with complex user interfaces
  • Creating terminal dashboards for system monitoring
  • Developing text-based games or educational applications
  • Building custom DevOps or deployment tools with rich feedback
  • Porting web app patterns to command-line interfaces
  • Adding interactive configuration wizards to existing Go applications

Not Ideal For

  • Projects requiring graphical user interfaces or multimedia support beyond terminal capabilities
  • Simple command-line scripts that only need basic argument parsing and static output
  • Teams preferring imperative UI programming styles over declarative state management

Pros & Cons

Pros

Functional State Management

Adopts The Elm Architecture with Init, Update, and View methods, ensuring predictable and testable UI behavior, as demonstrated in the tutorial's shopping list example.

High-Performance Rendering

Includes a cell-based renderer with built-in color downsampling, optimized for efficient terminal output and used in production apps like Glow and Chezmoi.

Rich Input Handling

Supports keyboard, mouse, and native clipboard events, enabling complex interactivity without external dependencies, as highlighted in the features list.

Declarative View System

Allows UI description without manual redrawing logic, simplifying updates and reducing bugs, evident in the View method that builds content based on model state.

Cons

Debugging Complexity

Requires running delve in headless mode due to stdin/stdout control, making iterative debugging more cumbersome than standard Go programs, as admitted in the debugging section.

Terminal-Only Restriction

Confined to text-based interfaces, so it cannot handle graphical elements or web apps, limiting use cases for projects needing visual richness.

Ecosystem Dependency

While Bubbles provides common components, the ecosystem is still maturing, and advanced features like charts require additional libraries like ntcharts, increasing setup complexity.

Frequently Asked Questions

Quick Stats

Stars43,908
Forks1,272
Contributors0
Open Issues108
Last commit4 days ago
CreatedSince 2020

Tags

#hacktoberfest#cli-framework#terminal-apps#tui#text-ui#framework#elm-architecture#golang#cli#charmbracelet#command-line#go#functional#state-management

Built With

G
Go

Included in

Go169.1k
Auto-fetched 17 hours ago

Related Projects

fxfx

Terminal JSON viewer & processor

Stars20,544
Forks483
Last commit2 months ago
termuitermui

Golang terminal dashboard

Stars13,577
Forks818
Last commit1 year ago
lipglosslipgloss

Style definitions for nice terminal layouts 👄

Stars11,604
Forks383
Last commit4 days ago
gocuigocui

Minimalist Go package aimed at creating Console User Interfaces.

Stars10,595
Forks642
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub