Comment by jsnell
7 days ago
I find it strange how most of these terminal-based AI coding agents have ended up with these attempts at making text UIs flashy. Tons of whitespace, line art, widgets, ascii art and gradients, and now apparently animations. And then what you don't get is the full suite of expected keybindings, tab completion, consistent scrollback, or even flicker-free text rendering. (At least this one seems to not be written with node.js, so I guess there's some chance that the terminal output is optimized to minimize large redraws?).
So they just don't tend to work at all like you'd expect a REPL or a CLI to work, despite having exactly the same interaction model of executing command prompts. But they also don't feel at all like fullscreen Unix TUIs normally would, whether we're talking editors or reader programs (mail readers, news readers, browsers).
Is this just all the new entrants copying Claude Code, or did this trend get started even earlier than that? (This is one of the reasons Aider is still my go-to; it looks and feels the way a REPL is supposed to.)
Well this specific tool is by a company called Charm that has the mission statment of making the command line glamerous. They have been around for several years prior to the LLM craze.
They make a CLI framework for golang along with tools for it.
That’s right. Charm has been making pretty tuis since the beginning of the group. BubbleTea and VHS are amazing. Everyone should try them.
Also their website features a public ssh CLI interface that is a cool demo of what the framework can do. Go hug it to death HN!
Oooh yes, VHS is amazing.
I came to reply this. They have been building very cool CLI projects and those projects end up composing new bigger projects. This is their last one (That I know of) which use most of the other projects they created before.
They didn't do it flashy for this project specifically (like Claude Code, which I don't think is flashy at all) but every single one of their other projects are like this.
also text UIs have always attempted a sense of flashiness? your BIOS, DOS UI's back in the day, etc. the OP sounds oddly jaded by it for no particular reason?
What bothers me is that what I like about terminals is the scrolling workflow of writing commands and seeing my actions and outputs from various sources and programs sequentially in a log. So what I want is a rich full-HTML multi-program scrolling workflow. Instead, people are combining the worst of both worlds. What are they doing? Give me superior UI in a superior rendering system, not inferior UI in an inferior rendering system, god damn it.
This sounds kinda like https://sketch.dev/
Cc @crawshaw
You can run it inside the terminal while still using your code editor with full support for diffs and undo. It works seamlessly with IDE like Cursor AI or VSCode, allowing multiple agents to work on different tasks at the same time, such as backend and frontend. The agents can also read each other’s rules, including Cursor rules and Crush Markdown files.
Say more about what you mean by "multi-program scrolling workflow", if you don't mind
I think what they mean by "multi-program scrolling workflow" is just what you ordinarily get in a terminal window. You run command A, and below it you see its output. You run command B, and below it you see its output. And you can easily use the scroll bar to look at earlier commands and their output.
The parent commenter seems to be asking for the same thing, but with rich text/media.
I mean a session that isn't limited to interaction with a single program. For example, if I have an agent in this paradigm, I want to easily interleave prompting with simple commands like `ls`, all in the same history. That's not what I'm getting with apps like claude code or crush. They just take over the entire terminal, and crush even quits without leaving a trace.
6 replies →
Nah, this type of text UI has been charmbracelet's whole thing since before AI agents appeared.
I quite like them, unlike traditional TUIs, the keybindings are actually intuitively discoverable, which is nice.
I suspect some of it is that these interfaces are rapidly gaining adherents (and developers!) whose preference and accustomed usage is more graphically IDE-ish editors. Not everyone lives their life in a terminal window, even amongst devs. (Or so I’m told; I still have days where I don’t bother starting X/Wayland)
At least one can use Claude Code within emacs: https://github.com/stevemolitor/claude-code.el
You can also just run it in vterm
That package _does_ just run it in vterm, and it just adds automatic code links (the @path/to/file syntax), and a few more conveniences.
1 reply →
you are showing how young you are. ;-) I'm glad this is back as someone that grew up in the BBS era, colorful text based stuff brings back joyful memories. I'm building my own terminal CLI coding agent. My plan is to make it this colorful with ascii art when I'm done, I'm focused on features now.
They are easier to make than full-fledged user interfaces, so you get to see more of them.
Well, they all seem to have issues with multi-line selection, as those get all messed up with decorations, panes and whatever noise is there. To best of my awareness, the best a TUI can do is to implement its own selection (so, alt-screen, mouse tracking, etc. - plenty of stuff to handle, including all the compatibility quirks) and use OSC 52 for clipboard operations, but that loses the native look-and-feel and terminal configuration.
(Technically, WezTerm's semantic zones should be the way to solve this for good - but that's WezTerm-only, I don't think any other terminal supports those.)
On the other hand, with GUIs this is not an issue at all. And YMMV, but for me copying snippets, bits of responses and commands is a very frequent operation for any coding agent, TUI, GUI or CLI.
this is debatable, a proper TUI has the same complexities as conventional UIs + legacy rendering.
Flashy TUIs have been around for a few years. Check out the galleries for TUI frameworks:
https://ratatui.rs/showcase/apps/
https://github.com/charmbracelet/bubbletea/tree/main/example...
https://textual.textualize.io/
I've been drafting a blog post about their pros and cons. You're right, text input doesn't feel like a true REPL, probably because they're not using readline. And we see more borders and whitespace because people can afford the screen space.
But there's perks like mouse support, discoverable commands, and color cues. Also, would you prefer someone make a mediocre GUI or a mediocre GUI for your workflows?
It feels like going back to NC again (Norton Commander)
For what it's worth, this is exactly why I am working on Jean-Pierre[0], pitched as:
> A command-line toolkit to support you in your daily work as a software programmer. Built to integrate into your existing workflow, providing a flexible and powerful pair-programming experience with LLMs.
The team behind DCD[1] are funding my work, as we see a lot of potential in a local-first, open-source, CLI-driven programming assistant for developers. This is obviously a crowded field, and growing more crowded by the day, but we think there's still a lot of room for improvement in this area.
We're still working on a lot of the fundamentals, but are moving closer to supporting agentic workflows similar to Claude Code, but built around your existing workflows, editors and tools, using the Unix philosophy of DOTADIW.
We're not at a state where we want to promote it heavily, as we're introducing breaking changes to the file format almost daily, but once we're a bit further along, we hope people find it as useful as we have in the past couple of months, integrating it into our existing terminal configurations, editors and local shell scripts.
[0]: https://github.com/dcdpr/jp [1]: https://contract.design
DOTADIW = Do One Thing And Do It Well
^ for the uninitiated
People have been making TUIs since time immemorial.
Discover the joys of Turbo Vision and things like Norton Commander, DOS Navigator, Word Perfect etc.
They problem is that most current tools can neither do the TUI right or the terminal part right.
I wouldn’t describe those traditional TUIs as trying to be flashy, though. They were largely utilitarian.
I haven't tried the project at the link, but I don't see much flashiness there. From the video it actually feels muted compared to the colors of yesteryear.
I have a sneaking suspicion claude code is tui just because that’s more convenient for running on ephemeral vms (no need to load a desktop os, instant ssh compatibility) and that they didn’t realize everyone would be raw dogging —dangerously-no-permissions on their laptop’s bare metal OS
> I find it strange how most of these terminal-based AI coding agents have ended up with these attempts at making text UIs flashy.
Its next gen script kids.
If true, GOOD.
I 100% unironically believe we're better off more script kiddies today, not fewer.
Out of curiosity, why is that?
4 replies →
Uhm, you forgot ANSI animations from BBS, stuff like the BB demo from AALIB, aafire, midnight commander with tons of colours, mocp with the same...
Flashy stuff for the terminal it's not new. Heck, in late 90's/early 00's everyone tired e17 and eterm at least once. And then KDE3 with XRender extensions with more fancy stuff on terminals and the like, plus compositor effects with xcompmgr and later, compiz.
But I'm old fashioned. I prefer iomenu+xargs+nvi and custom macros.
Some really old heads told me that syntax highlighting is a gimmick. I can't imagine looking at code without it.
why is it strange? they're making it look slick and powerful and scifi and cool, as a - extremely successful - marketing gimmick.