anthropics / anthropics/claude-code

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

オープン
#89,203 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
area:agents area:statusline bug platform:windows
主要言語
Python
スター
145k
フォーク
23.1k
PR マージ指標
PR 指標を取得中

説明

## 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

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Reproduce the comparison between a manually opened pane and a teammate-spawned pane using the same statusLine command and psmux session. Trace Claude Code's status-line rendering and writing path for tmux-teammate mode, focusing on where valid UTF-8 becomes escaped text. Done means Unicode glyphs render correctly in spawned panes without regressing standalone or manually opened panes.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
bash
領域
cli
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。