Bubble Tea is a Go framework for building terminal user interfaces based on the Elm Architecture.
The framework addresses the challenge of building stateful, interactive terminal applications by applying functional programming principles from the Elm Architecture. It structures programs around three core methods: Init for initialization, Update for handling events and state changes, and View for rendering the UI. This approach separates concerns cleanly and makes terminal applications easier to reason about and maintain.
Bubble Tea suits developers building terminal applications in Go who want a structured, maintainable approach rather than imperative terminal manipulation. It handles both simple inline utilities and complex full-window applications. The framework includes production-ready features such as a high-performance cell-based renderer, built-in color downsampling, declarative views, high-fidelity keyboard and mouse handling, and native clipboard support. For developers seeking pre-built UI components, the companion library Bubbles provides common components that integrate with the framework.
The project maintains active development with regular updates and improvements. Documentation includes a tutorial, examples, and an upgrade guide for users migrating between versions. The codebase demonstrates attention to performance optimization and practical production use, suggesting ongoing refinement based on real-world deployment experience.