Repository navigation
Description
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
- Press the focus-toggle key, use Up/Down to scroll through earlier agent output, then toggle focus back to the prompt editor.
- In Vim normal mode, focus the chat timeline and use
Ctrl+k/Ctrl+jto scroll upward or downward without leaving the home row. - Use
gto inspect the beginning of a long response andGto return to the newest output. - 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
[-]Add keyboard focus toggle and timeline navigation[/-][+]Add keyboard navigation throughout the chat interface[/+]