[FEATURE] Support tmux DCS Passthrough for Status Line Shimmer
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
Claude Code's status line shimmer (OSC 9;4 escape sequences) doesn't work inside tmux because tmux filters OSC sequences by default. The shimmer works perfectly in iTerm2 when running Claude Code directly, but disappears when running inside a tmux session.
Requirements
- Check for
$TMUXenvironment variable - When in tmux, wrap OSC sequences in DCS format:
\x1bPtmux;\x1b<doubled-esc-sequence>\x1b\\ - Double all
\x1b(ESC) characters within the wrapped sequence - Use ST terminator (
\x1b\\) after the passthrough
Configuration
Tmux must have allow-passthrough enabled (tmux 3.2+):
set -g allow-passthrough all
Related: https://github.com/anthropics/claude-code/issues/19976
Proposed Solution
Claude Code should detect when running inside tmux (via $TMUX environment variable) and wrap OSC sequences in tmux's DCS passthrough format:
Current behavior:
// Direct OSC - doesn't work in tmux
process.stdout.write('\x1b]9;4;3;0\x07');
Requested behavior:
if (process.env.TMUX) {
// Wrap in DCS passthrough for tmux
// Format: DCS + tmux; + doubled-ESC + OSC + ST
process.stdout.write('\x1bPtmux;\x1b\x1b]9;4;3;0\x07\x1b\\');
} else {
// Direct OSC for non-tmux terminals
process.stdout.write('\x1b]9;4;3;0\x07');
}
Alternative Solutions
_No response_
Priority
Low - Nice to have
Feature Category
Interactive mode (TUI)
Use Case Example
I verified this works by creating a test script:
#!/bin/bash
if [ -n "$TMUX" ]; then
printf '\x1bPtmux;\x1b\x1b]9;4;3;0\x07\x1b\\'
sleep 2
printf '\x1bPtmux;\x1b\x1b]9;4;0;0\x07\x1b\\'
else
printf '\x1b]9;4;3;0\x07'
sleep 2
printf '\x1b]9;4;0;0\x07'
fi
This successfully shows the shimmer in iTerm2 when run inside tmux.
Additional Context
References
- Tmux DCS Passthrough
- iTerm2 Proprietary Escape Codes
- Tmux allow-passthrough documentation
- OSC 52 clipboard example using tmux passthrough
Impact
This would allow Claude Code users who work in tmux (a very common setup for developers) to see the status line shimmer, improving the user experience and matching the behavior outside tmux.
Environment
- Claude Code version: 2.1.37+
- tmux version: 3.2+ (with allow-passthrough support)
- Terminal: iTerm2, Alacritty, or other terminals supporting OSC 9;4
- Platform: macOS, Linux
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗