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.
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.
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.
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.
Thanks, thinking about this - I think there are several ways to serve this concern: one could be having an agent as a server, where "prompting" is just a command `prompt ...` sent to the agent as a server. Then you never leave your terminal.
Presumably, you'd want this, but with some sort of interface _like_ these TUI systems?
> Thanks, thinking about this - I think there are several ways to serve this concern: one could be having an agent as a server, where "prompting" is just a command `prompt ...` sent to the agent as a server. Then you never leave your terminal.
Presumably, you'd want this, but with some sort of interface _like_ these TUI systems?
The whole advantage to a shell, and why people get so obsessed with it, is that they provide a standard interface to every program. Tuis break that by substituting their own ui.
They also provide a standard output... limitation, really, which means you can suddenly do pipes.
The future should look to capture both of those benefits.
Everyone will get super mad, but html is honest to god a great way to do this. Imagine a `ls` that output html to make a prettt display of your local files, but if you wanted to send the list to another program you pass some kind of css selector `ls | .main-list.file-names.name` or something. It's not exactly beautiful but you get the idea.
> one could be having an agent as a server, where "prompting" is just a command `prompt ...` sent to the agent as a server
Yeah, I prefer something like that (which should be strictly easier to make than these elaborate TUIs). I could also be interested in a shell that supports it natively, e.g. with a syntax such as `-- this is my prompt! it's not necessary to quote stuff`. I'd also enjoy an HTML shell that can output markdown, tables and interactive plots rather than trying to bend a matrix of characters to do these things (as long as it's snappy and reliable). I haven't looked very hard, so these things might already exist.
You are probably looking for Mods (https://github.com/charmbracelet/mods), their other CLI AI Agent tool that's not a TUI, but a commandline interface to AI Agents.
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?
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)
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.
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.
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.
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
Not GP but as a 90s kid who didn’t learn programming until my 20s my impression is that script kiddies with cute hacks are a huge source of creativity. And maybe even playful tools, which I personally enjoy. Something about not focusing on deep programming or tech maybe makes it easier to just have fun and accomplish your goals.
I fear that todays kids are too compliant on everything; the script kiddie ethos at the time still wasn't primarily clear fraud, just chaos. Which, yeah, I think we could use a little of that now.
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.
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.)