[FEATURE]: better navigation of output, alternative vim mode and non-blocking agent persmission requests
Feature hasn't been suggested before.
- [x] I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
So this became three things, because they all tie in together for a more thought-out interaction within the app.
Three issues:
- hard to navigate output
- vim-modes
- agent accepting permission blocks input
Right now it's not that easy to keyboard navigate the output. A jump to bottom and top would be great. And I of course would like to be able to do it with gg and G.
This ties into somewhat with https://github.com/sst/opencode/issues/1764, because I'm not entire sure that the prompt area is the best place for a command mode. You actually already have a very irritating "command mode" where you can't continue typing your prompt if the agent is asking for permission. So you could have a normal mode where you can navigate output and issue single letter commands like open model, allow request etc, and an insert mode where you can do this with ctrl+something. I would very much like if accepting a request could be done without interrupting typing.
These issues can be solved separately, but it would be nice to have a clean, thoughtful interaction model.
Suggestion
Treat the input prompt field as the ex-mode of vim, where navigation is with more emacsy ctrl+something. Allow to bind everything in this :ex mode to ctrl+something type binding, even stuff like "accept" for permission requests (which should be non-blocking, since I assume they must block input now, because one of the input characters is "a"). The "normal" mode should be where you bind single letters to commands and navigate the chat history. Also things like y to copy entire block, and a visual mode for selecting what to copy exactly with the keyboard. And "insert" mode is really the editor mode, where you pull up vim. If you really want to go fancy, you could have a "full screen" version, and one where the editor is embedded into to prompt area only.
This issue might be a duplicate of existing issues. Please check:
- #1764: Feature request for vim keyboard shortcuts when writing the prompt (same vim mode request)
- #2755: Copy Mode for OpenCode - comprehensive feature request for vim/tmux-like navigation and selection (covers navigation and copy functionality)
- #3455: Make permissions dialog non-blocking and add modifier key shortcuts (same non-blocking permission request functionality)
- #3370: Text selection and navigation inside input with keyboard (related navigation improvements)
- #2232: Preserve Prompt on Ctrl+C (vim-related workflow improvements)
Feel free to ignore if none of these address your specific case.
This is indeed one of the pain points.
For now I just scroll up/down using the configured keybinds and then use the tmux copy keybinds to copy.
Would love this feature.
Ditto!
Can +1 on this, would be highly valued to have