Add a searchable, paginated list picker to a Go CLI tool by dropping in the list component.
Build a filesystem browser with keyboard navigation inside a terminal app using the file picker component.
Display a real-time progress bar or spinner while your CLI tool downloads or processes data in the background.
Show tabular data with scrollable rows and columns in a terminal using the table component.
Bubbles is a collection of ready-made interface components for building text-based applications that run in a terminal. It is built on top of Bubble Tea, a framework for creating interactive terminal programs in Go. If Bubble Tea is the foundation, Bubbles is the library of pre-built parts you assemble into a working app. The components cover common interface needs. There is a text input for single-line typing, a text area for multi-line writing, a table for displaying rows and columns of data, and a list for browsing a set of items with optional filtering and pagination. There are also smaller pieces like a spinner to show that something is loading, a progress bar, a timer, a stopwatch, a paginator for navigating pages of content, a viewport for scrolling through long text, a file picker for navigating the filesystem, and a help view that generates a keyboard shortcut reference automatically from your defined keybindings. Each component is designed to be dropped into a Bubble Tea application as a reusable piece. Developers can customize colors, key bindings, sizes, and other visual properties to match the style of their app. The components handle the rendering and update logic internally, so the developer focuses on how to wire them together rather than how to draw each element from scratch. The project is maintained by Charmbracelet, the same team behind Bubble Tea and other terminal tooling. The components are used in production in Charmbracelet's own applications and in many community projects. There is also a collection of community-maintained components beyond what this repository includes.
← charmbracelet on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.