skills/memtensor/memos/ask-user-question

ask-user-question

SKILL.md

Ask User Question

Use this MCP tool to ask users questions and get their responses. This is the ONLY way to communicate with the user - they cannot see CLI/terminal output.

Critical Rule

The user CANNOT see your text output or CLI prompts!

If you write "Let me ask you..." and then just output text - THE USER WILL NOT SEE IT. You MUST call this tool to display a modal in the UI.

When to Use

  • Clarifying questions before starting ambiguous tasks
  • Asking user preferences (e.g., "How would you like files organized?")
  • Confirming actions before executing (especially destructive/irreversible ones)
  • Getting approval for sensitive actions (financial, messaging, deletion, etc.)
  • Any situation where you need user input to proceed

Parameters

{
  "questions": [{
    "question": "Your question to the user",
    "header": "Short label (max 12 chars)",
    "options": [
      { "label": "Option 1", "description": "What this does" },
      { "label": "Option 2", "description": "What this does" }
    ],
    "multiSelect": false
  }]
}
  • question (required): The question text to display
  • header (optional): Short category label, shown as modal title (max 12 chars)
  • options (optional): Array of selectable choices (2-4 recommended)
  • multiSelect (optional): Allow selecting multiple options (default: false)

Custom text input: To allow users to type their own response, include an option with label "Other" (case-insensitive). When selected, the UI shows a text input field.

{ "label": "Other", "description": "Type your own response" }

Important: When "Other" is selected, the response will be User responded: [their text] instead of User selected: Other. You must wait for and handle this text response - do NOT proceed as if they selected a predefined option.

Examples

Asking about organization preferences

AskUserQuestion({
  "questions": [{
    "question": "How would you like to organize your Downloads folder?",
    "header": "Organize",
    "options": [
      { "label": "By file type", "description": "Group into Documents, Images, Videos, etc." },
      { "label": "By date", "description": "Group by month/year" },
      { "label": "By project", "description": "You'll help me name project folders" }
    ]
  }]
})

Confirming a destructive action

AskUserQuestion({
  "questions": [{
    "question": "Delete these 15 duplicate files?",
    "header": "Confirm",
    "options": [
      { "label": "Delete all", "description": "Remove all 15 duplicates" },
      { "label": "Review first", "description": "Show me the list before deleting" },
      { "label": "Cancel", "description": "Don't delete anything" }
    ]
  }]
})

Simple yes/no confirmation

AskUserQuestion({
  "questions": [{
    "question": "Should I proceed with sending this email?",
    "header": "Send email",
    "options": [
      { "label": "Send", "description": "Send the email now" },
      { "label": "Cancel", "description": "Don't send" }
    ]
  }]
})

Response Format

The tool returns the user's selection:

  • User selected: By file type - Single selection
  • User selected: Option A, Option B - Multiple selections (if multiSelect: true)
  • User responded: [custom text] - If user typed a custom response
  • User declined to answer the question. - If user dismissed the modal

Wrong vs Correct

WRONG (user won't see this):

I'll help organize your files. How would you like them organized?
- By type
- By date
- By project

CORRECT (user will see a modal):

AskUserQuestion({
  "questions": [{
    "question": "How would you like your files organized?",
    "options": [
      { "label": "By type" },
      { "label": "By date" },
      { "label": "By project" }
    ]
  }]
})
Weekly Installs
11
Repository
memtensor/memos
First Seen
5 days ago
Installed on
claude-code9
opencode8
codex8
antigravity8
gemini-cli8
windsurf4