Terminal resize causes duplicated/corrupted output in tmux (regression in 2.1.116)
Resolved 💬 6 comments Opened Apr 23, 2026 by ArnaudValensi Closed May 31, 2026
Bug Description
Terminal resize in tmux causes duplicated/corrupted output with the main-screen (default) renderer. Each resize event (e.g., iOS keyboard show/hide) produces garbled, repeated content in the terminal. The output appears split and puzzle-like, making it unreadable.
Bisect Result
- 2.1.114 (Apr 18): works correctly
- 2.1.115: does not exist on npm
- 2.1.116 (Apr 21): broken
- 2.1.117: broken
The regression was introduced in 2.1.116.
Environment
- OS: Linux (Arch, Docker container)
- Terminal: xterm.js (web terminal) inside tmux 3.6a
- TERM: xterm-256color
- Shell: zsh
- Renderer: default (main-screen)
Steps to Reproduce
- Run Claude Code inside tmux (default main-screen renderer, no
tui: "fullscreen") - Resize the terminal (e.g., toggle iOS virtual keyboard, or resize the terminal window)
- Observe duplicated/scrambled output in the terminal
Each keyboard show/hide adds a large number of lines to tmux scrollback (full session redraw captured as scrollback), and the visible output becomes corrupted.
Expected Behavior
Terminal resize should cleanly redraw the current frame without duplicating or corrupting output (as it does in 2.1.114 and earlier).
Workarounds
- Pin to 2.1.114 (last working version)
- Set
"tui": "fullscreen"in~/.claude/settings.json(uses alt-screen renderer, avoids the issue but changes UX)
Additional Context
- The issue affects all sessions equally, but is more visible in short/new sessions where the duplicated content is near the top of scrollback.
- The
fullscreen(alt-screen) renderer is unaffected because it uses a virtualized scrollback that doesn't capture intermediate redraws. - Tested across multiple Claude Code versions (2.1.104, 2.1.110, 2.1.113, 2.1.114 all work; 2.1.116, 2.1.117 all break).
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗