Skip to content

Support AskUserQuestion tool with multiple-choice options on mobile #635

@nikhilsitaram

Description

@nikhilsitaram

Feature Request

When Claude Code calls the AskUserQuestion tool, the mobile interface shows raw JSON and only yes/no buttons. The actual question text and multiple-choice options aren't rendered, and there's no way to select a specific option.

Current Behavior

  1. Claude calls AskUserQuestion with structured input:
    {
      "questions": [{
        "question": "Which approach should we use?",
        "options": [
          { "label": "Option A", "description": "..." },
          { "label": "Option B", "description": "..." }
        ]
      }]
    }
  2. Happy routes it through the generic permission system (--permission-prompt-tool stdio)
  3. Mobile shows "Claude wants to Ask User Question" with raw JSON arguments
  4. User can only tap Approve/Deny
  5. On approve, handlePermissionResponse returns the original input unchanged — no selection is captured

Expected Behavior

  • Mobile UI detects AskUserQuestion tool calls and renders the question text and option buttons
  • User taps an option (or types a custom response)
  • The selection is sent back and injected into the response to Claude

Technical Context

The limitation is in the permission response format — it only carries approved, reason, mode, and allowTools. There's no field to carry the user's selection back. The handlePermissionResponse method resolves with { behavior: "allow", updatedInput: pending.input } (original input, unchanged).

This would require changes in:

  1. Mobile app: Detect AskUserQuestion in agent state requests, render question/options UI
  2. Permission response schema: Add a field for user selection (e.g. answer or selectedOptions)
  3. CLI handler: handlePermissionResponse to construct a proper response for Claude with the user's answers

Workaround

For now, Claude can use the <options> XML block in its text output (which Happy already renders as tappable buttons) instead of the AskUserQuestion tool when running through Happy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions