TUI or not TUI - future of goose-cli crate #5958
Replies: 4 comments 16 replies
-
|
I'll say please do not move to an embedded terminal. One of the nice things about goose is that I can use it where I want. I like my editor (emacs). It has a terminal emulator. I can trivially use goose right in the context where I am already programming. Almost all of the outputs from goose are things I'd like to interact with in my editing environment. I also like how much I can do from the CLI (though I'd like to see more). Goose is the easiest LLM harness I've found to integrate into my existing environment. I can fully integrate project management where I already manage my projects. I can launch goose with different profiles depending on the project I've loaded. E.g., I can decide to launch the process with a different LLM depending on workload and language, based on project metadata I've already got. Additionally, I can read the last tool call(s) from the terminal buffer and open the edited files in a new buffer. I've got lots of small workflow enhancements that are only possible because I can use goose in emacs. Heavier TUIs make this harder to do. I like that Goose is pretty much a linear chat history, and that I can easily interrogate the state of Goose and sessions from non-interactive CLI commands. Please keep this around and only implement any TUI enhancements as a shell on top of functionality that lives in the CLI and existing minimal TUI. |
Beta Was this translation helpful? Give feedback.
-
|
To add to the goose use modes, I primarily use goose:
So, the TUI mockup I put together handles both of these better or equally well vs the cli version of goose because that's where I spend all my time. wrt integration with an editor, I think something like ACP is probably the right solution. The TUI, unlike the CLI, runs a real goose-server and would support ACP. Using an agent scaffold inside a terminal emulator inside of an editor inside of a terminal emulator does seem like a bit of a niche use case. To be honest, I love the simplicity of the cli, but the ux does leave a bit to be desired. I wouldn't hate to support "cli-mode" from a unified cli/tui interface that uses goose-server as a backend, though. Lower maintenance than (cli + with its own backend) + (electron ui/TUI with a shared goose-server backend) |
Beta Was this translation helpful? Give feedback.
-
|
@greggyb interesting and thanks for writing up thoughts, I think I get what you mean. I would kind of view TUI as a drop in for what you get with In the next release there is native terminal integration: which will let you do:
and similar, which means you stay in terminal flow (your real terminal, not a faux one) and goose tracks what is going on in the background (ie commands you run). This may or may not air in emacs flow (may not be needed if you already have a separate native terminal/emacs terminal flow you like which should stay as well). In some ways a TUI feels a little retro (I love synthwave retro, still not sure about TUIs, which may try to do too much when you already have native workflows that should just work, which I hope the new goose term feature helps with as well). Like tyler shows, we don't have to make things all TUI all the time. I would be interested if there are any emerging TUI clients. I saw this: https://github.com/iOfficeAI/AionUi which is a generic (well potentially) ACP GUI client, if there was a TUI client that talked ACP (there isn't last I looked) is one way to have many front ends. but to your point @greggyb, I think having a compact way that neatly embeds in terminals and things like emacs is a thing we want to keep one way or another. |
Beta Was this translation helpful? Give feedback.
-
|
@codefromthecrypt just pointed this out to me https://willmcgugan.github.io/announcing-toad/ - so there is some signal there may be a future TUI client for any agent (presumably using ACP or similar) |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
Have been discussing and exploring with @DOsinga and @tlongwell-block about a text-ui for goose, as goose-cli is "old" now (well, almost a year):
#5831 is a demo implementation, some starter discussion questions:
Beta Was this translation helpful? Give feedback.
All reactions