Statusline Nerd Font glyphs render as literal \uXXXX escapes only in Agent-Teams tmux-spawned panes

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 24, 2026

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

View original on GitHub ↗