← Back to context

Comment by mccoyb

7 days ago

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.

  • 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.

      1 reply →

    • > 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.

      1 reply →