[FEATURE] Custom TUI components for plugins/skills

Resolved 💬 7 comments Opened Jan 11, 2026 by PJuniszewski Closed Apr 6, 2026

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

### Problem
When a skill uses AskUserQuestion, Claude must first execute, interpret the skill instructions, then call the tool. This creates unnecessary latency and Claude "overhead" text before the UI appears.

Current flow:
/cook-menu
→ Claude reads skill.md
→ Claude runs bash to scan files
→ Claude calls AskUserQuestion
→ User sees UI (finally!)

Compare to /plugin:
/plugin
→ Native UI appears immediately

Proposed Solution

Allow skills to declare AskUserQuestion prompts in frontmatter or a structured format that Claude Code renders immediately without Claude mediation.

When invoked, Claude Code would:

  1. Run the scan command
  2. Immediately render AskUserQuestion UI
  3. Pass result to Claude for action execution

Alternative Solutions

_No response_

Priority

Medium - Would be very helpful

Feature Category

Interactive mode (TUI)

Use Case Example

Building /cook-menu - an artifact management skill. Want users to see selection UI instantly, not after Claude's processing delay.

Example skill.md:
```yaml
---
description: Interactive menu for managing cook artifacts
user-invocable: true
immediate-ui:

  • type: scan

command: "ls cook/*.cook.md"
into: artifacts

  • type: ask

question: "Which artifact?"
header: "Artifact"
options-from: artifacts
---


  Current Workaround

  Using AskUserQuestion through Claude works but:
  - Adds 2-3 seconds latency
  - Claude outputs explanation text before UI
  - Feels less responsive than native commands

<img width="592" height="315" alt="Image" src="https://github.com/user-attachments/assets/1163a0cd-183f-4848-b0fb-b7790c0305f1" />
<img width="488" height="317" alt="Image" src="https://github.com/user-attachments/assets/0b028d2a-ec95-4652-ad9d-6046d54c4e83" />



### Additional Context

_No response_

View original on GitHub ↗

This issue has 7 comments on GitHub. Read the full discussion on GitHub ↗