Skip to content

[FEATURE]: Implement Double-ESC to trigger 'Restore/Undo' menu (Claude Code parity) #14037

Closed

Description

@liony-hyh

Summary

Implement a feature where double-pressing the ESC key opens a "Restore / Undo" interactive menu, similar to the behavior in Claude Code.

Motivation

In Claude Code, double-pressing ESC activates a Restore the code and/or conversation menu. This is a highly ergonomic feature for several reasons:

  1. Discoverability: Users often forget slash commands like /undo. A visual menu triggered by a common "exit/back" key pattern is intuitive.
  2. Granularity: Instead of immediately executing a rollback (which might be destructive or confusing), a menu allows the user to choose what to undo (e.g., "Undo last message", "Revert file changes", "Clear context").
  3. UX Consistency: As developers switch between AI CLI tools, adopting successful interaction patterns (like double-ESC) reduces cognitive load.

Current Behavior vs. Proposed

Desired UX

When the user is in the idle state and presses ESC twice quickly:
A TUI modal appears with options such as:

  • ↩️ Undo last message
  • ⏪ Revert changes to files
  • ❌ Cancel

This would greatly enhance the safety and control users feel when interacting with the agent.

Activity

  1. added
    coreAnything pertaining to core functionality of the application (opencode server stuff)
    on Feb 17, 2026
  2. github-actions commented on Feb 17, 2026

    @github-actions
    Contributor

    Thanks for the detailed feature request! This is a great idea for improving UX ergonomics.

    For context, there are several related issues you might want to track together with this:

    Since this involves keyboard shortcuts, also check our keybinds documentation: #4997

  3. github-actions commented on Apr 19, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

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

Metadata

Metadata

Assignees

Labels

coreAnything pertaining to core functionality of the application (opencode server stuff)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions