Bubble Tea

Elm-inspired TUI (Terminal UI) framework for Go from Charmbracelet. Uses a Model-Update-View architecture where state is immutable and UI is a pure function of state. Powers tools like GitHub CLI and Charm's own suite. Composable with Lip Gloss for styling and Bubbles for pre-built components (spinners, text inputs, list, viewport).

Evaluated Mar 07, 2026 (0d ago) v1.x
Homepage ↗ Repo ↗ Developer Tools go tui terminal elm charmbracelet interactive cli spinner
⚙ Agent Friendliness
67
/ 100
Can an agent use this?
🔒 Security
96
/ 100
Is it safe for agents?
⚡ Reliability
81
/ 100
Does it work consistently?

Score Breakdown

⚙ Agent Friendliness

MCP Quality
--
Documentation
85
Error Messages
78
Auth Simplicity
100
Rate Limits
100

🔒 Security

TLS Enforcement
100
Auth Strength
100
Scope Granularity
100
Dep. Hygiene
88
Secret Handling
88

Terminal UI library — no network access, no security concerns.

⚡ Reliability

Uptime/SLA
88
Version Stability
80
Breaking Changes
75
Error Recovery
82
AF Security Reliability

Best When

Building interactive Go CLI tools with forms, menus, or real-time terminal displays.

Avoid When

Your CLI is non-interactive or you need cross-language TUI support.

Use Cases

  • Build interactive terminal UIs for Go CLI tools with keyboard navigation, forms, and dynamic updates
  • Create dashboard-style terminal applications with multiple panes using Bubble Tea's viewport and list components
  • Implement interactive configuration wizards or onboarding flows in Go CLI tools
  • Build real-time terminal dashboards that update based on external events or data streams
  • Create games or interactive demos in the terminal with Bubble Tea's event-driven update loop

Not For

  • Simple non-interactive CLI scripts — use cobra/flag for argument parsing without TUI overhead
  • Browser-based UIs — Bubble Tea is terminal only; use React/Vue for web UIs
  • Python/Node.js projects — Bubble Tea is Go-only; use Textual (Python) or Ink (Node) for equivalent TUI in those languages

Interface

REST API
No
GraphQL
No
gRPC
No
MCP Server
No
SDK
Yes
Webhooks
No

Authentication

Methods: none
OAuth: No Scopes: No

Library — no auth needed.

Pricing

Model: open_source
Free tier: Yes
Requires CC: No

MIT licensed open source library from Charmbracelet.

Agent Metadata

Pagination
none
Idempotent
Full
Retry Guidance
Not documented

Known Gotchas

  • Bubble Tea uses the Elm architecture — state MUST be immutable; Update() must return a new Model, never mutate the existing one
  • Concurrent operations use tea.Cmd (commands) not goroutines — spawning goroutines that modify model state directly will cause race conditions
  • Terminal size is not available until WindowSizeMsg is received — always handle tea.WindowSizeMsg to set initial width/height
  • Bubble Tea v1.0 (2024) introduced breaking changes from v0.25 — Init() return signature and WithAltScreen behavior changed
  • Alt screen mode (tea.EnterAltScreen) clears the terminal on exit — if you need to preserve output, don't use alt screen or save to a log
  • Programs must call p.Quit() or return tea.Quit from Update — forgetting to handle Ctrl+C will leave the terminal in a broken state

Alternatives

Full Evaluation Report

Comprehensive deep-dive: security analysis, reliability audit, agent experience review, cost modeling, competitive positioning, and improvement roadmap for Bubble Tea.

AI-powered analysis · PDF + markdown · Delivered within 30 minutes

$99

Package Brief

Quick verdict, integration guide, cost projections, gotchas with workarounds, and alternatives comparison.

Delivered within 10 minutes

$3

Score Monitoring

Get alerted when this package's AF, security, or reliability scores change significantly. Stay ahead of regressions.

Continuous monitoring

$3/mo

Scores are editorial opinions as of 2026-03-07.

6470
Packages Evaluated
26150
Need Evaluation
173
Need Re-evaluation
Community Powered