[FEATURE] Terminal tab title to reflect agent state (unread/active) for terminal/tmux users
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
Terminal/tmux users who run multiple Claude Code sessions simultaneously have no way to know which sessions have unread responses or are actively generating — without switching to each window individually.
For example, in a tmux setup, each Claude session lives in a separate window (tab). The tab title is the only ambient signal available. With many sessions open, tabs scroll off-screen and there's no way to distinguish:
- A session that has responded and is waiting for me
- A session that is actively generating
- A session that is idle
This is the terminal equivalent of the unread dot in the desktop app — but for users who live in the terminal, the tab title is the UI.
Proposed Solution
Expose agent state in the terminal title string that Claude Code sets. Specifically:
- Unread (Claude has responded, user hasn't seen it): prefix the title with an indicator, e.g.
●or[!] - Active (currently generating): prefix with e.g.
⟳or[…] - Idle: title as-is (current behaviour)
For richer environments, title color could also be used:
- tmux users: tmux's window-status-format supports full color styling, so a color signal on the window tab is straightforward if the state is exposed
- Terminal emulator users: some terminals support OSC escape sequences for tab color (iTerm2, some GNOME Terminal versions), though support is inconsistent across platforms
A prefix character approach is the lowest common denominator and works everywhere. Color is an optional enhancement for environments that support it. Exposing the state in the title string enables both — terminal multiplexers and emulators can style it however they like.
Alternative Solutions
Use a third-party tool like herdr.dev, which is a terminal multiplexer built specifically around agent state visibility — it surfaces "unread" and "active" as first-class UI.
This is compelling enough to be the primary differentiator of an entire tool. Ideally Claude Code wouldn't require users to adopt a separate multiplexer just for this signal.
Priority
Medium - Would be very helpful
Feature Category
Interactive mode (TUI)
Use Case Example
A user running 20+ Claude sessions across tmux windows, some on a remote machine via mosh/SSH. Tabs scroll off-screen. There's no way to know which sessions need attention without switching to each one. A title prefix or color change would make the answer immediately visible from the status bar.
Additional Context
Terminal users (SSH, tmux, headless servers) cannot use the desktop app's dot indicators. Terminal title state is the only ambient signal available. This affects any terminal multiplexer (tmux, screen, zellij) or emulator that displays tab titles. Prefix characters are the lowest common denominator; color is an enhancement for environments that support it (tmux via window-status-format, some terminals via OSC escapes).
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗