# 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.

- **Type:** Skill
- **Install:** `agentstack add skill-memtensor-memos-ask-user-question`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [MemTensor](https://agentstack.voostack.com/s/memtensor)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [MemTensor](https://github.com/MemTensor)
- **Source:** https://github.com/MemTensor/MemOS/tree/main/apps/openwork-memos-integration/apps/desktop/skills/ask-user-question
- **Website:** https://memos.openmem.net

## Install

```sh
agentstack add skill-memtensor-memos-ask-user-question
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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

```json
{
  "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.

```json
{ "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" }
    ]
  }]
})
```

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [MemTensor](https://github.com/MemTensor)
- **Source:** [MemTensor/MemOS](https://github.com/MemTensor/MemOS)
- **License:** Apache-2.0
- **Homepage:** https://memos.openmem.net

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-memtensor-memos-ask-user-question
- Seller: https://agentstack.voostack.com/s/memtensor
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
