Skip to content

[ux] interactive ask tool or similar widget if available #1924

Open

Description

@texastoland

ohmypi natively includes a multi-select w/ an optional text input. pi has similar plugins. I assume other agents provide similar functionality? it'd be nice if the skills used it when the agent has one, and fell back to asking in plain text when it doesn't.

Two reasons I'd like it: a picker is faster to answer than typing, and the answer comes back as the labels I picked instead of prose, so there's less to re-interpret. The workflow skills already ask one focused question at a time and explain what it unlocks (e.g. src/core/templates/workflows/explore.ts line 19, "Keep questions focused"), which is the text-only version of the same thing.

I checked what each tool in docs/supported-tools.md calls this, and whether it can multi-select or take a typed answer:

OpenSpec tool Ask tool name Multi-select Typed answer
Claude Code (claude) AskUserQuestion yes yes, adds its own "Other"
Gemini CLI (gemini) ask_user yes yes
Qwen Code (qwen) ask_user_question yes yes, adds its own "Other"
opencode (opencode) question yes yes, adds its own "Type your own answer"
Oh My Pi (oh-my-pi) ask yes yes, adds its own "Other (type your own)"
Cursor (cursor) AskQuestion not documented not documented
Codex (codex) request_user_input no yes, custom option
GitHub Copilot (github-copilot) AskQuestions in VS Code, ask_user in the CLI yes in VS Code, no in the CLI yes
Cline (cline) ask_question (was ask_followup_question) no yes
Pi (pi) none built in, a plugin adds ask_user yes via plugin yes via plugin

Sources: Claude Code docs, Gemini CLI docs, Qwen Code source, opencode source, oh-my-pi docs, Cursor forum thread, Codex source, VS Code Copilot PR, Copilot CLI docs, Cline docs.

The names are all over the place (AskUserQuestion, ask_user, ask_user_question, question, ask, AskQuestion, request_user_input, AskQuestions), and only some of them do multi-select. That's probably why skills just ask in plain text today.

A few caveats I noticed while checking: Cursor's and Codex's only work in plan mode, VS Code Copilot's is experimental and off by default, and the Copilot CLI one is single-select only.

I have not checked the other tools in docs/supported-tools.md, and I could not find one documented at all for Amp or Antigravity CLI.

Activity

  1. texastoland commented on Sep 21, 2026

    @texastoland
    Author

    addendum: the same argument applies to the built-in todo / plan tools, not just the ask tool.

    propose already tells the agent to "Use a todo list to track progress through the artifacts" (src/core/templates/workflows/propose.ts line 118), but it does not name a tool, so what you actually see depends on the harness: whichever tool the agent happens to reach for, or a prose checklist when it has none. Same fragmentation as the ask tool:

    OpenSpec tool Todo tool Notes
    Claude Code (claude) TodoWrite disabled by default in favor of TaskCreate/TaskGet/TaskUpdate/TaskList, and both sets exist only on some models
    Gemini CLI (gemini) write_todos
    Qwen Code (qwen) todo_write off by default (tools.todoWrite.enabled)
    opencode (opencode) todowrite disabled for subagents by default
    Oh My Pi (oh-my-pi) todo ordered mutations with phase tracking
    Cursor (cursor) not documented
    Codex (codex) update_plan
    GitHub Copilot (github-copilot) manage_todo_list VS Code only, not the CLI
    Cline (cline) none the docs only suggest asking for a todo list during planning, so it is a convention, not a tool
    Pi (pi) none built in a plugin adds one

    Sources: Claude Code todo tracking, Claude Code tools reference, Gemini CLI todo docs, Qwen Code todo_write docs, opencode tools docs, oh-my-pi README, VS Code manage_todo_list issue, Cline plan and act docs. I could not verify Codex's or Cursor's from first-party docs.

    The fallback is cheap here in a way the ask tool is not: a plain-text checklist already works and is what the skills do today, so this is only about preferring the tool when the agent has one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    design-reviewNeeds product/design decision

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions