Feature: Plugin API for custom animated UI components in tool output

Resolved 💬 6 comments Opened Apr 23, 2026 by HomeHeartTherapy Closed Jun 14, 2026

Summary

Plugins, skills, and tools currently cannot render animated or interactive UI elements in Claude Code's output stream. All tool/Bash output is captured and displayed as static text blocks, even when it contains valid ANSI escape sequences designed for real-time animation (cursor repositioning, frame-by-frame redraws, etc.).

Meanwhile, Claude Code's own built-in UI (the ultrathink shimmer, progress spinners, thinking indicators) demonstrates that the Ink/React rendering layer is fully capable of beautiful animated terminal output.

Feature Request

Expose a plugin/tool API that allows custom Ink/React components to be rendered inline in the conversation output — not just static text blocks, but live-rendered elements that can animate, update, and respond to state changes.

Use Cases

  • Neon shimmer text effects — animated color-cycling text for banners, status displays, session headers
  • Custom progress indicators — domain-specific progress visualization (e.g., build pipelines, deployment stages)
  • Live dashboards — real-time metric displays that update in-place (CPU usage, test runner output, deploy status)
  • Interactive selection UIs — scrollable lists, confirmation prompts rendered inline
  • Animated status banners — session connection status, environment health indicators with visual flair

Current Workaround

Scripts must be run in a separate terminal tab that Claude Code doesn't control. This breaks the integrated workflow — the user has to context-switch out of the conversation to see animated output.

Proposed API Shape (Suggestion)

Something like a render tool or output type that accepts a component definition:

{
  "type": "animated_output",
  "component": "shimmer-text",
  "props": {
    "text": "CODEX (CT-110) SESSION ESTABLISHED",
    "color": "#00FFEA",
    "animation": "wave",
    "speed": 0.25
  }
}

Or more flexibly, allow plugins to register custom Ink components that can be invoked by name in tool output.

Context

Discovered while building a neon teal shimmer effect for Windows Terminal's Midnight City color scheme. The 24-bit ANSI color animation works perfectly in a raw terminal but gets captured as a 233KB static text block when run through Claude Code's tool output handler. The effect requires frame-by-frame cursor repositioning (\033[{n}A) which the output viewer doesn't execute.

---

Filed from Claude Code on Windows 11 Pro.

View original on GitHub ↗

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