Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. bubbletea

bubbletea

MITGov2.0.6

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

GitHubGitHub
41.8k stars1.2k 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

Stars41,785
Forks1,198
Contributors0
Open Issues101
Last commit2 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 1 day ago

Related Projects

fxfx

Terminal JSON viewer & processor

Stars20,434
Forks478
Last commit27 days ago
termuitermui

Golang terminal dashboard

Stars13,542
Forks816
Last commit9 months ago
lipglosslipgloss

Style definitions for nice terminal layouts 👄

Stars11,105
Forks334
Last commit2 days ago
gocuigocui

Minimalist Go package aimed at creating Console User Interfaces.

Stars10,554
Forks641
Last commit11 months 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