All the demos and videos are applications with lots of stacked pop-ups/modal windows, and things moving around continuously. It all reminds me of what we typically see in computers in TV shows or sci-fi films.
It just looks like a chaotic mess of things, and I get this really strong urge to just stay away from it all.
How does this company make money? Is it all just a ZIRP fever dream?
The general vibe I get is "script kiddies trying too hard".
I bounced off of bubble tea not because of the aesthetics and the unhelpful naming, but because of the programming model: a MVC-architecture cribbed from the Elm language. Why? It completely takes over and rips apart my CLI structure. A CLI is not a DOM or System.Windows.Forms, MVC is scattering around logic and adding indirection layers needlessly.
I am still using huh? and vhs, but their libraries have the feel of looking really good in demo and in the provided examples, but break down quickly when coloring just outside those intended lines.
Maybe it's just pattern recognition misfiring, maybe I'm too just used to workhorse software with websites that look stuck in 1999, but everything coming out of that company (Charmbracelet, Inc. according to website footer) feels like it could suddenly get monetized and enshittified next Tuesday morning.
There is also something weird about this entire aesthetics. They all got this 2020s startup vibe of smooth gradients, bisexual lighting, infantile mascots with cartoon or anime inspired styles, vaguely Asian and vaguely feminine. It feels predatory not in the Big Cat with Bloody Mouth way, but in the Cocomelon sensory videos for ages 1 to 3 way. Am I crazy or does anyone else feel similarly?
I find the pattern of showing interactive TUI if required options/flags are omitted much nicer than showing an error/help output.
Anomaly, which builds OpenCode + OpenTUI), is also doing some really interesting stuff in this space with their custom renderer. And then there's Ink (https://github.com/vadimdemedes/ink) which is what Claude Code uses. I also built Ink Web (https://github.com/cjroth/ink-web) to make Ink work in the browser.
The virality of OpenClaw and Claude Code has me wondering if terminals could actually go mainstream (eg used by non-tech users). More thoughts here: https://www.cjroth.com/blog/2026-03-05-terminals-are-cool-ag...
My experience has been that agents suck at using TUIs, and are good at using CLIs. I would argue that agents are a reason that TUIs might die in favor of CLIs.
The more interesting scenario IMO is having apps that are both TUIs AND CLIs where the agent uses the CLI but can pause and show the user a TUI for complex tasks where the user needs to input something.
I’m very skeptical. Why would you think that? TUIs inherently don’t provide programmatically accessible affordances; if they have any affordances at all, they’re purely visual cues that have unstandardized and of varying quality.
Compare that to the DOM in a browser where you’ve got numerous well-understood mechanisms to convey meaning and usability. Semantic HTML and ARIA roles. These things systematically simplify programmatic consumption.
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/
For a related library in Rust check out Iced: https://book.iced.rs
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 for all applications, but I bet it's not that far off.
I could also see it being an even more significant gain for apps that use a lot of modern colors and styling, since escape sequences there can be very long / heavy weight.
Some of the comments here are annoyed about the website branding but FWIW I think bubbletea and lipgloss (and wish, if you want SSH stuff) are really excellent tools for building "boring" TUIs too.
[1] https://eieio.games/blog/secure-massively-multiplayer-snake/
It feels a bit like visiting Fallingwater and complaining that there are no arrows pointing to the bathroom.
ho hum
Your new coding bestie, now available in your favourite terminal. Your tools, your code, and your workflows, wired into your LLM of choice. This is artificial intelligence made glamourous.
Eh, so something about AI tools? And is "Crush" another tool than "bubbletea"? Why am I seeing something about "Crush" and not about "bubbletea"?Maybe it's simply not my taste. For a TUI library, I expect serious listings of what it can do, what it supports, what it helps you with. Is it a layer on top of ncurses? Features and use-cases over meaningless authority arguments like "Look who uses this too!".
I also see:
We make the command line glamorous.
I don't want my command line to change! I configured it to be just how I like it. What they mean is, that they make command line applications using their library "glamorous" (whatever that means). I have a suggestion for a better slogan: "Your advanced command line widgets library" or "Library for advanced TUI applications".Maybe I am nitpicking too much.
Awesome for one man bands. Or maybe Panic. But my Finance department is never going to approve that purchase.
Honestly amazes me you'd put so much effort into brand and not do copywriting yourself.
(That said, I do appreciate the artistic flair that went into their website.)
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 from? Silly, importing the above package url magically adds "tea" into the current file scope, it's obvious.
- "tea" is an explicit alias that was added to the import statement in the tutorial examples, which you did not reflect in your snippet:
import tea "charm.land/bubbletea/v2"
- The following also just works as you expected, but directly assumed wouldn't work: import github.com/charmbracelet/bubbletea
The only surprise here is that the repository authors decided to change the name of the module between v1 and v2 of the package. The git branch tagged v2 contains a module named 'charm.land/bubbletea', earlier v1 branches are named 'github.com/charmbracelet/bubbletea'. That's on them for breaking convention and surprising users, the go toolchain does not factor into, this beyond supporting versioning by naming convention.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 pretty much all terminals, but we have seen it solved in Claude Code. Maybe this new version has a solution.
I like that terminals have less surface area that browsers
- https://github.com/charmbracelet/bubbletea
I've been using tcell, it's been fine... This just looks like fancy TUI without real benefits but wowing the user at first run...
There's something about the UX here, how we're interfacing in an abstract way directly with the computer, now with agents. I hope we can get some interesting design study insights over the coming months and years.
I don't see a UI replacing the experience we get with TUIs. Also, UIs seem very clunky, in relation to TUIs performance.
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 TUIs becoming the norm.
In retrospect, the universality of basic curses/ncurses on Unix/Linux (together with the death of DOS) was a real a step back - trapping us in a local pessimum for far too long. TUIs languished, and most of us moved to a mix of CLIs and GUIs.
(There's an MIT-licensed port of Turbo Vision available now at https://github.com/magiblot/tvision - pity that it's a couple of decades too late!)
https://techcrunch.com/2023/11/02/charm-offensive-googles-gr...
> Charm had previously raised around $4 million in funding spread across various angel and seed rounds, and now the company is adding a further $6 million to its coffers, with Google’s VC fund Gradient Ventures leading the charge, supported by Cavalry Ventures, Fuel Capital, Firestreak, and a slew of angel backers.
https://charm.land/blog/the-next-generation/
There used to be development of enterprise and cloud offerings, but that seems to have disappeared.
Hopefully they keep the "hobby project that people decided to throw money at" vibe and don't start chasing business incentives.
Why is it so hard to figure out what any of this does? I just want some screenshots