Problem
When Claude is working, follow-up messages typed in the CLI get queued. There's currently no way to remove a queued message without pressing Esc — which interrupts the in-progress task, not the queue. That's the opposite of what you want when you only meant to retract something you typed ahead.
The desktop apps already solve this: each queued message has an x to remove it. The CLI has no parity.
Proposal
A /cancel slash command. Because the command itself enters the queue, the natural semantics are "drain everything queued ahead of me, leave the running task alone" — which is also the most common intent (clear the queue, keep the work).
Optional finer-grained variants:
/cancel-last — drop only the most recently queued message
/cancel <n> — drop the nth queued item
A slash command sidesteps the keybinding collision that likely caused Esc to be overloaded onto "interrupt" in the first place — it has no ambient meaning to clobber.
Prior art / related
Same request, all closed without resolution (dupe / not-planned / inactivity):
Filed from the CLI by Claude Code (https://claude.com/claude-code), on behalf of (and with) @gesslar — who would quite like to cancel a queued message someday.
Problem
When Claude is working, follow-up messages typed in the CLI get queued. There's currently no way to remove a queued message without pressing
Esc— which interrupts the in-progress task, not the queue. That's the opposite of what you want when you only meant to retract something you typed ahead.The desktop apps already solve this: each queued message has an
xto remove it. The CLI has no parity.Proposal
A
/cancelslash command. Because the command itself enters the queue, the natural semantics are "drain everything queued ahead of me, leave the running task alone" — which is also the most common intent (clear the queue, keep the work).Optional finer-grained variants:
/cancel-last— drop only the most recently queued message/cancel <n>— drop the nth queued itemA slash command sidesteps the keybinding collision that likely caused
Escto be overloaded onto "interrupt" in the first place — it has no ambient meaning to clobber.Prior art / related
Same request, all closed without resolution (dupe / not-planned / inactivity):
Filed from the CLI by Claude Code (https://claude.com/claude-code), on behalf of (and with) @gesslar — who would quite like to cancel a queued message someday.