{"slug": "bubble-tea", "name": "Bubble Tea", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 16, "commenters": 33, "warners": 7, "score": 9.875, "rising": -2.58, "first": "2025-11-10", "latest": "2026-08-21", "why": "I love bubble tea (And their related libs), they are a great reason to use Go for TUI", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 16, "neutral": 9, "compare": 2, "warn": 7}, "spark": [0, 3, 2, 1, 5, 0, 1, 2, 0, 2, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I love bubble tea (And their related libs), they are a great reason to use Go for TUI", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/charmbracelet/bubbletea", "official_url": "https://github.com/charmbracelet/bubbletea", "pricing": "", "aliases": ["Bubble Tea", "BubbleTea", "Bubbletea"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 790209233, "item_id": 49388077, "url": "https://news.ycombinator.com/item?id=49388077", "by": "blooalien", "date": "2026-08-21", "version": null, "stance": "recommend", "quote": "Or for Go coders there's BubbleTea", "excerpt": "Or for those coding in Python there's Textual: https://textual.textualize.io/ Or for Go coders there's BubbleTea: https://github.com/charmbracelet/bubbletea Why? Because TUI!", "context": "", "use_case": "Go TUI apps", "switched_from": "", "story": "Stop Making TUIs"}, {"id": 790161376, "item_id": 49385086, "url": "https://news.ycombinator.com/item?id=49385086", "by": "8cvor6j844qw_d6", "date": "2026-08-21", "version": null, "stance": "recommend", "quote": "Bubble Tea [1] is my favorite for one-off throwaway stuff in terminal.", "excerpt": "Bubble Tea [1] is my favorite for one-off throwaway stuff in terminal. Wish [2] to make it available over SSH. [1] https://github.com/charmbracelet/bubbletea [2] https://github.com/charmbracelet/wish", "context": "", "use_case": "Terminal UIs", "switched_from": "", "story": "Stop Making TUIs"}, {"id": 776491137, "item_id": 48530696, "url": "https://news.ycombinator.com/item?id=48530696", "by": "philajan", "date": "2026-06-14", "version": null, "stance": "recommend", "quote": "I\u2019ve been having a lot of fun with it compared to the React SPAs", "excerpt": "I\u2019ve been considering new features on Book Bounce for my use cases. I\u2019m pretty hesitant to start anything new on it while I\u2019m waiting for approval for Google Play\u2026 https://bedtimebookhelper.com/ In the mean time, I\u2019m working on a recipe application I\u2019ve had countless false starts on. It\u2019s centered around iterations and version on recipes, tracking changes to ingredients and directions to build new a new recipe from a", "context": "", "use_case": "Terminal UI", "switched_from": "", "story": "Ask HN: What are you working on? (June 2026)"}, {"id": 773925920, "item_id": 48370370, "url": "https://news.ycombinator.com/item?id=48370370", "by": "neomantra", "date": "2026-06-02", "version": null, "stance": "recommend", "quote": "I've been pushing on BubbleTea Kitty and Ghostty quite a bit to hybridize this.", "excerpt": "I really enjoy using Golang to make TUIs and the Charm ecosystem. > But I think we will swing back to using GUIs I've been pushing on BubbleTea Kitty and Ghostty quite a bit to hybridize this. The TUI / GUI distinction to me is about task centrism and delivery. There's an appropriate surface and workflow for every task; beyond TUI/GUI sometime it needs to be a VR headset or an immersive room or a literal sandbox. A d", "context": "", "use_case": "TUI framework", "switched_from": "", "story": "strace-ui, Bonsai_term, and the TUI renaissance"}, {"id": 773891570, "item_id": 48368223, "url": "https://news.ycombinator.com/item?id=48368223", "by": "dogas", "date": "2026-06-02", "version": null, "stance": "recommend", "quote": "TUI libraries like Lipgloss and Bubbletea really allow users to build a rich experience nowadays.", "excerpt": "I've been making a modern Slack terminal client (https://github.com/gammons/slk) and it's been a joy to use daily. There are a few things that IMO have unlocked a fantastic TUI experience: - TUI libraries like Lipgloss and Bubbletea really allow users to build a rich experience nowadays. Really anything from https://charm.land is well-polished and a joy to use. - Kitty image format works great and allows for Avatars,", "context": "", "use_case": "", "switched_from": "", "story": "strace-ui, Bonsai_term, and the TUI renaissance"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 760071920, "item_id": 47504495, "url": "https://news.ycombinator.com/item?id=47504495", "by": "shimman", "date": "2026-03-24", "version": null, "stance": "warn", "quote": "I often have a hard time understanding how to use charmbracelet effectively, for minor TUI things I prefer tview more.", "excerpt": "This is cool! I wanted to make a basic CRUD form to update meta data and was considering go, lots of neat libraries to take a look at. Interesting that it uses charmbracelet libraries to create the terminal components. I often have a hard time understanding how to use charmbracelet effectively, for minor TUI things I prefer tview more. Anyone know any good tutorials/blog posts about building something complicated wit", "context": "", "use_case": "building TUIs", "switched_from": "", "story": "A retro terminal music player inspired by Winamp"}, {"id": 756328672, "item_id": 47270542, "url": "https://news.ycombinator.com/item?id=47270542", "by": "TheDong", "date": "2026-03-05", "version": null, "stance": "warn", "quote": "Yup, very easy to just look at the github url and guess.", "excerpt": "Go's package management is just so absolutely easy to use, and this package uses it flawlessly. The github url is https://github.com/charmbracelet/bubbletea, so you can easily guess how to import it: import \"charm.land/bubbletea/v2\" Yup, very easy to just look at the github url and guess. And now that you've imported it, you can guess how to use it, right? Yup, start with \"tea.Init()\". Wait, where'd the \"tea\" come fr", "context": "", "use_case": "TUI framework in Go", "switched_from": "", "story": "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now"}, {"id": 748798400, "item_id": 46799900, "url": "https://news.ycombinator.com/item?id=46799900", "by": "GeertJohan", "date": "2026-01-28", "version": null, "stance": "warn", "quote": "I used bubbletea for a while but quit it because of inconsistencies in the design.", "excerpt": "I used bubbletea for a while but quit it because of inconsistencies in the design. Went to ratatui and never looked back. Go and Bubbletea are nice, but rust is much more suited for building tuis.", "context": "", "use_case": "", "switched_from": "Bubbletea", "story": "Mousefood \u2013 Build embedded terminal UIs for microcontrollers"}, {"id": 747816960, "item_id": 46738560, "url": "https://news.ycombinator.com/item?id=46738560", "by": "awesome_dude", "date": "2026-01-23", "version": null, "stance": "warn", "quote": "Bubbletea has the unfortunate side effect of enforcing style/architecture on a project", "excerpt": "Bubbletea has the unfortunate side effect of enforcing style/architecture on a project Much like cobra (or was it viper) did for CLI switches This is cool if that's what you like, but if you have your own thinking on layout/architecture then you're in for a world of pain. I use rivo/tview in my projects, and like it, but it's not without its \"quirks\"", "context": "", "use_case": "Go TUI framework", "switched_from": "", "story": "Show HN: Whosthere: A LAN discovery tool with a modern TUI, written in Go"}]}], "who": [{"by": "shantnutiwari", "context": "uses Go for hobby projects", "url": "https://news.ycombinator.com/item?id=48063632", "date": "2026-05-08"}, {"by": "eterps", "context": "uses TUIs often", "url": "https://news.ycombinator.com/item?id=46434481", "date": "2025-12-30"}], "tags": [], "use_cases": ["tui framework", "terminal ui framework", "building tuis", "building terminal uis", "go tui apps", "terminal uis"], "compared": [{"slug": "lip-gloss", "name": "Lip Gloss", "co": 7, "switched_from": 0, "switched_to": 0}, {"slug": "ratatui", "name": "Ratatui", "co": 4, "switched_from": 0, "switched_to": 1}, {"slug": "claude-code", "name": "Claude Code", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "textual", "name": "Textual", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "ghostty", "name": "Ghostty", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "opentui", "name": "OpenTUI", "co": 1, "switched_from": 0, "switched_to": 1}], "makers": [{"id": 800579600, "item_id": 50036225, "url": "https://news.ycombinator.com/item?id=50036225", "by": "neomantra", "date": "2026-10-10", "version": null, "stance": "recommend", "quote": "Since BubbleTea v2.1 and libghostty both adopted OSC 7501", "excerpt": "Since BubbleTea v2.1 and libghostty both adopted OSC 7501, we sync'd our ghostty-web fork [1] to sync with that and smuggled the UX through the `msg`. Here's demo of it enabled in booba, which is our Golang TUI remoting tool: https://nimblemarkets.github.io/go-booba/demos/actions/ The browser UX comes as a JSON spec over OSC 7501, that spec generated from the BubbleTea Help model. [1] an overhaul of the original whic", "context": "", "use_case": "", "switched_from": "", "story": "A Terminal Protocol for Program Status (OSC 7501)"}], "threads": [{"url": "https://news.ycombinator.com/item?id=47268662", "title": "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now", "mentions": 8}, {"url": "https://news.ycombinator.com/item?id=49384210", "title": "Stop Making TUIs", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48365904", "title": "strace-ui, Bonsai_term, and the TUI renaissance", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47005509", "title": "Building a TUI is easy now", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46798402", "title": "Mousefood \u2013 Build embedded terminal UIs for microcontrollers", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46731432", "title": "Show HN: Whosthere: A LAN discovery tool with a modern TUI, written in Go", "mentions": 2}], "sentiment_by_month": {"2025-11": {"warn": 2}, "2025-12": {"recommend": 3, "neutral": 1}, "2026-01": {"neutral": 1, "warn": 3, "compare": 1, "recommend": 2}, "2026-02": {"neutral": 4, "recommend": 1}, "2026-03": {"neutral": 2, "recommend": 5, "warn": 2, "compare": 1}, "2026-04": {}, "2026-05": {"recommend": 1}, "2026-06": {"recommend": 2}, "2026-07": {}, "2026-08": {"neutral": 1, "recommend": 2}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 804364996, "item_id": 50272812, "url": "https://news.ycombinator.com/item?id=50272812", "by": "neomantra", "date": "2026-10-28", "version": null, "stance": "neutral", "quote": "Just took our TinyBubbles framework (TinyGo + BubbleTea)", "excerpt": "I hadn't thought about this angle -- inspiring as expected from Ghostty hacking! Just took our TinyBubbles framework (TinyGo + BubbleTea) and added TinyGhostty [1]. We had all the parts in place. The web demos use Booba [2] and our ghostty-web fork, so that's libghostty embedding another libghostty. The source cells are composited into our TinyHAL device abstraction. The UX is presented using \"Booba Actions\" which ab", "context": "", "use_case": "TUI framework", "switched_from": "", "story": "Ghostty 1.4"}, {"id": 790209233, "item_id": 49388077, "url": "https://news.ycombinator.com/item?id=49388077", "by": "blooalien", "date": "2026-08-21", "version": null, "stance": "recommend", "quote": "Or for Go coders there's BubbleTea", "excerpt": "Or for those coding in Python there's Textual: https://textual.textualize.io/ Or for Go coders there's BubbleTea: https://github.com/charmbracelet/bubbletea Why? Because TUI!", "context": "", "use_case": "Go TUI apps", "switched_from": "", "story": "Stop Making TUIs"}, {"id": 790161376, "item_id": 49385086, "url": "https://news.ycombinator.com/item?id=49385086", "by": "8cvor6j844qw_d6", "date": "2026-08-21", "version": null, "stance": "recommend", "quote": "Bubble Tea [1] is my favorite for one-off throwaway stuff in terminal.", "excerpt": "Bubble Tea [1] is my favorite for one-off throwaway stuff in terminal. Wish [2] to make it available over SSH. [1] https://github.com/charmbracelet/bubbletea [2] https://github.com/charmbracelet/wish", "context": "", "use_case": "Terminal UIs", "switched_from": "", "story": "Stop Making TUIs"}, {"id": 786411635, "item_id": 49150727, "url": "https://news.ycombinator.com/item?id=49150727", "by": "jeninh", "date": "2026-08-02", "version": null, "stance": "neutral", "quote": "My code uses wish, bubbletea and lipgloss from Charm.", "excerpt": "I'm going to be so honest, I don't have much advice for you. I'm a teenager who's part of Hack Club (https://hackclub.com) who made this entirely for fun. I was inspired by @zachlatta's SSHtron (https://github.com/zachlatta/sshtron) and wanted to make an SSH game. I loved how easy it was for him to promote it too, he made a HN post with title \"ssh sshtron.zachlatta.com\" because it gets people to try out the actual ga", "context": "", "use_case": "Terminal UI framework", "switched_from": "", "story": "Show HN: ssh ssh.place"}, {"id": 776491137, "item_id": 48530696, "url": "https://news.ycombinator.com/item?id=48530696", "by": "philajan", "date": "2026-06-14", "version": null, "stance": "recommend", "quote": "I\u2019ve been having a lot of fun with it compared to the React SPAs", "excerpt": "I\u2019ve been considering new features on Book Bounce for my use cases. I\u2019m pretty hesitant to start anything new on it while I\u2019m waiting for approval for Google Play\u2026 https://bedtimebookhelper.com/ In the mean time, I\u2019m working on a recipe application I\u2019ve had countless false starts on. It\u2019s centered around iterations and version on recipes, tracking changes to ingredients and directions to build new a new recipe from a", "context": "", "use_case": "Terminal UI", "switched_from": "", "story": "Ask HN: What are you working on? (June 2026)"}, {"id": 773925920, "item_id": 48370370, "url": "https://news.ycombinator.com/item?id=48370370", "by": "neomantra", "date": "2026-06-02", "version": null, "stance": "recommend", "quote": "I've been pushing on BubbleTea Kitty and Ghostty quite a bit to hybridize this.", "excerpt": "I really enjoy using Golang to make TUIs and the Charm ecosystem. > But I think we will swing back to using GUIs I've been pushing on BubbleTea Kitty and Ghostty quite a bit to hybridize this. The TUI / GUI distinction to me is about task centrism and delivery. There's an appropriate surface and workflow for every task; beyond TUI/GUI sometime it needs to be a VR headset or an immersive room or a literal sandbox. A d", "context": "", "use_case": "TUI framework", "switched_from": "", "story": "strace-ui, Bonsai_term, and the TUI renaissance"}, {"id": 773891570, "item_id": 48368223, "url": "https://news.ycombinator.com/item?id=48368223", "by": "dogas", "date": "2026-06-02", "version": null, "stance": "recommend", "quote": "TUI libraries like Lipgloss and Bubbletea really allow users to build a rich experience nowadays.", "excerpt": "I've been making a modern Slack terminal client (https://github.com/gammons/slk) and it's been a joy to use daily. There are a few things that IMO have unlocked a fantastic TUI experience: - TUI libraries like Lipgloss and Bubbletea really allow users to build a rich experience nowadays. Really anything from https://charm.land is well-polished and a joy to use. - Kitty image format works great and allows for Avatars,", "context": "", "use_case": "", "switched_from": "", "story": "strace-ui, Bonsai_term, and the TUI renaissance"}, {"id": 769479648, "item_id": 48092478, "url": "https://news.ycombinator.com/item?id=48092478", "by": "neomantra", "date": "2026-05-11", "version": null, "stance": "recommend", "quote": "I use Claude and the rest with BubbleTea all the time.", "excerpt": "While I felt this in 2025, I do not feel this in 2026. I use Claude and the rest with BubbleTea all the time. But I will say... you have to know Golang. You have to have at least tried to make a BubbleTea app yourself and try to understand ELM architecture. You have to look at the code and increment with it. It makes total sense for OP to switch to Rust and Ratatui if they don't know Golang well. But I don't think it", "context": "", "use_case": "building TUIs", "switched_from": "", "story": "I'm going back to writing code by hand"}, {"id": 769018112, "item_id": 48063632, "url": "https://news.ycombinator.com/item?id=48063632", "by": "shantnutiwari", "date": "2026-05-08", "version": null, "stance": "recommend", "quote": "I love bubble tea (And their related libs), they are a great reason to use Go for TUI", "excerpt": "Why is this flagged? Because of the swearing? Cause there have been previous posts with swearing in them? Or do people in general hate Go so much? I know the OP said dont use external libraries, but I love bubble tea (And their related libs), they are a great reason to use Go for TUI that said, I only use Go for hobby projects, I dont know how good it feels if you have to use it for work 40 hours a week", "context": "uses Go for hobby projects", "use_case": "building terminal UIs", "switched_from": "", "story": "Just Fucking Use Go"}, {"id": 768041458, "item_id": 48002591, "url": "https://news.ycombinator.com/item?id=48002591", "by": "neomantra", "date": "2026-05-03", "version": null, "stance": "neutral", "quote": "developer tooling to combine BubbleTea and Ghostty in WASM deployments", "excerpt": "They've been back and we're all taking them further than ever before! For the past few weeks I've been wrapping up Booba [1], which is developer tooling to combine BubbleTea and Ghostty in WASM deployments (using ghostty-web). It provides for some interesting deployment patterns both locally, over network, and embedded in a web page. It's intended to be very easy to adopt; at the simplest, one just changes `tea.NewPr", "context": "", "use_case": "TUI framework", "switched_from": "", "story": "Why TUIs Are Back"}, {"id": 766487712, "item_id": 47905482, "url": "https://news.ycombinator.com/item?id=47905482", "by": "neomantra", "date": "2026-04-25", "version": null, "stance": "recommend", "quote": "I'm adding a BubbleTea Picture widget to ntcharts.", "excerpt": "Just yesterday I was looking for a free-as-in-freedom image to embed in my repo, and this gem popped up again! I'm adding a BubbleTea Picture widget to ntcharts. So the example is a (retro art of (retro art redone on retro tech)) done on (a redo of retro tech) ... I've added it, but it's still on a feature branch : https://github.com/NimbleMarkets/ntcharts/tree/picture/examples#picture", "context": "", "use_case": "Terminal UI framework", "switched_from": "", "story": "1-Bit Hokusai's \"The Great Wave\""}, {"id": 760071920, "item_id": 47504495, "url": "https://news.ycombinator.com/item?id=47504495", "by": "shimman", "date": "2026-03-24", "version": null, "stance": "warn", "quote": "I often have a hard time understanding how to use charmbracelet effectively, for minor TUI things I prefer tview more.", "excerpt": "This is cool! I wanted to make a basic CRUD form to update meta data and was considering go, lots of neat libraries to take a look at. Interesting that it uses charmbracelet libraries to create the terminal components. I often have a hard time understanding how to use charmbracelet effectively, for minor TUI things I prefer tview more. Anyone know any good tutorials/blog posts about building something complicated wit", "context": "", "use_case": "building TUIs", "switched_from": "", "story": "A retro terminal music player inspired by Winamp"}, {"id": 758475586, "item_id": 47404724, "url": "https://news.ycombinator.com/item?id=47404724", "by": "parsak", "date": "2026-03-16", "version": null, "stance": "compare", "quote": "Curious what made you go with Bubble Tea over a desktop app approach?", "excerpt": "Nice work! The at-a-glance status monitoring is a great idea - the \"what are all my agents doing right now\" problem is real once you're running 4+ sessions. I'm working on something in the same space called Pane (https://runpane.com) but took a slightly different approach - instead of a TUI layer, it's a standalone desktop app where each \"pane\" is one feature branch with its own worktree + N terminals. The worktree c", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Lazyagent \u2013 One terminal UI for all your coding agents"}, {"id": 756368528, "item_id": 47273033, "url": "https://news.ycombinator.com/item?id=47273033", "by": "roryirvine", "date": "2026-03-06", "version": null, "stance": "recommend", "quote": "Bubbletea really is a great TUI", "excerpt": "Yep, pretty much. This website is a bit too hyperactive for my taste, and I can't imagine how they hope to make enough money from it to satisfy the VCs. But Bubbletea really is a great TUI and it's properly open source - so I'm happy to enjoy it while it lasts. I'm with you on the Turbo Vision love, though. Honestly, it felt we were getting to such a good place in the early/mid 90s with beautiful, well-thought-out TU", "context": "", "use_case": "", "switched_from": "", "story": "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now"}, {"id": 756354256, "item_id": 47272141, "url": "https://news.ycombinator.com/item?id=47272141", "by": "Chmouel", "date": "2026-03-05", "version": null, "stance": "recommend", "quote": "i migrated my tui (lazyworktree) to it and it's been absolute pleasure", "excerpt": "i migrated my tui (lazyworktree) to it and it's been absolute pleasure, they finally fixed the isssue where row could not be \"lipglossed\"/colored as before (like on screenshots here https://chmouel.github.io/lazyworktree/#screenshots)", "context": "", "use_case": "Building terminal UI apps", "switched_from": "", "story": "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now"}, {"id": 756336752, "item_id": 47271047, "url": "https://news.ycombinator.com/item?id=47271047", "by": "1-more", "date": "2026-03-05", "version": null, "stance": "neutral", "quote": "Bubble tea is a library for handling TUIs using the Elm architecture", "excerpt": "Bubble tea is a library for handling TUIs using the Elm architecture, often abbreviated TEA: a model type, a message type, an update function that refreshes the model and emits side effects, and a view function that renders the UI given the model state. The article link goes to the releases page, but the top level README of the project has much better info. For a related library in Rust check out Iced: https://book.i", "context": "", "use_case": "building terminal UIs", "switched_from": "", "story": "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now"}, {"id": 756328672, "item_id": 47270542, "url": "https://news.ycombinator.com/item?id=47270542", "by": "TheDong", "date": "2026-03-05", "version": null, "stance": "warn", "quote": "Yup, very easy to just look at the github url and guess.", "excerpt": "Go's package management is just so absolutely easy to use, and this package uses it flawlessly. The github url is https://github.com/charmbracelet/bubbletea, so you can easily guess how to import it: import \"charm.land/bubbletea/v2\" Yup, very easy to just look at the github url and guess. And now that you've imported it, you can guess how to use it, right? Yup, start with \"tea.Init()\". Wait, where'd the \"tea\" come fr", "context": "", "use_case": "TUI framework in Go", "switched_from": "", "story": "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now"}, {"id": 756327504, "item_id": 47270469, "url": "https://news.ycombinator.com/item?id=47270469", "by": "eieio", "date": "2026-03-05", "version": null, "stance": "recommend", "quote": "bubbletea and lipgloss (and wish, if you want SSH stuff) are really excellent tools", "excerpt": "I'm so excited about this! And I expect the speed/bandwidth improvements in the new renderer to be very significant. I spent a while hacking on my own fork of the Bubbletea renderer over the last few months in order to run a game over SSH[1]. It was a ton of work for a niche, simple game (snake) but it dropped bandwidth usage by a factor of 10. The new renderer has to be more general so it might not quite hit that fo", "context": "", "use_case": "Building terminal UIs", "switched_from": "", "story": "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now"}, {"id": 756313744, "item_id": 47269609, "url": "https://news.ycombinator.com/item?id=47269609", "by": "abrinz", "date": "2026-03-05", "version": null, "stance": "recommend", "quote": "it has been nice to work with", "excerpt": "I've been building a coding agent (https://github.com/abrinsmead/cogent) on the previous version of bubble tea for the past few weeks and it has been nice to work with (though honestly I'm not touching much code). The biggest blocker I have is that I haven't been able to simultaneously support both mouse wheel scrolling and the ability to select text for copy and paste. I understand that this is a limitation of prett", "context": "", "use_case": "terminal UI framework", "switched_from": "", "story": "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now"}, {"id": 756311184, "item_id": 47269449, "url": "https://news.ycombinator.com/item?id=47269449", "by": "yegle", "date": "2026-03-05", "version": null, "stance": "recommend", "quote": "has a couple screencast worth checking out", "excerpt": "https://github.com/charmbracelet/bubbletea has a couple screencast worth checking out. Not sure if it's a good comparison (never used both in depth) but think of this a Go version of all the goodies from https://textual.textualize.io/", "context": "", "use_case": "Building terminal UIs in Go", "switched_from": "", "story": "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now"}, {"id": 756306160, "item_id": 47269135, "url": "https://news.ycombinator.com/item?id=47269135", "by": "joshka", "date": "2026-03-05", "version": null, "stance": "neutral", "quote": "https://github.com/charmbracelet/bubbletea", "excerpt": "Go libraries for making terminal UIs - https://github.com/charmbracelet/bubbletea - https://github.com/charmbracelet/bubbles - https://github.com/charmbracelet/lipgloss", "context": "", "use_case": "", "switched_from": "", "story": "The next generations of Bubble Tea, Lip Gloss, and Bubbles are available now"}, {"id": 754219024, "item_id": 47138689, "url": "https://news.ycombinator.com/item?id=47138689", "by": "pekim", "date": "2026-02-24", "version": null, "stance": "neutral", "quote": "I noticed that Bubble Tea v2 [0] has been released. It looks like a great improvement all round over 1.x.", "excerpt": "I noticed that Bubble Tea v2 [0] has been released. It looks like a great improvement all round over 1.x. The companion libraries lipgloss[1] and bubbles[2] have also had v2 releases. [0] https://github.com/charmbracelet/bubbletea/releases/tag/v2.0.0 [1] https://github.com/charmbracelet/lipgloss/releases/tag/v2.0.0 [2] https://github.com/charmbracelet/bubbles/releases/tag/v2.0.0", "context": "", "use_case": "TUI framework", "switched_from": "", "story": "Release v2.0.0 \u00b7 Charmbracelet/Bubbletea"}, {"id": 753637349, "item_id": 47102334, "url": "https://news.ycombinator.com/item?id=47102334", "by": "mhher", "date": "2026-02-21", "version": null, "stance": "neutral", "quote": "single-binary Go/BubbleTea TUI", "excerpt": "Most AI coding assistants are fundamentally broken. Tools like Claude Code and OpenCode eagerly load 10k+ tokens of monolithic system prompts into a single context window before you even type. This guarantees context amnesia and destroys local inference speeds. I built late to fix this. It\u2019s a single-binary Go/BubbleTea TUI built around a subagent orchestrator pattern. The main prompt is strictly ~100 lines. The orch", "context": "", "use_case": "Terminal UI framework", "switched_from": "", "story": "Show HN: Late \u2013 A subagent orchestrator TUI for local LLMs (Go/Linux)"}, {"id": 752198816, "item_id": 47012426, "url": "https://news.ycombinator.com/item?id=47012426", "by": "neomantra", "date": "2026-02-13", "version": null, "stance": "recommend", "quote": "the great toolsets for their respective languages BubbleTea / Textualize / Ratatui", "excerpt": "Building a TUI was easy before, especially with the great toolsets for their respective languages BubbleTea / Textualize / Ratatui. And thanks to those frameworks, LLMs can manifest useful tools. Similar to WebApps, it's only since the November'25 renaissance that I felt I could use them to create TUIs. Once I had that revelation, I started going into my backlog and using it. I maintain a TUI Charting library, NTChar", "context": "", "use_case": "", "switched_from": "", "story": "Building a TUI is easy now"}, {"id": 752132320, "item_id": 47008270, "url": "https://news.ycombinator.com/item?id=47008270", "by": "christophilus", "date": "2026-02-13", "version": null, "stance": "recommend", "quote": "Bubbletea would be my tool of choice", "excerpt": "There are plenty of great tools available these days. Bubbletea would be my tool of choice, I think: https://github.com/charmbracelet/bubbletea", "context": "", "use_case": "TUI framework", "switched_from": "", "story": "Building a TUI is easy now"}, {"id": 749904481, "item_id": 46869030, "url": "https://news.ycombinator.com/item?id=46869030", "by": "fragmede", "date": "2026-02-03", "version": null, "stance": "neutral", "quote": "I'm not totally sure where I land on using libraries (bubble tea) as they do bloat the program", "excerpt": "I'd love to! So I used AI to help me write this, I gotta be honest, but I have this TUI I use over SSH to access HN. I call it Nitpick! It's GPL, at https://github.com/fragmede/nitpick It uses the HN API and algolia and golang with the bubble tea libraries. It even supports logging in and commenting and reply notification! I'm not totally sure where I land on using libraries (bubble tea) as they do bloat the program ", "context": "", "use_case": "TUI library", "switched_from": "", "story": "Ownership of open source flashcard app Anki transferred to for-profit AnkiHub"}, {"id": 749638836, "item_id": 46852427, "url": "https://news.ycombinator.com/item?id=46852427", "by": "ginkida", "date": "2026-02-01", "version": null, "stance": "neutral", "quote": "Built entirely in Go with a TUI (Bubble Tea)", "excerpt": "I built Gokin after hitting Claude Code's usage limits and realizing I didn't want to trust third-party CLIs (especially from Chinese AI companies) with direct access to my codebase. It's a Go-based CLI assistant designed to handle the heavy lifting of initial development while keeping sensitive code local. Key differentiators: \u2022 Cost: GLM-4 backend runs ~$3/month vs Claude Code's ~$100/month. Gemini Flash has a gene", "context": "", "use_case": "", "switched_from": "", "story": "Gokin: A security-first AI coding assistant built as a companion to Claude Code"}, {"id": 748889569, "item_id": 46805598, "url": "https://news.ycombinator.com/item?id=46805598", "by": "joshka", "date": "2026-01-28", "version": null, "stance": "recommend", "quote": "We love both Bubbletea and Textual", "excerpt": "Ratatui dev here. We love both Bubbletea and Textual (though I'm personally not a huge fan of either Go or Python). They're inspirations for us to make good looking stuff.", "context": "", "use_case": "", "switched_from": "", "story": "Mousefood \u2013 Build embedded terminal UIs for microcontrollers"}, {"id": 748798400, "item_id": 46799900, "url": "https://news.ycombinator.com/item?id=46799900", "by": "GeertJohan", "date": "2026-01-28", "version": null, "stance": "warn", "quote": "I used bubbletea for a while but quit it because of inconsistencies in the design.", "excerpt": "I used bubbletea for a while but quit it because of inconsistencies in the design. Went to ratatui and never looked back. Go and Bubbletea are nice, but rust is much more suited for building tuis.", "context": "", "use_case": "", "switched_from": "Bubbletea", "story": "Mousefood \u2013 Build embedded terminal UIs for microcontrollers"}, {"id": 747816960, "item_id": 46738560, "url": "https://news.ycombinator.com/item?id=46738560", "by": "awesome_dude", "date": "2026-01-23", "version": null, "stance": "warn", "quote": "Bubbletea has the unfortunate side effect of enforcing style/architecture on a project", "excerpt": "Bubbletea has the unfortunate side effect of enforcing style/architecture on a project Much like cobra (or was it viper) did for CLI switches This is cool if that's what you like, but if you have your own thinking on layout/architecture then you're in for a world of pain. I use rivo/tview in my projects, and like it, but it's not without its \"quirks\"", "context": "", "use_case": "Go TUI framework", "switched_from": "", "story": "Show HN: Whosthere: A LAN discovery tool with a modern TUI, written in Go"}, {"id": 747757536, "item_id": 46734846, "url": "https://news.ycombinator.com/item?id=46734846", "by": "jen20", "date": "2026-01-23", "version": null, "stance": "recommend", "quote": "Bubble Tea https://github.com/charmbracelet/bubbletea is behind many of the better Go TUIs", "excerpt": "The standard library doesn't have much for this, but Bubble Tea https://github.com/charmbracelet/bubbletea is behind many of the better Go TUIs. This one is using https://github.com/rivo/tview.", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Whosthere: A LAN discovery tool with a modern TUI, written in Go"}, {"id": 747233493, "item_id": 46702093, "url": "https://news.ycombinator.com/item?id=46702093", "by": "Kerrick", "date": "2026-01-20", "version": null, "stance": "compare", "quote": "I may be able to rival Charm's BubbleTea and Bubbles by summertime.", "excerpt": "Yes. Over the last month, I've made heavy use of agentic coding (a bit of Junie and Amp, but mostly Antigravity) to ship https://www.ratatui-ruby.dev from scratch. Not just the website... the entire thing. The main library (rubygem) has 3,662 code lines and 9,199 comment lines of production Ruby and 4,933 code lines and 710 comment lines of Rust. There are a further 6,986 code lines and 2,304 comment lines of example", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Do you have any evidence that agentic coding works?"}, {"id": 747227842, "item_id": 46701740, "url": "https://news.ycombinator.com/item?id=46701740", "by": "esafak", "date": "2026-01-20", "version": null, "stance": "warn", "quote": "go+bubbletea based TUI which had performance and capability issues", "excerpt": "Opencode uses SolidJS: We moved from the go+bubbletea based TUI which had performance and capability issues to an in-house framework (OpenTUI) written in zig+solidjs https://opencode.ai/docs/1-0/", "context": "", "use_case": "TUI framework", "switched_from": "", "story": "Claude Chill: Fix Claude Code's Flickering in Terminal"}, {"id": 744199730, "item_id": 46512483, "url": "https://news.ycombinator.com/item?id=46512483", "by": "int32max", "date": "2026-01-06", "version": null, "stance": "neutral", "quote": "uses Bubble Tea for the TUI", "excerpt": "Hey HN, I built this because I was juggling too many Claude Code sessions across different branches and kept losing track. Claude Quick gives you a single dashboard to manage devcontainers, each with its own Claude Code agent. The killer feature for me is git worktree integration spin up a new branch in an isolated container, have Claude work on it, and switch between them without context pollution. It also handles c", "context": "", "use_case": "", "switched_from": "", "story": "Claude Quick \u2013 TUI orchestrating multiple Claude Code agents in devcontainers"}, {"id": 742951696, "item_id": 46434481, "url": "https://news.ycombinator.com/item?id=46434481", "by": "eterps", "date": "2025-12-30", "version": null, "stance": "neutral", "quote": "While I appreciate Charm's aesthetics, I worry it leans too heavily on GUI paradigms", "excerpt": "What are popular charm/bubbletea based TUIs? I use TUIs often, but for some reason none of them are based on charm/bubbletea? Might be coincidence though. While I appreciate Charm's aesthetics, I worry it leans too heavily on GUI paradigms, like popovers and buttons, rather than prioritizing the optimal keyboard efficiency used in traditional text-based interfaces.", "context": "uses TUIs often", "use_case": "building TUIs", "switched_from": "", "story": "Charm Ruby \u2013 Glamorous Terminal Libraries for Ruby"}, {"id": 742903376, "item_id": 46431461, "url": "https://news.ycombinator.com/item?id=46431461", "by": "thomascountz", "date": "2025-12-30", "version": null, "stance": "recommend", "quote": "some good libraries/frameworks (e.g. [1][2]) exist to make a modern-looking UX", "excerpt": "It's easier to ship a TUI app cross-platform, the constraints around UI and state are often simpler, and some good libraries/frameworks (e.g. [1][2]) exist to make a modern-looking UX. [1]: https://github.com/charmbracelet/bubbletea [2]: https://github.com/Textualize/textual", "context": "", "use_case": "", "switched_from": "", "story": "The Signature Flicker"}, {"id": 740556304, "item_id": 46284769, "url": "https://news.ycombinator.com/item?id=46284769", "by": "nairadithya", "date": "2025-12-15", "version": null, "stance": "recommend", "quote": "BubbleTea is great", "excerpt": "BubbleTea is great, but it doesn't have support for Kitty Graphics. https://github.com/charmbracelet/bubbletea/issues/163", "context": "", "use_case": "terminal UI framework", "switched_from": "", "story": "Chafa: Terminal Graphics for the 21st Century"}, {"id": 740552688, "item_id": 46284543, "url": "https://news.ycombinator.com/item?id=46284543", "by": "Abishek_Muthian", "date": "2025-12-15", "version": null, "stance": "recommend", "quote": "Have you tried Charmbracelet's bubble tea", "excerpt": "Have you tried Charmbracelet's bubble tea - https://github.com/charmbracelet/bubbletea", "context": "", "use_case": "terminal UI framework", "switched_from": "", "story": "Chafa: Terminal Graphics for the 21st Century"}, {"id": 737538817, "item_id": 46096176, "url": "https://news.ycombinator.com/item?id=46096176", "by": "anthk", "date": "2025-11-30", "version": null, "stance": "warn", "quote": "please, no BubbleTea unless you can be sure it can work on a plain XTerm with 16 colors", "excerpt": "Nomadnet it's really bad; it doesn't properly work with a 80x24 terminal and 16 colors. Also, it uses tons of CPU on legacy machines. It needs some rework. Not everyone it's a hipster with 256 or 32 bit colour terminals, shitty NerdFonts (nonstandards) and big displays. And being written in Python3 makes it dog slow. Being rewritten in Go would get a few performance tweaks, (networking and GC there it's ideal), secur", "context": "", "use_case": "", "switched_from": "", "story": "Meshtastic"}, {"id": 733983569, "item_id": 45873973, "url": "https://news.ycombinator.com/item?id=45873973", "by": "clx75", "date": "2025-11-10", "version": null, "stance": "warn", "quote": "probably due to the use of BubbleTea", "excerpt": "1. Langsam - https://github.com/cellux/langsam This is an AST-walking interpreter for my personal LISP dialect written in C. Once it's ready, I would use it to implement a low-level, statically typed language (Schnell) as a Langsam library. The goal is to gain the ability to JIT-compile Schnell code (sexps of a statically typed language) from Langsam. Once this works, I would rewrite Langsam in Schnell so that it bec", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What Are You Working On? (Nov 2025)"}]}