Problem / Motivation
When working with a coding agent, the model sometimes needs to ask the user a question that has a fixed set of possible answers — for example, choosing between several implementation approaches, picking one file out of several candidates, or selecting which of multiple detected issues to fix. Today the chat only knows how to handle one specific kind of yes/no-style decision (approving or rejecting a tool action). Any other kind of question the model wants to ask with predefined answer choices has no proper way to be displayed — the user either has to answer in free text, guessing at the exact wording the model expects, or the model's question doesn't render as an interactive choice at all.
Goal
Let the model ask the user a question with a set of selectable answer options, and have the chat interface render that question as clickable choices instead of requiring free-text guesswork. This should support both "pick exactly one" and "pick one or more" style questions.
Scope
- Recognize when the model is asking a choice-based question (as opposed to a normal chat message or a tool-approval request).
- Render the question and its options inline in the conversation, in a way that's clearly distinct from a regular message.
- Support single-choice questions (the user picks exactly one option).
- Support multiple-choice questions (the user can pick more than one option before confirming).
- Once the user answers, show their selection as part of the conversation history so the exchange reads naturally when scrolling back.
- Send the user's answer back to the model in a form it can act on immediately, similar to how tool-approval responses work today.
Non-goals
- Free-text follow-up questions (open-ended questions with no predefined options) are out of scope — this is specifically about choice-based questions.
- Changing how tool-approval (allow/deny) prompts work today; this is a separate, additional capability alongside that existing flow.
- Support for questions with dynamically loaded or paginated option lists (e.g., searchable dropdowns) — initial scope is a reasonably small, fixed list of options presented up front.
Acceptance Criteria
Open Questions
- Should there be a way for the user to dismiss/skip a choice question without answering, or should every choice question require a response before the conversation can continue?
- Do we want a per-option "custom/other" free-text fallback for cases where none of the offered choices fit, or is that explicitly out of scope for now?
Problem / Motivation
When working with a coding agent, the model sometimes needs to ask the user a question that has a fixed set of possible answers — for example, choosing between several implementation approaches, picking one file out of several candidates, or selecting which of multiple detected issues to fix. Today the chat only knows how to handle one specific kind of yes/no-style decision (approving or rejecting a tool action). Any other kind of question the model wants to ask with predefined answer choices has no proper way to be displayed — the user either has to answer in free text, guessing at the exact wording the model expects, or the model's question doesn't render as an interactive choice at all.
Goal
Let the model ask the user a question with a set of selectable answer options, and have the chat interface render that question as clickable choices instead of requiring free-text guesswork. This should support both "pick exactly one" and "pick one or more" style questions.
Scope
Non-goals
Acceptance Criteria
Open Questions