[Feature Request] Expose slash-command echo rows as a ui.render component

Status Open
Reported on v2.1.300
Maintainer reply None cached
Activity 0 comments · opened Oct 15, 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

A hooks-module mod using ui.render on UserMessage (terminal surface) can redraw the person's prompts, for example as a right-aligned chat bubble. A prompt that is a slash command (/compact, /my-skill some args) is not drawn through that site: the engine draws its ❯ /name args echo row (or Skill(name) for a skill) with its own component on the userMessageBackground fill, and raises no render site for it. In a mod that restyles prompts, every typed slash command stays in the engine's left-aligned style and looks out of place next to the other prompts.

In 2.1.300, RenderComponent has no member for that row. CommandOutput covers the output row under the echo, not the echo itself; UserMessage is not raised for it; and prompt.submit / command.run can change the command, not how its echo is drawn.

Proposed Solution

Raise the echo row through ui.render, either:

  • as UserMessage, with a read-only command prop ({ name, args, isSkill }) so a hook can tell it apart, or
  • as its own component (e.g. CommandInput) with props { command, args, isSkill, isExpanded, onScreen }.

A mod could then align and style it like any other prompt, or hide it.

Alternative Solutions

Rewriting the stored row so the engine draws it as a plain prompt would change what the model reads, so it is not a real option. Today the echo row cannot be changed by a mod at all.

Priority

Low - Nice to have

Feature Category

Interactive mode (TUI)

Use Case Example

  1. Load a mod whose UserMessage hook draws prompts as right-aligned bubbles.
  2. Type a plain prompt: it is drawn on the right.
  3. Type /compact or /some-skill args: the echo stays on the left in the engine's own style.

Additional Context

Related: #100847 (the same gap for the attachment rows drawn under a prompt, such as └ [Image #1]). Claude Code 2.1.300, Windows Terminal.

View original on GitHub ↗