[FEATURE] A state-independent keybinding to force-return to the agent view, even when the session is blocked (active AskUserQuestion or unsent prompt text)
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
First off, thank you for the agent view (claude agents). Managing many background sessions from one place has become a core part of my workflow, so this is a small quality-of-life ask rather than a complaint.
Today, the only way to leave an in-session view and return to the agent view (the parent) is the ← / Backspace back-navigation. The problem is that those same keys are exactly the ones the session's current interactive state tends to consume, so when a session needs human input I get trapped inside it:
- An AskUserQuestion picker is active — arrow keys move between options instead of navigating back.
- There is unsent text in the prompt buffer —
←/Backspace move the cursor / delete characters instead of leaving the view. - Other blocking interactive prompts (e.g. a permission prompt) are on screen.
In all of these cases there is no way to bail out to the parent agent view without first dealing with (or destroying) the session's current state. When I'm juggling several sessions and just want to glance back at the list, being forced to resolve whatever a single session is waiting on breaks the flow.
Proposed Solution
A dedicated keybinding that always returns to the agent view (parent), regardless of the current session's interactive state — i.e. it is handled at a layer above the active widget / input buffer, so it can't be swallowed by an AskUserQuestion picker, a non-empty prompt buffer, or a permission prompt.
Crucially, this should be non-destructive: leaving does not answer, cancel, or clear anything. The session stays exactly as it was (still blocked / still waiting), and re-entering it later drops me right back into the same pending state. It's purely a "let me out to the list" escape hatch, not a "discard" action.
A chord that no widget is likely to consume (for example a Ctrl-based combo) would avoid clashing with in-widget keys. Ideally it would
be remappable too, but a sensible hardcoded default is already enough to solve the problem.
Alternative Solutions
- Make AskUserQuestion non-blocking (#69075) — complementary, but it's a model/turn-level change and doesn't cover the unsent-prompt-buffer or permission-prompt cases, which are also UI-navigation problems.
- Collapsible/minimizable AskUserQuestion widget (#64670, #47305) — these hide the widget but don't return me to the parent agent view, which is the actual thing I want.
- Configurable agent-view keymap (#60579, closed as duplicate) — about remapping existing actions, not about an escape that works while the session has captured input.
- Current workaround: none that's clean — I either finish/cancel whatever the session is waiting on, or kill the terminal, both of which are heavier than the task warrants.
Priority
High - Significant impact on productivity
Feature Category
Interactive mode (TUI)
Use Case Example
- I have 5 background agent sessions running and I'm browsing them in the agent view.
- I enter session
#3to check on it; it happens to be paused on an AskUserQuestion picker (or I'd half-typed a prompt earlier that's still in the buffer). - I decide I don't want to answer it right now — I just want to go back and look at the other sessions.
- I press
←/ Backspace, but the keystroke is consumed by the picker / input buffer, so I'm stuck inside session#3. - With this feature, a single state-independent keybinding takes me straight back to the agent view, leaving session
#3untouched and still pending so I can return to it whenever I'm ready.
Additional Context
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗