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.
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.
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.
Yeah. nothing quite like ANSI code dumps at 9600 bps.
I did a sudo apt upgrade at 600 baud this morning.
Life is weird.
It reminds me of "web3" marketing. My hackles are immediately raised.
Bubbletea is actually pretty cool. I also agree that the website doesn't look so good.
It all reminds me of what we typically see in computers in TV shows or sci-fi films.
The general vibe I get is "script kiddies trying too hard".
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.
One look at this website tells me there are some people who would be in prison if their hard drives were inspected...
Please, a simple web page that tells me what this does, and why I should use it. Links to github have never done this for me.
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/
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.
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.
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.
Not to worry, ChatGPT will be happy to oblige and make every other repo look as unique and special as this one.
Go's package management is just so absolutely easy to use, and this package uses it flawlessly.
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.
I just want a terminal that can also run fully graphical interfaces and that scroll as more lines are typed or a later command outputs text! Next level up from sixels or escape sequences.
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".
Maybe I am nitpicking too much.
In a world of boring corporate "rounded corners are less aggressive" websites and app designs, I really appreciate something that is more out there. Crush is their "opencode"-ish app and is my go to when not using CC or CopilotCLI directly. Sure, it everyone's cup of (bubble) tea but that is kind of the great part, it doesn't have to nor does try to be.
From my interactions with younger engineers, this is what "they're looking for". I think we're just used to a different format, so our expectations don't match the reality. Our instincts are different, maybe? Not sure.
No, it still sucks, it’s genAI and the author uses twitter. Younger engineers veer the heck away from stuff that “looks” of a culture but isn’t.
They've been doing this since well before genAI
I think it's both completely valid to feel this way, and also valid for them to have fun with their design and aesthetic. If you already know what charm does, it makes perfect sense and is cool to see.
We make the command line glamorous.
Awesome for one man bands. Or maybe Panic. But my Finance department is never going to approve that purchase.
[deleted]
You aren't. When your content sounds like slop you drive people away.
Honestly amazes me you'd put so much effort into brand and not do copywriting yourself.
[deleted]
We sure are putting a lot of investment into 1970s-era user interfaces!
(That said, I do appreciate the artistic flair that went into their website.)
As long as all these next-gen terminal features don't make implementing a terminal from scratch as hard as implementing a browser.
I like that terminals have less surface area that browsers
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 pretty much all terminals, but we have seen it solved in Claude Code. Maybe this new version has a solution.
Surprised huh v2 isn't included in this and there's no mention of it in the release announcement at all. Quite a few of my apps mix bubbletea/bubbles and huh in different parts of the app, and while they're typically separate and technically could coexist no problem, it would feel a bit weird. Plus huh is advertised as "can be integrated into a Bubble Tea application"; I'm not using it personally but it's surely used by some users. Anyone from charmbracelet here could comment on the situation?
Maybe it's a generational thing, but if I proposed to my coworkers in 2003 that we should build an app(lication!) with "Go, bubble tea and huh" - I would be laughed out of the room and onto the unemployment line.
Would you have been laughed out of the room if you proposed to use a vcs called git?
It's cute.
My main complaint is I was expecting some real next-gen bubble tea.
We will have to keep waiting. The science isn't there yet.
> the terminal is the most powerful way to interface with the operating system.
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.
I don't understand what this is but I kinda want it. Is it kinda cool-retro-term + starship?
But why when Claude can write you a perfectly laggy tui in react?
It may be a coincidence but there has been an increase in thinly veiled humor in HN comments.
Thanks finally some clarity.
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...
I don't know what I would build with these but I'll think of something because they're so awesome.
Maybe I’m getting old but I couldn’t tell if this was a joke or not. I think they should explain a little more like what these products actually do?
Stoked to see this! I’ve been using bubble tea and all its accoutrements on various little hobby projects for the past few years. Love the ergonomics and aesthetics and can’t wait to try out v2!
how exactly does the Charm corporation make money?
> 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.
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.
Is this like the new Turbo Vision from Borland? That’s something I’d love to have!
No popcorn? This needs popcorn
It took me too long to understand that this is just a TUI library for Go
Thank you, I was excited for new drinks and flavors and this saved me the read.
I thought there had been a major breakthrough in tapioca-tech
Thank you. I kept looking at the page trying to figure out WTF it even was, and was unsuccessful. Damn, I wish I had a cane so I could shake it at these devs.
It's crazy how much this UI design is like future retro 2008 design.
[deleted]
Branding aside, if I have to use -50% magnification to get to a readable text size, your text is far, far too large. Why is this website yelling at me
Why is it so hard to figure out what any of this does? I just want some screenshots
Is is just me or this is the first website with a sensible text size (relative to the lenght of the content) and every other (legacy) sites on the internet has way too small text?
As someone that zooms into websites including HN by default, I for one appreciate the text size :)
God I hate this industry
[dead]
“lipgloss”?
Shameless related plug for my recent project Trolley, which lets you package a TUI as a desktop app, for your non-technical users or otherwise:
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.
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...
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.
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.
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.
Yeah. nothing quite like ANSI code dumps at 9600 bps.
I did a sudo apt upgrade at 600 baud this morning.
Life is weird.
It reminds me of "web3" marketing. My hackles are immediately raised.
Bubbletea is actually pretty cool. I also agree that the website doesn't look so good.
It all reminds me of what we typically see in computers in TV shows or sci-fi films.
The general vibe I get is "script kiddies trying too hard".
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.
One look at this website tells me there are some people who would be in prison if their hard drives were inspected...
Please, a simple web page that tells me what this does, and why I should use it. Links to github have never done this for me.
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/
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.iced.rs
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.
[1] https://eieio.games/blog/secure-massively-multiplayer-snake/
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.
Not to worry, ChatGPT will be happy to oblige and make every other repo look as unique and special as this one.
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:
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.
I just want a terminal that can also run fully graphical interfaces and that scroll as more lines are typed or a later command outputs text! Next level up from sixels or escape sequences.
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:
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:
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.
In a world of boring corporate "rounded corners are less aggressive" websites and app designs, I really appreciate something that is more out there. Crush is their "opencode"-ish app and is my go to when not using CC or CopilotCLI directly. Sure, it everyone's cup of (bubble) tea but that is kind of the great part, it doesn't have to nor does try to be.
From my interactions with younger engineers, this is what "they're looking for". I think we're just used to a different format, so our expectations don't match the reality. Our instincts are different, maybe? Not sure.
No, it still sucks, it’s genAI and the author uses twitter. Younger engineers veer the heck away from stuff that “looks” of a culture but isn’t.
They've been doing this since well before genAI
I think it's both completely valid to feel this way, and also valid for them to have fun with their design and aesthetic. If you already know what charm does, it makes perfect sense and is cool to see.
We make the command line glamorous.
Awesome for one man bands. Or maybe Panic. But my Finance department is never going to approve that purchase.
You aren't. When your content sounds like slop you drive people away.
Honestly amazes me you'd put so much effort into brand and not do copywriting yourself.
We sure are putting a lot of investment into 1970s-era user interfaces!
(That said, I do appreciate the artistic flair that went into their website.)
As long as all these next-gen terminal features don't make implementing a terminal from scratch as hard as implementing a browser.
I like that terminals have less surface area that browsers
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 pretty much all terminals, but we have seen it solved in Claude Code. Maybe this new version has a solution.
Surprised huh v2 isn't included in this and there's no mention of it in the release announcement at all. Quite a few of my apps mix bubbletea/bubbles and huh in different parts of the app, and while they're typically separate and technically could coexist no problem, it would feel a bit weird. Plus huh is advertised as "can be integrated into a Bubble Tea application"; I'm not using it personally but it's surely used by some users. Anyone from charmbracelet here could comment on the situation?
Maybe it's a generational thing, but if I proposed to my coworkers in 2003 that we should build an app(lication!) with "Go, bubble tea and huh" - I would be laughed out of the room and onto the unemployment line.
Would you have been laughed out of the room if you proposed to use a vcs called git?
It's cute. My main complaint is I was expecting some real next-gen bubble tea.
We will have to keep waiting. The science isn't there yet.
> the terminal is the most powerful way to interface with the operating system.
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.
I don't understand what this is but I kinda want it. Is it kinda cool-retro-term + starship?
Go libraries for making terminal UIs
- https://github.com/charmbracelet/bubbletea
- https://github.com/charmbracelet/bubbles
- https://github.com/charmbracelet/lipgloss
But why when Claude can write you a perfectly laggy tui in react?
It may be a coincidence but there has been an increase in thinly veiled humor in HN comments.
Thanks finally some clarity.
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...
I don't know what I would build with these but I'll think of something because they're so awesome.
Maybe I’m getting old but I couldn’t tell if this was a joke or not. I think they should explain a little more like what these products actually do?
Stoked to see this! I’ve been using bubble tea and all its accoutrements on various little hobby projects for the past few years. Love the ergonomics and aesthetics and can’t wait to try out v2!
how exactly does the Charm corporation make money?
Hm good question. Seems like VC investment money?
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.
Is this like the new Turbo Vision from Borland? That’s something I’d love to have!
No popcorn? This needs popcorn
It took me too long to understand that this is just a TUI library for Go
Thank you, I was excited for new drinks and flavors and this saved me the read.
I thought there had been a major breakthrough in tapioca-tech
Thank you. I kept looking at the page trying to figure out WTF it even was, and was unsuccessful. Damn, I wish I had a cane so I could shake it at these devs.
It's crazy how much this UI design is like future retro 2008 design.
Branding aside, if I have to use -50% magnification to get to a readable text size, your text is far, far too large. Why is this website yelling at me
Why is it so hard to figure out what any of this does? I just want some screenshots
Is is just me or this is the first website with a sensible text size (relative to the lenght of the content) and every other (legacy) sites on the internet has way too small text?
As someone that zooms into websites including HN by default, I for one appreciate the text size :)
God I hate this industry
[dead]
“lipgloss”?
Shameless related plug for my recent project Trolley, which lets you package a TUI as a desktop app, for your non-technical users or otherwise:
https://github.com/weedonandscott/trolley
What does it look like? Any screenshots?
It launches whatever TUI you give it with just window decorations. Here's the Linux one with one the debugging examples I use
https://imgur.com/St8O8Gm