Somehow this whole ecosystem of tools always gives me a bad vibe, and I can't quite pinpoint why.
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.
Yeah, similar feelings here. I grew up in the BBS world in the 90s, and love a quality TUI experience, but something about this toolset just gives me the ick. I can't keep any of the naming straight; to me it all reads like "combine Chapstick with Cotton Swab inside of Matcha Latte" and my eyes instantly glaze over.
How does this company make money? Is it all just a ZIRP fever dream?
For me its the fact a large chunk of my terminal experience is over limited bandwidth connections to laggy servers with varying feature support. I appreciate the eye candy and what they have achieved but I don't need it, I just want TUIs to work everywhere with low latency.
I agree with you about the general vibe being off putting. I’ve been using their libraries for a while now and have to say they are pretty solid though. The terminal components work reliably, and have less UX bugs than the alternatives.
I would be fine with a chaotic bubbly mess of an outside presentation, if the libraries were more robust and foundational. At the moment the underlying code, when you scratch the surface, have the feel of things thrown together to be replaced at later date.
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?
It has a “gen-AI” vibe to it, and it’s meant to be playful in an alt/psypop sort of way but it is from no culture in particular. It trips up my brain as a bubbly ad from the marketing department of a dystopian corporation.
My favourite library from these folks is gum (https://github.com/charmbracelet/gum). The basic premise is simple - instead of using hardcoded variables or in addition/instead of using CLI flags, call gum and capture the STDOUT to get the selected input value(s). Great for turning a bash script into a TUI, uses these libraries under the hood.
I find the pattern of showing interactive TUI if required options/flags are omitted much nicer than showing an error/help output.
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.
Theory: terminal apps are closing the agent self-improvement loop because agents can use TUIs more easily than web/desktop/mobile.
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.
You know what's even easier for AI agents to use than TUIs? CLIs.
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.
I agree, agents struggle with TUIs. I do think this is easy to fix though (here's an interesting approach: https://github.com/remorses/ghostty-opentui). I think agents will have much better luck with TUIs than browsers.
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 love this design language to death. I know a lot of engineers prefer a no-frills, straight to the point readme (as reflected in these comments), and I get that. But I also don't want to live in a world made out of nothing but boxes.
It feels a bit like visiting Fallingwater and complaining that there are no arrows pointing to the bathroom.
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 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.
man I want to know where their creativity comes from, it's like they've built an entire world with a story... but it's just a (highly regarded) collection of packages
It's intentional design. They picked a strong visual identity early and applied it consistently; the name, the color palette, the retro terminal feel. Every package looks like it belongs to the same family.
Most open source projects never think about this. Charm did from day one.
This has led to a completely overblown design of at least their website. All these cutesy pictures of bubble tea, way too big graphical wrappers, no simple page that is labeled "screenshots", no explanation what "bubbletea" actually is, ... One would think it to be a simple task to mention somewhere that this is a TUI library, where one can see it at the first glance. But apparently not. Instead I am seeing:
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".
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?
Dead Comment
Dead Comment
I find the pattern of showing interactive TUI if required options/flags are omitted much nicer than showing an error/help output.
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
Deleted Comment
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.
Deleted Comment
It feels a bit like visiting Fallingwater and complaining that there are no arrows pointing to the bathroom.
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/
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:
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.
(That said, I do appreciate the artistic flair that went into their website.)