TUI rendering corruption in tmux + Ghostty (regression since 2.1.200)

Open 💬 0 comments Opened Jul 15, 2026 by activescott

Description

Since upgrading past 2.1.199, running claude inside tmux + Ghostty produces garbled TUI rendering: large blocks of text go missing, and the screen appears to scroll and overwrite itself. Reproduces in both "tui": "default" and "tui": "fullscreen" renderer modes. Does not reproduce running claude directly in Ghostty outside tmux.

Environment

  • macOS (Darwin 25.3.0)
  • Terminal: Ghostty
  • tmux 3.7a, TERM=tmux-256color
  • Claude Code versions tested: broken on 2.1.200 through 2.1.210 (latest available at time of testing); last known-good is 2.1.199

Suspected cause

Changelog for 2.1.200 states: "Fixed rendering flicker under tmux 3.4+ by enabling synchronized terminal output." This is the only tmux-related rendering change between the known-good and known-bad versions, and is a strong suspect for the regression.

Repro / bisection

Installed side-by-side npm copies (didn't touch the primary install):

npm install @anthropic-ai/claude-code@2.1.199 --prefix ./v199
npm install @anthropic-ai/claude-code@2.1.210 --prefix ./v210

Run each inside a tmux session in Ghostty:

  • ./v199/node_modules/.bin/claude → renders correctly
  • ./v210/node_modules/.bin/claude → garbled rendering (missing text, screen overwrite/scroll corruption)

What I tried that did NOT fix it

  • Switching /tui fullscreen vs /tui default — broken in both
  • ~/.tmux.conf: set -as terminal-overrides ',*:Sync@' (strip the Sync terminfo capability tmux advertises to child processes)
  • ~/.tmux.conf: set -g focus-events on
  • CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 (this only forces sync ON; there's no shipped env var to force it off, which would have been the useful test)

Current workaround

Pinned to 2.1.199 via npm install -g @anthropic-ai/claude-code@2.1.199 until this is fixed.

View original on GitHub ↗