Agent skill

Ask User Question

by MemTensor in MemTensor/MemOS

Shows a question as a modal in the interface to clarify a task, collect a preference or get approval, since the user cannot see terminal output.

Apache-2.0Auto-check passedAgent Workflows

Install Ask User Question

skills CLI
$ npx skills add MemTensor/MemOS --skill ask-user-question -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install MemTensor/MemOS ask-user-question --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/MemTensor/MemOS.git skills-src && mkdir -p .claude/skills && cp -r skills-src/apps/openwork-memos-integration/apps/desktop/skills/ask-user-question .claude/skills/ask-user-question && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ask-user-question
GitHub stars
12k
Token cost
~1k tokens
SKILL.md length
289 words
Files
4
Skills in repo
6
Repo updated
First seen
Licence
Apache-2.0

At a glance

Shows a question as a modal in the interface to clarify a task, collect a preference or get approval, since the user cannot see terminal output.

  • Clarifying an ambiguous task before the agent starts work
  • SKILL.md covers Critical Rule, When to Use, Parameters and Examples, plus 2 more sections
  • Runs TypeScript scripts from its folder
  • Asking how you want a folder of files organized

What it does

This MCP tool is how the agent asks you something when your interface does not show terminal text. Writing a question as plain output does nothing, so the agent has to call the tool, which opens a modal in the UI and returns your answer.

Each call takes a list of questions. A question has its text, an optional short header of up to 12 characters shown as the modal title, optional choices (two to four are recommended) and a multiSelect flag that defaults to false. Adding an option labeled Other shows a text field, and the reply then arrives as typed text that the agent must handle rather than treating it as a preset choice. The result states your selection, your custom text, or that you declined to answer. The folder is a small TypeScript package.

When your agent uses it

  • Clarifying an ambiguous task before the agent starts work
  • Asking how you want a folder of files organized
  • Confirming a destructive step, such as deleting duplicate files, before it runs
  • Getting approval for sensitive actions like sending a message

Example prompts

  • “Before touching my Downloads folder, ask me how I want the files organized.”
  • “Ask me to confirm before deleting any duplicate files.”
  • “Check with me through a question dialog before you send this email.”

Requirements

  • An app that can display the question modal for the MCP tool

What it can do on your machine

Read from SKILL.md and the folder at commit a7367d0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (TypeScript), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ask User Question loads about 1k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 289 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from MemTensor/MemOS at commit a7367d0, republished under its Apache-2.0 licence (© MemTensor). 289 words, ~1,019 tokens.

Download SKILL.mdSave it as .claude/skills/ask-user-question/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
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

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

© MemTensor, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files in apps/openwork-memos-integration/apps/desktop/skills/ask-user-question of MemTensor/MemOS.

  • SKILL.md
  • package.json
  • src/index.ts
  • tsconfig.json

Open the folder on GitHubat commit a7367d0

Compare with similar skills

Ask User Question next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ask User Question compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ask User Question this skillMemTensor/MemOS12k—~1kAutomated safety check: PassApache-2.0
Agent Self-Customizationnanocoai/nanoclaw31k1 repos~1.5kAutomated safety check: NotesMIT
Linggenlinggen/linggen-memory109—~8.6kAutomated safety check: NotesMIT-0
Ouroboros Command ReferenceQ00/ouroboros6.2k—~1.8kAutomated safety check: PassMIT
Fewer Permission Promptsasgeirtj/system_prompts_leaks69k—~1.9kAutomated safety check: PassCC0-1.0
Dutis macOS Handler Managertsonglew/dutis251—~1.2kAutomated safety check: PassNone

Similar skills

  • Agent Self-Customization

    nanocoai/nanoclaw

    A decision tree for an agent changing its own setup: edit memory directly, request approval for packages and MCP servers, and delegate code edits to a builder agent.

    31k GitHub starsUsed in 1 repo~1.5k tokens
    Agent WorkflowsAuto-check: notes
  • Linggen

    linggen/linggen-memory

    Linggen — durable cross-host memory plus browser control, over two local MCP servers: ling-mem for memory, the Linggen engine for browser, X and agents.

    109 GitHub stars~8.6k tokensUpdated yesterday
    Agent WorkflowsAuto-check: notes
  • Reference guide to the Ouroboros commands and agents, covering interviews, seed specs, evaluation, lateral-thinking personas and the evolutionary loop.

    6.2k GitHub stars~1.8k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Fewer Permission Prompts

    asgeirtj/system_prompts_leaks

    Scan your transcripts for common read-only Bash and MCP tool calls, then add a prioritized allowlist to project .claude/settings.json to reduce permission prompts.

    69k GitHub stars~1.9k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Inspects, plans, changes and rolls back macOS default app handlers for file types, MIME types and URL schemes through Dutis, with approval before any write.

    251 GitHub stars~1.2k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed
  • Dive Into LangGraph

    luochang212/dive-into-langgraph

    A Chinese-language guide and reference for building agents with LangGraph 1.0, from a first ReAct agent through middleware, memory, MCP, RAG and web search.

    457 GitHub stars~837 tokensUpdated 26 days ago
    AI & LLM EngineeringAuto-check: notes

More from MemTensor/MemOS

  • Dev Browser Automation

    MemTensor/MemOS

    Automates a real browser through short TypeScript scripts that keep page state between runs, for navigating, filling forms, taking screenshots and extracting data.

    12k GitHub starsUsed in 3 repos~1.7k tokens
    Auto-check passed
  • Controls a browser through BrowserWing's local HTTP API: navigation, clicks, typing, data extraction, accessibility snapshots, screenshots and batch operations.

    12k GitHub starsUsed in 2 repos~3.9k tokens
    Auto-check passed
  • BrowserWing Admin

    MemTensor/MemOS

    Installs, configures and operates BrowserWing, a browser automation platform, covering Chrome setup, LLM provider configuration, and creating or running automation scripts.

    12k GitHub stars~4.1k tokensUpdated 8 days ago
    Auto-check: notes
  • Safe File Deletion

    MemTensor/MemOS

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

    12k GitHub stars~291 tokensUpdated 8 days ago
    Auto-check passed
  • Explains when to call MemOS's own memory tools to search past conversations, after the automatic per-turn recall hook comes up empty.

    12k GitHub stars~3.5k tokensUpdated 8 days ago
    Auto-check: warnings

Categories

Questions about Ask User Question

What does Ask User Question do?

Shows a question as a modal in the interface to clarify a task, collect a preference or get approval, since the user cannot see terminal output. This MCP tool is how the agent asks you something when your interface does not show terminal text. Writing a question as plain output does nothing, so the agent has to call the tool, which opens a modal in the UI and returns your answer.

When should I use Ask User Question?

Ask User Question fits situations like: clarifying an ambiguous task before the agent starts work; asking how you want a folder of files organized; confirming a destructive step, such as deleting duplicate files, before it runs; getting approval for sensitive actions like sending a message.

How do I install Ask User Question in Claude Code?

Run `npx skills add MemTensor/MemOS --skill ask-user-question -a claude-code`. Or copy the skill folder (apps/openwork-memos-integration/apps/desktop/skills/ask-user-question in MemTensor/MemOS) into .claude/skills/ask-user-question in your project. Claude Code loads it when a task matches its description.

How do I install Ask User Question in Codex?

Run `npx skills add MemTensor/MemOS --skill ask-user-question -a codex`. Or copy the skill folder (apps/openwork-memos-integration/apps/desktop/skills/ask-user-question in MemTensor/MemOS) into .agents/skills/ask-user-question in your project. Codex loads it when a task matches its description.

Can I use Ask User Question in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add MemTensor/MemOS --skill ask-user-question -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ask-user-question, .gemini/skills/ask-user-question, .github/skills/ask-user-question and .opencode/skills/ask-user-question in your project.

What does Ask User Question need to run?

Going by SKILL.md and its folder, Ask User Question needs TypeScript for the scripts in its folder. Our summary lists: An app that can display the question modal for the MCP tool.

Does Ask User Question access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Ask User Question safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Ask User Question use?

Ask User Question is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ask User Question use?

About 1k tokens (SKILL.md is roughly 4.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ask User Question?

Skills that share tags, products or a category with Ask User Question: Agent Self-Customization (nanocoai/nanoclaw, 31k stars), Linggen (linggen/linggen-memory, 109 stars), Ouroboros Command Reference (Q00/ouroboros, 6.2k stars) and Fewer Permission Prompts (asgeirtj/system_prompts_leaks, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ask User Question?

MemTensor (a GitHub organization) maintains it in MemTensor/MemOS, which has 11,738 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on September 29, 2026.

Source: MemTensor/MemOS on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.