Statusline Nerd Font glyphs render as literal \uXXXX escapes only in Agent-Teams tmux-spawned panes
Problem
Custom statusLine command output (using bash ANSI-C quoting, $'\uXXXX' etc. for Nerd Font/
powerline glyphs) renders correctly as real Unicode glyphs in:
- a standalone Claude Code session (no multiplexer)
- a manually-opened tmux/psmux pane running Claude Code
But renders as literal backslash-u text ( Sonnet 5 ...) in a pane
created by Agent Teams' tmux/psmux teammate mode (teammateMode: "tmux") - same script, same
statusLine config, same machine, same shell, same locale.
Ruled out
- Locale/encoding: confirmed
LANG=en_US.UTF-8,LC_ALL=en_US.utf8,LC_CTYPE=en_US.utf8
identical in both working and broken panes.
- Bash version/ANSI-C quoting: confirmed bash 5.2.37 correctly resolves
$'\uXXXX'to the raw
UTF-8 byte sequence in the broken pane too - a diagnostic printf '%b' $'\uXXXX' run via a
Bash tool call inside the same broken session's pane produced a real glyph, not escaped text.
- The script's own raw output: ran the exact statusLine invocation Claude Code uses
(bash statusline-command.sh with JSON piped to stdin) and captured its raw stdout bytes
directly to a file before anything could touch a TUI. repr() of those bytes shows correct
multi-byte UTF-8 (e.g. \xee\x83\x87 for U+E0C7) and zero literal \u ASCII text anywhere in
the stream. So the script and its invocation are clean regardless of which pane runs it -
the corruption is not introduced by how the command is sourced/invoked for team agents.
- Not a general PUA/Nerd-Font rendering gap (unlike #70301) - the same glyphs work fine in the
same physical terminal/font when Claude Code isn't running as a spawned teammate, and the
escaping here also hits plain, non-PUA Unicode (box-drawing ━ U+2501, math bracket ⟨ U+27E8),
not just Nerd Font PUA codepoints - appears to be a blanket "escape everything above ASCII"
behavior specific to this one render path, rather than a glyph-width/font issue.
This isolates the bug to Claude Code's own status-line rendering/writing path specifically in
the tmux-teammate-spawn code path - confirmed downstream of the script, not the terminal, font,
locale, or shell.
Environment
- Windows 11, psmux (tmux-compatible multiplexer) as
teammateMode: "tmux"backend - Requires
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=true(Agent Teams / tmux mode is gated
behind this experimental flag)
- Reproducible: compare statusLine output in a manually-opened pane vs. a teammate-spawned pane
in the same psmux session