Skip to content
Data
Skill

/ask-user-question

Ask users questions via the UI. Use when you need clarification, user preferences, or confirmation before proceeding. The user CANNOT see CLI output - this tool is the ONLY way to communicate with them.

From plugin
memos
12k3 skills5 agents

Claude Code

$ npx -y skills add MemTensor/MemOS --skill ask-user-question --agent claude-code

SKILL.md

ask-user-question.SKILL.md
name: ask-user-question
description: Ask users questions via the UI. Use when you need clarification, user preferences, or confirmation before proceeding. The user CANNOT see CLI output - this tool is the ONLY way to communicate with them.

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" }
    ]
  }]
})
Read more
@memtensor
Ships withmemos

Self-evolving memory OS for LLM & AI Agents: ultra-persistent memory, hybrid-retrieval, and cross-task skill reuse, with 35.24% token savings and DeepSeek Harness support.

12k3 skills5 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
12.2k
Star history of MemTensor/MemOS on GitHub, a chart by star-history.com

Other skills on memos.

dev-browser

dev-browser

Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web…

@memtensor@memtensorInstall Skill
safe-file-deletion

safe-file-deletion

Enforces explicit user permission before any file deletion. Activates when you're about to use rm, unlink, fs.rm, or any…

@memtensor@memtensorInstall Skill

More skills from other plugins.

context-loader
Auto-invoked

context-loader

Search memories from earlier Pi sessions in this repository. Use it when earlier work may already explain the code, error,…

mem05d69k
@mem0ai@mem0aiInstall Skill
analyzing-ai-citations

analyzing-ai-citations

Answer AI citation and answer engine optimization (AEO) questions in PostHog: whether AI answer engines (ChatGPT, Claude, and an…

posthog11d41k
@posthog@posthogInstall Skill

Questions about ask-user-question.

Which coding agents can use ask-user-question?
ask-user-question installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.