mrkeyoor.com_
Fri 16 Oct 18:53 UTC
Dev Toolsevaluationupdated 14 Oct 2026

bubbletea review

Bubble Tea is a Go framework for building interactive terminal applications, including menus and dashboards. It handles input and screen rendering while your code stores the application state and decides how each event changes it.

-1stars / 7d
Verdict

Our Bubble Tea run installed 21 packages in 16 seconds, built in 13 seconds, and passed the reported test step in 4 seconds, making the measured revision straightforward to try. Choose it for a custom Go terminal application when you want explicit control over state and asynchronous work. If shell restoration is a release requirement, resolve the open cleanup reports against your chosen revision before shipping. For a guided form, use Huh and spend the saved effort on the questions.

We ran it

Lab card: what happened when we ran bubbleteaScreenshot of bubbletea (github.com/charmbracelet/bubbletea)
Install✓ · 16s21 packages
Build✓ · 13s
Tests✓ · 4s2 passed · 0 failed of 2 (go test)
Repo230 files~14,853 lines of source · 3 MB · 7 CI workflows

Answers from our run

Does bubbletea build from source?

Dependencies installed in 16 seconds (21 packages), and the build succeeded in 13 seconds. We cloned commit 96d69d2 into a clean Debian container with 3 CPUs and no project-specific setup.

Do bubbletea's tests pass?

Yes: 2 of 2 passed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use bubbletea?

Teams migrating a v1 application without time for source changes: the upgrade guide changes imports, View's return type, key messages, and terminal settings.

What are the alternatives to bubbletea?

tview, Huh, Textual. Our Bubble Tea run installed 21 packages in 16 seconds, built in 13 seconds, and passed the reported test step in 4 seconds, making the measured revision straightforward to try.

Setup4/5All lab steps passed; the declared Go toolchain needs checking
Docs4/5Worked event and I/O tutorials, plus a detailed v2 migration guide
Community5/545,459 stars and issue and PR updates through October 13
Maturity4/5Current releases and fixes, with open terminal cleanup reports

Discussed on

  1. hnBubble Tea: fun, functional and stateful way to build terminal apps308 points
  2. hnBubbletea: A fun, functional and stateful Go framework to build terminal apps9 points
  3. hnCharmbracelet/bubbletea: A powerful little TUI framework4 points
  4. hnA fun, functional and stateful way to build terminal apps4 points
  5. hnBubble Tea3 points

Who it’s for

Go developers building a custom terminal dashboard or picker with behavior beyond a sequence of prompts.
Teams comfortable keeping application state in a model and returning asynchronous work through commands.
Developers who want Bubbles components and Lip Gloss styling around their own application loop.

Who it’s NOT for

Teams migrating a v1 application without time for source changes: the upgrade guide changes imports, View's return type, key messages, and terminal settings.
Operator tools that must guarantee shell restoration before release: open issues 1849 and 1850 report shutdown and startup-error paths that leave the terminal in raw mode.
Developers who depend on stdout logging or a debugger sharing the application's terminal: the README calls for file logs and headless debugging.
Teams with an offline Go 1.24 toolchain they cannot change: the measured commit's go.mod declares Go 1.26.0.
A CLI that only needs a guided form: the README directs developers to separate components, and Huh supplies a narrower forms API with an accessible mode.

Setup reality

Our sandbox installed commit 96d69d2 in 16 seconds, adding 21 packages. The build succeeded in 13 seconds, and the test step succeeded in 4 seconds: the supplied go test summary reported 2 passed and 0 failed out of 2. We used an unprivileged golang:1.24-bookworm container with 3 CPUs, 8 GB of RAM, and no secrets on October 5, 2026.

Basic use needs a Go application and a terminal, with no Bubble Tea account or hosted service. You implement the model and event handlers. Bubbles and Lip Gloss are separate choices for components and styling. Credentials belong to whichever services your application calls.

The measured commit declares Go 1.26.0, although the supplied summary names a Go 1.24 image and does not explain the toolchain used. Check that requirement before relying on an offline setup. The v2 API differs from v1 examples, the UI occupies stdin and stdout, and open reports describe terminal restoration failures.

Keyboard events change your Go model

Pressing the down arrow in Bubble Tea's shopping-list tutorial changes a cursor stored in a Go struct. The framework then draws the view from that state. That division is the reason to choose Bubble Tea for a custom terminal application: you can follow a user's action through your own code without managing each screen redraw. It suits an interactive deployment picker or log browser whose behavior needs more thought than its first menu.

Our checkout occupied 3 MB across 230 files and roughly 14,853 lines of source. That is a manageable repository to inspect when the framework's behavior surprises you. The core handles the application loop and rendering. The README points to separate Bubbles components for text inputs and viewports, and Lip Gloss for styling and layout. Budget time to compose those pieces, particularly when focus must move between several controls.

What happened when we ran it

Our sandbox installed Bubble Tea commit 96d69d2 in 16 seconds, adding 21 packages, and built it successfully in 13 seconds. We ran it on October 5, 2026, in an unprivileged Debian container using the golang:1.24-bookworm image, with 3 CPUs, 8 GB of RAM, and no secrets. Those results support trying the repository without a large setup commitment. They describe this checkout and environment, rather than every downstream application.

The test step succeeded in 4 seconds. The supplied go test summary reported 2 passed and 0 failed out of 2. Our scan also found 7 CI workflow files, no Dockerfile, and no tests directory. A missing directory named tests does not contradict a successful Go test command. These measurements establish that the reported steps passed. They provide no typing-latency benchmark or evidence about a particular terminal emulator's behavior.

The v2 API needs matching examples and a newer Go toolchain

The v2 upgrade guide changes the import to charm.land/bubbletea/v2, replaces a string-returning View with tea.View, and changes keyboard handling to tea.KeyPressMsg. Alternate-screen and mouse settings move into view fields. If you already have a v1 application, that is source migration work. Copying an older tutorial into the current API will leave you reconciling types and removed calls before you reach your own interface.

The measured image was golang:1.24-bookworm, while the module file at commit 96d69d2 declares Go 1.26.0. Our supplied summary does not identify the compiler actually used or explain how that requirement was satisfied. Treat the successful run as the recorded outcome, not proof that an offline Go 1.24 environment is sufficient. Check your toolchain policy before adopting this revision, especially if your organization disables automatic toolchain retrieval.

Network work belongs in commands, and logs need another destination

The commands tutorial makes an HTTP request in a command and sends its result back as a message. Commands run asynchronously, so the update method can handle the result alongside keyboard events. This is a useful discipline for a dashboard that waits on remote services. You still write the loading state and error handling. A request finishing successfully does not decide what should happen if the user has already changed selection.

Our install added 21 packages and needed no secrets in the sandbox. Bubble Tea itself does not demand an account or hosted backend, though your application's data sources may. The development gotcha is local: the README says the UI occupies stdin and stdout. It recommends file logging and a debugger running headlessly, connected from another terminal. A team accustomed to scattering print statements through handlers will need to change that habit.

Open reports describe shells left in raw input mode

Issue 1849, opened October 9, reports that a second interrupt or termination signal during shutdown can kill the process before terminal restoration. Issue 1850 reports early runtime error paths with the same cleanup consequence. Both were open when checked on October 14. Raw mode here means the user's shell can be left without normal input echo. These are specific upstream reports, separate from failures observed in our lab.

The 2 passing results in our test summary do not settle those interactive shutdown cases. Before shipping an operator tool, exercise repeated interrupts and startup errors in the terminals your team uses. That matters more than a decorative demo: a deployment picker that leaves the shell awkward to use has failed part of its job. If terminal restoration is a release requirement, resolve these reports against your chosen revision before adopting it.

October maintenance supports a trial, while simpler jobs have other choices

The last push was October 8, 2026, and v2.1.0 shipped that day with terminal-size fallback and shutdown-deadlock fixes. GitHub returned 45,459 stars and 250 open issues and PRs. Issue and pull-request updates continued through October 13. Those dates show current work, while the cleanup reports show unfinished work. The v2.1.0 release notes should be read alongside the issue tracker when selecting a revision.

The 7 CI workflow files accompanied our successful run, but framework choice still starts with the interface you need. Choose tview's ready-made tables and trees when those widgets dominate a Go app. Choose Huh's forms and accessible mode for a guided questionnaire. Textual's Python widgets suit a Python team. For Bubble Tea, start with the hardest interaction: change selection while a request is pending, then quit while it completes. Make that behavior right before styling the screen.

Alternatives

ProjectWhat it isPick it when
tviewA Go terminal UI library with ready-made tables, trees, forms, and layout containers.pick this instead when your Go interface is mostly standard widgets and you prefer assembling those controls.
HuhA Go library for terminal forms and prompts, with an accessible mode for screen readers.pick this instead when a guided questionnaire is the whole interface and you want a narrower API.
TextualA Python application framework with terminal widgets and CSS-based layout.pick this instead when the application and its maintainers already work in Python.

What people are saying

  1. [github-trending] charmbracelet/bubbletea

Sources

  1. Bubble Tea README and debugging guidance
  2. Bubble Tea commands tutorial
  3. Bubble Tea v2 upgrade guide
  4. Module requirements at measured commit 96d69d2
  5. Bubble Tea v2.1.0 release
  6. Issue 1849: repeated signals bypass terminal restoration
  7. Issue 1850: early runtime errors leave raw mode enabled
  8. tview widgets and layouts

More dev tools reviews

compose-samples · librepods · sqlmap · coucou · world-execute-me-dsh-pv · mcp-extensions · the whole board →