Skip to content

[FEATURE]: navigate the transcript by prompt, landmark and block (ctrl+up/down, ctrl+shift+up/down, ctrl+alt+shift+up/down, ctrl+home/end) #53331

Open

Description

@Nowaker

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

A long session can only be moved through by line, half page, page, or the whole transcript (home/end). messages_previous / messages_next exist, but they are unbound by default, and they skip any prompt within 10 rows of the viewport top. You also can't step through what the assistant did (its responses, reasoning or tool calls) or jump straight to the answer a turn ended with. Related requests were closed without an implementation: #34727 (jump between your own prompts) and #37699 (message-boundary scrollbar markers).

Proposal: three levels of navigation, bound by default and overridable in tui.json.

  • messages_previous / messages_next (ctrl+up / ctrl+down): move to the previous or next user prompt, every one of them.
  • messages_landmark_previous / messages_landmark_next (ctrl+shift+up / ctrl+shift+down): move to the previous or next landmark. Landmarks are user prompts, the final response of each turn (its last text part), and three kinds of tool call: question (what you were asked and answered), todowrite (the plan) and task (subagents). Edits, reads and shell calls are left out, because they are as dense as the blocks themselves.
  • messages_block_previous / messages_block_next (ctrl+alt+shift+up / ctrl+alt+shift+down): move to the previous or next block, meaning each user prompt, assistant text part, reasoning part with content, and tool call. Reasoning without content is skipped. That covers encrypted blocks and the empty "Thinking" placeholders that GPT models emit on every step, which render as a bare Thought header and carry nothing worth stopping on.

A block lands at the top of the viewport, the same way messages_next places a prompt today. Past the last block the view returns to the bottom and follows new output again; before the first it goes to the top.

Also add ctrl+home / ctrl+end to messages_first / messages_last. Most terminal apps use those keys for "top" and "bottom", and plain home/end already do it here.

Activity

  1. github-actions commented on Oct 5, 2026

    @github-actions
    Contributor

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

    For keybind-related issues, please also check our pinned keybinds documentation: #4997

  2. changed the title [-][FEATURE]: navigate the transcript by block and landmark (ctrl+up/down, ctrl+shift+up/down, ctrl+home/end)[/-] [+][FEATURE]: navigate the transcript by prompt, landmark and block (ctrl+up/down, ctrl+shift+up/down, ctrl+alt+shift+up/down, ctrl+home/end)[/+] on Oct 6, 2026
  3. opencodejr commented on Oct 27, 2026

    @opencodejr

    Thanks for the detailed proposal, @Nowaker!

    To restate it: you'd like three levels of navigation through a session, each with default keybinds that tui.json can override:

    • every user prompt (ctrl+up/ctrl+down)
    • landmarks (ctrl+shift+up/ctrl+shift+down): prompts, each turn's final response, and question/todowrite/task calls
    • individual blocks (ctrl+alt+shift+up/ctrl+alt+shift+down): prompts, assistant text, reasoning with content, and tool calls

    You'd also like ctrl+home/ctrl+end added for first/last.

    For context, the current v2 TUI already has messages_next/messages_previous and messages_next_user/messages_previous_user, but they're unbound by default. There's no landmark or block navigation yet. Since v1 only gets critical fixes now, this would land in v2, so a v2 version of #53333 would be the one to look at.

    Related earlier requests (all closed):

    Maintainers will consider this.

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions