The Changelog The Changelog #481

Making the command line glamorous

This week we’re talking to Toby Padilla, Co-Founder at Charm — where they build tools to make the command line glamorous. We talk about the state of the art, the next big thing happening on the command line and in ssh-land. They have an array of open source tooling to build great apps for the terminal and Charm Cloud to power a new generation of CLI apps. We talk through all their tooling, where things are headed for CLI apps, the focus and attention of their team, and what’s to come in bringing glamor to the command line.


Sign in or Join to comment or subscribe

2022-03-03T17:08:42Z ago

All the talk about command line applications was pretty cool, and I loved that you discussed the difference between “command line” applications (do one thing well, composable, scriptable, etc) and TUIs. BubbleTea and Bubbles look cool, but it awfully sounds like a re-invention (without historical context) of curses. There’s a lot of talk (in certain circles) about why the classic curses (and the newer ncurses) APIs are not good, and replacements that are available, but I’d would have loved to hear a discussion about the new BubbleTea API model and how it is better than the more mature and well known curses, turbovision and friends.

2022-03-04T19:32:46Z ago

Great question @guss77. Bubble Tea is based on the Elm architecture (, which is a functional reactive way of building front-end applications vs. ncurses being classically imperative. We also made it easy to pair with Lip Gloss which is very much like CSS. Basically Bubble Tea/Bubbles/Lip Gloss represent the past 10-20 years of UI best practices. Curses was certainly a great tool for its time, but doesn’t incorporate more modern methods for UI development. It’s also a language choice issue as ncurses is C but all of our frameworks are in Go, so able to take advantage of all of the language and platform features there as well. We’ve also tried to incorporate more modern default styling and features like support for auto-detecting light/dark terminal backgrounds.

0:00 / 0:00