{"data":{"slug":"bubbletea","name":"Bubble Tea","tagline":"MIT Go framework for terminal UIs, built on The Elm Architecture — the engine under a lot of modern CLIs","category":"libraries","categoryName":"Libraries","url":"https://charm.land","github":"https://github.com/charmbracelet/bubbletea","pricing":"open-source","hook":"Bubble Tea is how Go developers build interactive terminal apps: a model, an update function and a view, with the framework handling input, rendering and the event loop.","whatsGood":"MIT (charmbracelet/bubbletea), release v2.1.0 (2026-10-08); v2 lives at the `charm.land/bubbletea/v2` import path with an upgrade guide from v1. The Elm-style loop keeps state in one place, which makes TUIs easy to reason about and to test. Pairs with Bubbles (text inputs, viewports, spinners and other components) and Lip Gloss (styling and layout) from the same team. Used in production by many CLIs. ★~45k.","theCatch":"Go only. The Elm Architecture is a different mental model from imperative terminal code, and every keypress and tick flows through one update function, which gets long in big apps unless you split models early. v1 to v2 is a breaking upgrade with a new import path, so older tutorials and examples may not compile as written. Vs textual (Python, CSS-style layouts and widgets): pick Bubble Tea if your CLI is already in Go.","verdict":"The default way to build a polished interactive terminal UI in Go — start on v2, not on old v1 tutorials.","addedAt":"2026-10-11","featured":false,"domain":"Libraries","subSpecialty":"Terminal UI","subcategory":"Terminal UI","tags":["cli","tui","sdk","self-host","permissive","graphics-3d","active"],"capabilities":["tui","cli","framework"],"surfaces":["CLI","Self-host"],"ecosystem":["Go"],"licenseModel":"OSS/MIT","githubStars":45450,"starsPerWeek":129,"access":"free","archived":false,"repo":{"createdAt":"2020-01-10","pushedAt":"2026-10-08","license":"MIT","archived":false,"checkedAt":"2026-10-19"}},"related":[{"slug":"hono","name":"Hono","tagline":"Tiny TypeScript web framework that runs on every runtime"},{"slug":"phaser","name":"Phaser","tagline":"MIT HTML5 2D game framework with scenes, physics, and tilemaps"},{"slug":"pixijs","name":"PixiJS","tagline":"MIT 2D WebGPU/WebGL renderer, not a game engine"},{"slug":"babylonjs","name":"Babylon.js","tagline":"Apache-2.0 3D engine for the web, now on v9"},{"slug":"playcanvas","name":"PlayCanvas","tagline":"MIT WebGL2/WebGPU engine plus an optional hosted Editor"}],"links":{"self":"/api/gems/bubbletea","html":"/gems/bubbletea","markdown":"/gems/bubbletea.md","category":"/api/gems?category=libraries","categoryPage":"/stacks/libraries"}}