Upgrade Alt+Up queue navigation into a first-class queued-message selector/editor

Resolved 💬 6 comments Opened Mar 14, 2026 by oxysoft Closed May 2, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Summary

Upgrade the current Alt+Up queued-message mechanic into a first-class queued-message selector/editor.

The ideal interaction:

  • Alt+Up / Alt+Down navigates queued messages
  • releasing Alt enters edit mode on the currently selected queued message
  • Alt+Down past the newest queued message returns selection to the composer

This should make queued messages feel like a real editable stack instead of a hidden one-off mechanic.

Problem

Queued messages are useful, but the interaction surface feels underpowered.

Right now the queue exists more like a narrow convenience than a manipulable object. If users are stacking follow-up prompts while a turn is running, they should be able to:

  • move through queued messages quickly
  • edit them directly
  • return to the composer naturally
  • eventually reorder them

That feels like the obvious terminal-native shape.

Requested behavior

Selector behavior

  • Alt+Up selects older queued messages
  • Alt+Down selects newer queued messages
  • going past the newest queued message with Alt+Down returns focus/selection to the live composer
  • the selected queued message is visibly highlighted

Edit behavior

  • while Alt is held, user can move through the queue
  • on releasing Alt, Codex opens the selected queued message for editing

That gives the queue a direct “peek, choose, drop into edit” flow.

Future extension: reordering

Once queued messages are true selectable objects, reordering feels natural too.

For example:

  • Alt+Shift+Up / Alt+Shift+Down to reorder queued messages

Terminal limitation / fallback

I do not know whether all supported terminals expose Alt as a reliable modifier with distinct key-down / key-release behavior.

If reliable release semantics are not possible, the fallback should still preserve the same idea:

  • one shortcut enters a queue selection modal
  • Up / Down navigates queued messages
  • a second key edits the selected queued message
  • Esc or equivalent returns to the composer

That would be less elegant than release-to-edit, but still much better than leaving the queue as a weakly operable feature.

Why this matters

Queued prompts should feel like a real stack/workbench, not a hidden buffer.

This would make Codex better at:

  • iterative follow-up planning
  • stacking multiple unrelated follow-ons while a turn is still running
  • refining queued prompts before they fire

It is also a natural sibling to broader terminal/editor expectations around selectable objects, modal navigation, and first-class keyboard control.

Related issues

  • queueing follow-up messages after a turn ends: #11212
  • configurable hotkeys: #3049

Invitation

Would be good to discuss:

  • whether Alt release semantics are practical across supported terminals
  • whether the fallback should be modal or inline
  • good default reordering bindings
  • whether queued messages should eventually support multi-select / batch actions too

View original on GitHub ↗

6 Comments

oxysoft · 4 months ago

Related context:

  • queueing follow-up messages after a turn ends: #11212
  • configurable hotkeys: #3049

This issue is the next layer up from those. It treats queued messages as a first-class selectable/editable stack, with a graceful modal fallback if terminals cannot provide reliable Alt release semantics.

github-actions[bot] contributor · 4 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #12961
  • #14213

Powered by Codex Action

oxysoft · 4 months ago

One important implementation note after looking at terminal/protocol support more closely:

This should probably be treated as a progressive-enhancement input layer, not as an all-or-nothing feature.

There is a real path here in the Rust terminal ecosystem already:

  • standard xterm-style terminal input generally gives you key presses, but not key releases
  • kitty's keyboard protocol does support richer event types including release
  • crossterm already exposes this direction via PushKeyboardEnhancementFlags / KeyboardEnhancementFlags::REPORT_EVENT_TYPES, specifically for terminals that support the kitty keyboard protocol

Relevant docs:

So my strong preference would be:

  • support the richer protocols where they exist
  • hide that behind the same internal queue-selector interface
  • fall back to the explicit modal path where release semantics are unavailable

In other words: don't keep the world in the past just because the portable baseline is weaker. Use the modern protocols where available, make the difference an implementation detail, and keep pushing the terminal/TUI ecosystem toward higher-fidelity input handling. This feels mission-critical for serious software quality, not like a gimmick.

etraut-openai contributor · 2 months ago

This feature request hasn't received enough upvotes, so I'm closing it.

TroyRobinson · 26 days ago

(Bump) I second the need to change the queue order. For example, if queued up a list of tasks, and then a more urgent one comes about although I want to maintain the context of that thread, promoting a new message to be next to load, that would be helpful. The proposed requested behavior sounds good to me.

etraut-openai contributor · 26 days ago

@TroyRobinson, this issue was closed because it didn't receive enough upvotes. If you'd like to propose something similar, please open a new issue. Sometimes issues don't get upvotes because their descriptions or titles aren't clear enough. By reframing the feature, you might be able to attract more interest.