What it does
Bubble Tea is a Go framework for terminal user interfaces. Programs update application state from messages and render the current view as text.
Why it’s interesting
The Elm architecture gives terminal apps predictable state transitions and a clean place to handle asynchronous commands.
Real-world use case
Create an interactive deployment selector with keyboard navigation and progress messages.
What I can learn
- 01
Model-Update-View architecture
See how state transitions are handled separately from rendering, with commands representing effects such as timers or network work.
- 02
Terminal input, resizing, and screen buffers
Study how terminal key events, resize messages, and screen modes update the application model.
- 03
Composable sub-models and message passing
Learn how smaller input, table, and spinner models compose and communicate with a parent model.
One thing to explore
Examples and message loop
Follow the examples implementation and connect it to the concepts above.
Explore the source (opens in a new tab)10-Minute Challenge
Build a terminal counter
Before you start: Go installed and an interactive terminal.
- Create a small Go module and add Bubble Tea.
- Implement a model with a counter and key handling.
- Run it in a terminal; use up/down to change the count and q to quit.
mkdir bubble-demo && cd bubble-demogo mod init bubble-demogo get github.com/charmbracelet/bubbletea