Status line redraw corrupts display inside tmux (characters interleave, stale footers bleed into scrollback)

Resolved 💬 1 comment Opened Jun 6, 2026 by kylesnowschwartz Closed Jun 7, 2026

What happens

Inside tmux, the animated status row (model / context / spinner line and the
-- INSERT -- auto mode on (shift+tab to cycle) footer) redraws at the wrong
cursor position. Characters from the live frame interleave with the static
rendered line, and previous footer frames are never cleared, so stale copies
stack and bleed up into the transcript scrollback.

Readable text under the corruption shows the interleaving:

  • Opus 4.8 | 12% | zsh-ai-cmd renders as Opusw4.8 |r12%o |uzsh-ai-cmd...,

with spinner-frame characters woven into the line.

  • -- INSERT -- auto mode on (shift+tab to cycle) appears several times,

mangled (--eINSERTh--s autowmodenon), occupying rows that should hold
transcript text.

  • Earlier assistant output sits sandwiched between duplicated status rows

instead of in a clean scrollback region.

It shows up across separate sessions, not a one-off.

Expected

The status row and INSERT-mode footer repaint in place at the bottom of the
pane. Scrollback above them stays intact.

Environment

claude-code: 2.1.167
OS:          macOS 15.7.4 (24G517)
terminal:    tmux 3.6a
TERM:        tmux-256color
shell:       zsh
LANG:        en_NZ.UTF-8

Repro (best guess, not deterministic yet)

  1. Run claude in a tmux pane (tmux 3.6a, TERM=tmux-256color) on macOS.
  2. Work through a session with long-running tool calls so the spinner and

token counter animate for a while, and toggle in and out of INSERT mode.

  1. The status footer and the scrollback above it corrupt over time.

I don't have a clean deterministic trigger. It builds up over a session with
frequent status redraws. A tmux pane redraw or resize may be involved.

Notes

  • Only observed inside tmux so far. I haven't tried to reproduce in a bare

terminal yet.

  • One affected session was showing a "Restart to Complete Update" badge, so a

background self-update had landed during the session. Unclear whether the
corruption predates or follows that.

Screenshots attached below.

<img width="1299" height="614" alt="Image" src="https://github.com/user-attachments/assets/4989edd8-1915-43ca-b938-b8178dfdeeb5" />

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗