Escape key doesn't work on Status/Usage tabs in /config menu
Bug Description
The <kbd>Escape</kbd> key does not work on the Status or Usage tabs in the /config settings menu. Users are stuck in the UI until they tab back to the Config page and press <kbd>Escape</kbd> there.
How Escape Currently Works on the Config Tab
The Config tab has a search bar that is auto-focused on every page load. <kbd>Escape</kbd> is handled in two stages:
| State | <kbd>Escape</kbd> Action |
|:------|:-------------------------|
| Search bar has text | Clears the search text |
| Search bar is empty | Passes through → closes the settings menu |
<figure>
<img width="1253" height="776" alt="Config tab showing search bar auto-selected with Esc to clear hint" src="https://github.com/user-attachments/assets/e2cf246c-d737-4445-815a-87a5d6c9d77a" />
<figcaption>Search bar is auto-selected on every Config page load, including when cycling between tabs</figcaption>
</figure>
This gives a natural double-escape exit pattern that prevents accidental dismissal.
<figure>
<img width="1254" height="756" alt="Config tab with Esc to cancel shown after search bar is cleared" src="https://github.com/user-attachments/assets/de0234fe-c467-4235-b210-8e8c7c27ecfe" />
<figcaption>Once the search bar is cleared, <kbd>Esc</kbd> to cancel passes through and closes the menu</figcaption>
</figure>
Why Status and Usage Tabs Are Broken
When the user tabs away from Config to Status or Usage, the search bar is cleared but does not lose focus.
Critically, the Escape key does not passthrough from Status or Usage pages. There is no way to deselect the search bar unless the user cycles back and escapes from the Config page itself.
However, Escape passthrough is already honored with the <kbd>Esc</kbd> to cancel function on Status, Config, and Usage pages. The same code wasn't used in the new <kbd>Esc</kbd> to clear functionality that's reserved for the search bar.
Edge Cases Already Handled
<dl>
<dt><strong>Search bar is cleared on tab switch</strong></dt>
<dd>Search bar entry is cleared when user changes tabs.</dd>
<dt><strong>Active search text blocks tab navigation</strong></dt>
<dd>This is a nonissue: users have to <kbd>Escape</kbd> or <kbd>Enter</kbd> their search query in order to change tabs.</dd>
</dl>
Steps to Reproduce
- Run
/config - <kbd>Tab</kbd> to Status or Usage
- Press <kbd>Escape</kbd> — nothing happens, user is stuck and can't escape menu
- <kbd>Tab</kbd> back to Config
- Press <kbd>Escape</kbd> × 2 — because search bar is auto-selected whenever Config loads (incl. reloads)
- User is free from UI jail
Expected Behavior
<kbd>Escape</kbd> closes the settings menu from any tab.
Recommended Fix
[!TIP] Apply the same <kbd>Escape</kbd> passthrough that the Config tab uses (when search bar is empty) to the Status and Usage tabs. This preserves the double-escape safety pattern and requires minimal change.
<details>
<summary>Implementation Options</summary>
Option A — Change hint language from <kbd>Esc</kbd> to cancel to <kbd>Esc</kbd> to cancel · <kbd>Esc</kbd> (2×) to exit.
Option B — Replicate the <kbd>Esc</kbd> to clear / <kbd>Esc</kbd> to cancel cycling functionality from the Config page.
I recommend whichever option is less bloated and most easily understood. Adding additional language may carry more weight due to translations, so <kbd>Esc</kbd> to clear / <kbd>Esc</kbd> to cancel could be the ideal vector for this fix. Depends on the codebase, of which I have no knowledge.
</details>
Environment
| | Details |
|:--|:--|
| Claude Code | 2.1.72 |
| Platform | Linux (Arch), macOS Tahoe 26.4, WSL2 — tested on all 3 |
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗