Repolode
charmbracelet

charmbracelet/bubbles

A collection of ready-made TUI components (spinner, text input, table, list, viewport, help and more) for building Bubble Tea terminal apps in Go.

Stars
9,002
Forks
475
Open issues
250
Last commit
18 days ago

What is it?

Bubbles is a Go library of reusable terminal user interface components built for Bubble Tea, the Elm-architecture framework for terminal apps. Instead of writing every widget from scratch, developers can drop in components such as a spinner, single-line and multi-line text inputs, a sortable-style table, a filterable list, a scrollable viewport, a progress bar, a paginator, a file picker, timers and stopwatches, and an auto-generated help view.

Each component is a Bubble Tea model with its own Update and View methods, so it can be embedded in a larger application and composed with other components. A key-binding helper package lets applications define keymaps, allow users to remap keys, and generate help text from the same bindings. Components support Unicode input, pasting, scrolling, and customizable styling. The library is at version 2 and is published under the charm.land import path.

Key features

  • 01Includes spinner, text input, text area, table, list, viewport, and progress components
  • 02Provides a paginator with dot-style or numeric page display
  • 03Offers a file picker that can filter by file extension
  • 04Includes timer and stopwatch components for counting down and up
  • 05Generates help views automatically from key bindings

Use cases

  • Adding loading indicators and progress bars to a Go command-line tool
  • Building a terminal form with multiple text fields
  • Displaying scrollable lists or tabular data in a TUI application
  • Letting users pick files or remap keybindings inside a terminal app

Things to know

  • The README gives no install command, so there is no quick start to show.
  • Upgrading from v1 to v2 requires following a separate upgrade guide.
  • These components are built for Bubble Tea apps, so you also need that framework.

Topics

FAQ

What is bubbles?
A collection of ready-made TUI components (spinner, text input, table, list, viewport, help and more) for building Bubble Tea terminal apps in Go. Bubbles is a Go library of reusable terminal user interface components built for Bubble Tea, the Elm-architecture framework for terminal apps. Instead of writing every widget from scratch, developers can drop in components such as a spinner, single-line and multi-line text inputs, a sortable-style table, a filterable list, a scrollable viewport, a progress bar, a paginator, a file picker, timers and stopwatches, and an auto-generated help view.
Is bubbles free to use? What license does it have?
bubbles is open source under the MIT license. Check the license terms before using it in commercial products.
Is bubbles still maintained?
Actively maintained. The last commit to bubbles was on Oct 4, 2026.
What can I use bubbles for?
Adding loading indicators and progress bars to a Go command-line tool Building a terminal form with multiple text fields Displaying scrollable lists or tabular data in a TUI application Letting users pick files or remap keybindings inside a terminal app
Where can I get bubbles?
The source code and installation instructions are on GitHub: https://github.com/charmbracelet/bubbles

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects