ShellGPT https://github.com/TheR1D/shell_gpt does pretty well for a lot of use cases. I mostly use it in REPL mode, switching topics as needed. I have wrappers around the `sgpt` command to, say, start a REPL with a particular topic, say, Python, which loads my previous history on that topic as part of the prompt.
I also have an alias to save existing chats as text files so I can go back and review history.
Finally, there is an alias to load a question up in an editor if I need to enter multiline text, e.g. to discuss code fragments, etc.
I expect command-line workflows to be pretty individualized and I'm curious what others do. For me (old programmer), using a command line REPL feels much more natural (and blissfully noise-free) than going to a Web page to talk to, say, ChatGPT.