[FEATURE] Unified interactive gate with rich formatting, expanded options, and attachment support
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
Claude Code currently has two gate mechanisms with complementary strengths that don't overlap:
AskUserQuestion (AUQ): Hard gate — Claude cannot proceed until the user clicks a button. Options are structured (label + description). But the question field is plain text with no formatting, options are limited to ~4, and there's no open-response path.
Plan Mode gate: Rich visual presentation — left-bookmark layout, structured content with headers and bullet points renders well. But it's a different interaction model (not a hard gate, different semantics, different context).
Neither mechanism combines all the properties needed for complex workflows:
- Hard-gate behavior (must click to proceed)
- Rich formatted question content (headers, bullets, code blocks visible to user)
- Expanded option count (current max ~4 makes complex menus require multi-tier designs)
- Open-response path ("write something else" option, accepting text + attachments)
This forces workarounds: presenting structured data in chat before the AUQ (two-step pattern), nesting menus across multiple gate invocations, and losing context when users want to attach a screenshot or file alongside a selection.
Proposed Solution
A unified interactive gate that combines:
- Plan gate visual layout — left-bookmark content area with full markdown rendering (headers, bullets, code blocks, tables). The question/context panel renders exactly as Plan mode content does today.
- Expanded scrollable option list — up to ~50 options in a scrollable panel. Options retain the current label + description format. This eliminates multi-tier menu designs for workflows that currently need 8–20 options spread across nested gates.
- "Write something else" open prompt — a text input field below the options, accepting free-form text. Supports file attachments (screenshots, images, documents) alongside or instead of selecting a predefined option. This unblocks workflows where the right action isn't in the list, or where visual context (a screenshot of an error) is the clearest way to communicate.
- Hard-gate behavior preserved — Claude cannot proceed until the user either clicks an option or submits the open prompt. Same semantics as AUQ today.
Alternative Solutions
Currently working around with a two-step pattern: present formatted content in chat first, then invoke a separate AUQ for the decision. For menus requiring 8–20 options, nest across multiple sequential AUQ invocations. When a user needs to attach a file or screenshot alongside a selection, the only option is to break out of the gate flow entirely — exit the AUQ, share the file as a separate message, then restart the gate.
Priority
High - Significant impact on productivity
Feature Category
Interactive mode (TUI)
Use Case Example
- Code review menus: A folder with 20 files currently requires a multi-page file picker spread across several AUQ invocations. A single scrollable gate with all 20 files as options eliminates the pagination complexity.
- Error investigation: When Claude surfaces a structural error and asks how to proceed, the user can attach a screenshot of the full terminal output alongside selecting "route to IMB" — no need to paste text.
- Proposal review: Today's proposal review gates present content in chat first (because the AUQ question field is plain text), then invoke a separate AUQ for the decision. A formatted gate would collapse these into a single interaction.
- Multi-step configuration: Installing a component with many sub-options currently requires sequential AUQ invocations. A scrollable options list with conditional rendering could handle the full flow in one gate.
Additional Context
This post combines issues and solutions from multiple other posts: #12420, #12609, #33062, and #29125.
- The open-prompt path with attachment support is the highest-value addition for agentic workflows — it's the gap that most often forces users to break out of a gate flow and restart.
- Backward compatibility: existing AUQ call sites would continue to work. The new gate would be a superset, opt-in via an additional parameter or a new tool name.
- Token efficiency: a single rich gate invocation replaces multiple sequential AUQ + chat-message pairs, reducing round-trip overhead.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗