[FEATURE] Provide a tool that allows skills (and the model) to programmatically present structured forms/wizards to users, similar to the built-in tabbed wizards shown in /plugins and plan mode.
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Current Limitation
Currently, skills can only collect user input through:
- AskUserQuestion - simple text-based questions
- Having the model ask questions conversationally
There's no way for skills to present the polished, tabbed wizard UI that built-in platform features use (like /plugins, /plan, etc.).
Proposed Solution
Proposed Solution
Add a new tool (e.g., PresentForm or ShowWizard) that allows skills to:
- Define structured forms with multiple sections/tabs
- Support various input types:
- Text input
- Boolean (yes/no, true/false)
- Enum/select (dropdown or radio buttons)
- Multi-select
- Number input
- File selection
- Organize inputs into sections (like tabs in current wizards)
- Return structured data (JSON) when user submits
Alternative Solutions
_No response_
Priority
Medium - Would be very helpful
Feature Category
CLI commands and flags
Use Case Example
Example Use Case
Creating an "onboarding wizard" skill that:
- Presents a multi-tab form (Personal Details, Team Details, Project Details)
- Collects different types of input (text, booleans, enums)
- Processes the submitted data with a script
- Returns formatted output
Additional Context
Benefits
- Richer skill capabilities: Skills could collect complex structured data elegantly
- Better UX: Users get polished data entry experiences instead of back-and-forth questioning
- Consistency: Skills would use the same high-quality UI patterns as built-in features
- Efficiency: Collect all required information upfront rather than through multiple conversational turns
Technical Considerations
The tool might look something like:
PresentForm({
title: "Onboarding Wizard",
sections: [
{
name: "Personal Details",
fields: [
{ id: "name", type: "text", label: "What is your name?" },
{ id: "location", type: "text", label: "Where do you live?" }
]
},
{
name: "Team Details",
fields: [
{ id: "team", type: "text", label: "Which team are you in?" },
{ id: "manager", type: "text", label: "Who is your manager?" },
{ id: "fulltime", type: "boolean", label: "Are you full time?" }
]
},
{
name: "Project Details",
fields: [
{ id: "project", type: "enum", label: "Which project?", options: ["iOS", "visionPro", "watchOS"] },
{ id: "blocked", type: "boolean", label: "Is it blocked?" }
]
}
]
})
Returns structured JSON when user submits.
<img width="614" height="171" alt="Image" src="https://github.com/user-attachments/assets/b141ac5d-2805-45bf-98bc-9d148091fdf1" />
<img width="713" height="128" alt="Image" src="https://github.com/user-attachments/assets/8855130a-f0bf-4752-abd0-2e6d5bff2ed2" />
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗