claude-code - 💡(How to fix) Fix [FEATURE] Animate the project name chip while waiting for user input

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Pulse the project name chip in the TUI (slow ~1.5s opacity/tint cycle) when Claude is in the Stop state and awaiting user input. Revert to static on UserPromptSubmit / while working.

Root Cause

  • preferredNotifChannel: "terminal_bell" — one-shot BEL on completion / permission prompts. On Tilix + GNOME this renders as a small A̲| icon on the tab; too subtle to scan across 6 tabs.
    • Custom Stop hook writing BEL directly to the pty via /proc/$PPID/fd/1 (necessary because hook subprocesses have their stderr captured by Claude Code, so >&2 never reaches the terminal). Produces the same A̲| indicator — same subtlety problem.
    • Tilix Triggers regex-matching Claude's output to UpdateTitle (text-only) or UpdateBadge. Tilix's trigger vocabulary has no tab-color or animation action, and the recap text isn't a stable contract to match against.
    • Mobile push via Remote Control — covers "walked away from desk," not "sitting at desk with 6 tabs visible."
    • Custom statusLine script — can render anything I want, but the JSON Claude passes doesn't expose "waiting on user" as a state, so it would have to read from a sentinel file written by a separate Stop hook.
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing requests and this feature hasn't been requested yet
  • This is a single feature request (not multiple features)

Problem Statement

Summary

Pulse the project name chip in the TUI (slow ~1.5s opacity/tint cycle) when Claude is in the Stop state and awaiting user input. Revert to static on UserPromptSubmit / while working.

Why

Running multiple concurrent Claude Code sessions in tabs, glance-detecting which one just finished a turn is a bottleneck. The project chip is already the most visible element Claude renders, already carries session identity, and is purely ANSI (works in any terminal emulator). Animating it during Stop answers "which session needs me?" and "what is it?" in one peripheral glance — without adding new visual elements or requiring terminal-emulator integration.

Related

  • #21894 — umbrella request for visual prompt state indicators; this is a concrete UI for the "waiting" state
  • #42107 — multi-tab state icons; same use case, different mechanism

Notes

  • Settings opt-out (e.g. idlePulse: false, or a new preferredNotifChannel value)
  • Same mechanism could later differentiate the Notification state (tool approval pending) with a faster, more urgent pulse or other style

Proposed Solution

Pulse the project name chip in the TUI when Claude is in the Stop state and awaiting user input.

Alternative Solutions

  • preferredNotifChannel: "terminal_bell" — one-shot BEL on completion / permission prompts. On Tilix + GNOME this renders as a small A̲| icon on the tab; too subtle to scan across 6 tabs.
  • Custom Stop hook writing BEL directly to the pty via /proc/$PPID/fd/1 (necessary because hook subprocesses have their stderr captured by Claude Code, so >&2 never reaches the terminal). Produces the same A̲| indicator — same subtlety problem.
  • Tilix Triggers regex-matching Claude's output to UpdateTitle (text-only) or UpdateBadge. Tilix's trigger vocabulary has no tab-color or animation action, and the recap text isn't a stable contract to match against.
  • Mobile push via Remote Control — covers "walked away from desk," not "sitting at desk with 6 tabs visible."
  • Custom statusLine script — can render anything I want, but the JSON Claude passes doesn't expose "waiting on user" as a state, so it would have to read from a sentinel file written by a separate Stop hook.

Priority

Medium - Would be very helpful

Feature Category

Interactive mode (TUI)

Use Case Example

  1. Open ~6 Tilix tabs, one Claude Code session per project (one running tests, one drafting docs, one refactoring, etc.)
  2. Kick off a long-running turn in tab 1, then tab over to tab 2 to do something while it runs
  3. Work in tab 2 for a few minutes; tab 1 finishes mid-stream
  4. Glance at the tab strip to see which session(s) are waiting on me — currently this means reading each tab's content or relying on a subtle tab-bell icon. With chip pulsing, the project chip in the just-finished tab would slow-pulse, making it the obvious target at a glance
  5. Switch to tab 1, type my next prompt; pulse stops the moment input is submitted

Additional Context

No response

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING