Skip to main content
Bubble Tea is a Go framework for building terminal applications based on The Elm Architecture. It’s well-suited for simple and complex terminal applications, either inline, full-window, or a mix of both.

Why Bubble Tea?

Bubble Tea is in use in production and includes a number of features and performance optimizations:
  • High-performance cell-based renderer for efficient terminal updates
  • Built-in color downsampling for consistent appearance across terminals
  • Declarative views that make UI logic simple and predictable
  • High-fidelity keyboard and mouse handling for rich interactions
  • Native clipboard support for seamless copy/paste operations
  • Functional design based on The Elm Architecture

The Elm Architecture

Bubble Tea programs follow a simple, functional pattern. Every application is comprised of a model that describes your application state and three methods:

Init

Returns an initial command for the application to run

Update

Handles incoming events and updates the model accordingly

View

Renders the UI based on the data in the model
This architecture creates a clean separation between your application logic, state management, and presentation.

Get started

Quickstart

Build your first Bubble Tea app in minutes

Concepts

Learn about models, messages, and commands

Examples

Explore real-world Bubble Tea applications

Built with Bubble Tea

Bubble Tea powers over 18,000 applications, including production tools from:
  • Microsoft AzureAztify brings Azure resources under Terraform
  • DaytonaDaytona is an AI infrastructure platform
  • Cockroach LabsCockroachDB cloud-native distributed SQL
  • AWSeks-node-viewer for EKS cluster visualization
  • MinIOmc the official MinIO client
  • UbuntuAuthd authentication daemon
And many community favorites like chezmoi, gh-dash, and Superfile.

Ecosystem

Bubble Tea works great with these companion libraries:
  • Bubbles – Common UI components like text inputs, viewports, and spinners
  • Lip Gloss – Style, format, and layout tools for terminal applications
  • Harmonica – Spring animation library for smooth, natural motion
  • BubbleZone – Easy mouse event tracking for components

Build docs developers (and LLMs) love