Skip to content

[FEATURE]: better navigation of output, alternative vim mode and non-blocking agent persmission requests #4092

Closed

Description

@ferdinandyb

Feature hasn't been suggested before.

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

Activity

  1. added
    discussionUsed for feature requests, proposals, ideas, etc. Open discussion
    on Nov 8, 2025
  2. github-actions commented on Nov 8, 2025

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    Feel free to ignore if none of these address your specific case.

  3. added
    opentuiThis relates to changes in v1.0, now that opencode uses opentui
    on Nov 8, 2025
  4. itse4elhaam commented on Dec 10, 2025

    @itse4elhaam

    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.

  5. julienberman commented on Jan 7, 2026

    @julienberman

    Ditto!

  6. arthur404dev commented on Jan 14, 2026

    @arthur404dev

    Can +1 on this, would be highly valued to have

  7. KyrillGobber commented on Jan 20, 2026

    @KyrillGobber

    Using opencode more and more, I stumble upon this issue as well. It happens extremely often that I just press k to scroll up in the output, but instead I'm typing in the input. Toggling between input and navigation would be the same as insert/normal mode in vim.
    Toggle input with i, esc for staying in navigation. While navigating, besides the typical shortcuts like gg/G, j/k, ctrl+d/u, it would be awesome to have shortcuts to jump to the last user message (or do we already have this maybe?).

  8. shelper commented on Jan 22, 2026

    @shelper

    i think the first thing is to allow modify the cursor, right now the cursor is blob shape for input, but for vim that usually implies normal mode, and subconciousnessly, we press jk for scrolling

  9. github-actions commented on Mar 26, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 90 days of no activity. If the issue is still relevant please open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionUsed for feature requests, proposals, ideas, etc. Open discussionopentuiThis relates to changes in v1.0, now that opencode uses opentui

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions