Álvaro Ramírez
05 December 2024 LLM chat navigation
LLM chats are often handy for refining answers to a question or task, part of a bigger goal. Navigating the chat transcript, copying and pasting, can be a frequent operation in the bigger goal. If we can do it more efficiently, the better.
While chatgpt-shell offered chatgpt-shell-next-item
and chatgpt-shell-previous-item
commands, it had a few rough edges which prevented me from fully adopting. The default bindings C-c C-n
and C-c C-p
didn't exactly help either, making repeated navigation fairly clunky. repeat-mode would have helped a little, yet I was yearning for a familiar experience… more like tab
and Shift-tab
in web browsers.
While shells often tab
-complete commands and/or arguments, I'm not super convinced tab
completion is a good candidate for an LLM Emacs shell. Having said that, searching for previous prompts a la Ctr-r
is indeed a handy feature and already supported in chatgpt-shell (via M-r
).
This is all to say that the with the latest chatgpt-shell
navigation changes (using <tab>
and <backtab>
bindings), the chatgpt-shell
experience feels way more natural. You can see it in action…
Tab navigation jumps between prompts, links, and code blocks. You may have noticed code blocks are automatically selected, in case you want to quickly copy and paste elsewhere.
This mode of navigation is also present in the compose UX (via M-x chatgpt-shell-prompt-compose
). In addition to <tab>
and <backtab>
, you can use n
and p
bindings (post prompt submission).
Give the new navigation a try. See how it feels. Some of it is fairly fresh, so please file bugs if needed.