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

Status Closed — not planned
Maintainer reply None cached
Activity 7 comments · opened Apr 23, 2026 · 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 7 comments on GitHub. Read the full discussion on GitHub ↗