[BUG] iTerm2 + tmux: mouse wheel hijacked to input history, scrollback renders broken past viewport (2.1.138 + 2.1.139)
Resolved 💬 5 comments Opened May 12, 2026 by hotpandamedia Closed Jun 25, 2026
Environment
- Claude Code: 2.1.139 (reproduces on 2.1.138 too)
- Terminal: iTerm2 on macOS 26.1
- Multiplexer: tmux 3.6a
- Install: native (
~/.local/share/claude/versions/)
Summary
Scrollback regression appeared on 2.1.138 and persists on 2.1.139 inside iTerm2 + tmux:
- Mouse wheel is hijacked — scrolling up cycles previous input history instead of the chat transcript.
- Option+wheel moves through scrollback, but any text past the terminal viewport height renders corrupted or disappears (partial lines, missing rows, ghost characters).
- PgUp / PgDn is the only mechanism that renders prior content correctly — one screen at a time, unworkable for copying long messages.
The same setup worked correctly before 2.1.138.
Steps to reproduce
- macOS + iTerm2 + tmux 3.6a
- Run
claude(2.1.138 or 2.1.139) - Generate a multi-screen response
- Mouse wheel → input history cycles instead of scrolling chat
- Option+wheel → scrollback moves but renders corruption past the viewport
- PgUp → only working method, one viewport at a time
What I've tried
claude update(2.1.138 → 2.1.139): no improvement- 2.1.123 (cached locally) does not exhibit this
Impact
Reading and copying long outputs is the core read-loop of the tool. PgUp-only scrollback is significantly degrading day-to-day use; planning to downgrade to 2.1.123 as a workaround.
Possibly related
- #56546 Fullscreen TUI janky/non-smooth scrolling
- #56881 missing docs for
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN - #51393 scroll regression in Windows Terminal since 2.1.x
- #55826 [Meta] Scrollback after compaction
May be a manifestation of alternate-screen / fullscreen TUI mode interacting badly with tmux's mouse capture — the iTerm2 + tmux combination seems to be the trigger.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗