Skip to content

Add keyboard navigation throughout the chat interface #5378

Description

@qasimstatic

Problem

Copilot CLI's interactive interface has two important regions: the chat timeline (the rendered conversation and agent output) and the prompt editor (where the next message is entered). Keyboard navigation is currently centered on the prompt editor. The chat timeline is not a first-class keyboard-navigable region, which makes reviewing earlier output dependent on terminal scrollback or the mouse.

Proposed solution

Add complete keyboard-based navigation throughout the interactive chat UI, with an explicit focus model shared by the chat timeline and prompt editor.

Focus and non-Vim navigation

  • Add a dedicated focus-toggle keybinding, independent of Vim mode, to switch focus between the chat timeline and prompt editor.
  • The focused region receives navigation keys.
  • When the prompt editor is focused, preserve its existing editing behavior.
  • When the chat timeline is focused, arrow keys scroll the conversation up and down.
  • The focus toggle and arrow-key navigation should work for users who do not use Vim mode.

Vim normal-mode navigation

When Vim mode is enabled and the chat timeline has focus, provide normal-mode mappings for efficient conversation navigation:

  • Ctrl+k — scroll upward.
  • Ctrl+j — scroll downward.
  • g — move to the top of the chat timeline.
  • G — move to the bottom of the chat timeline.

These mappings should apply only in Vim normal mode while the chat timeline is focused. Insert-mode behavior and prompt-editor editing must remain unchanged.

Example workflows

  1. Press the focus-toggle key, use Up/Down to scroll through earlier agent output, then toggle focus back to the prompt editor.
  2. In Vim normal mode, focus the chat timeline and use Ctrl+k / Ctrl+j to scroll upward or downward without leaving the home row.
  3. Use g to inspect the beginning of a long response and G to return to the newest output.
  4. Continue typing and editing prompts normally while the prompt editor has focus, with no changes to insert-mode behavior.

Additional context

The goal is keyboard navigation throughout the chat interface, not just a focus toggle. The chat timeline and prompt editor should behave as distinct, navigable regions with predictable focus and mode-specific key handling. Page scrolling, counts, and additional Vim motions can be considered after the core navigation model is established.

Activity

  1. changed the title [-]Add keyboard focus toggle and timeline navigation[/-] [+]Add keyboard navigation throughout the chat interface[/+] on Nov 7, 2026
  2. added
    area:input-keyboardKeyboard shortcuts, keybindings, copy/paste, clipboard, mouse, and text input
    and removed on Nov 7, 2026
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

    area:input-keyboardKeyboard shortcuts, keybindings, copy/paste, clipboard, mouse, and text input

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions