[BUG] /tui fullscreen clips shell-details footer and output box without tmux (plain iTerm2)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
With "tui": "fullscreen" enabled, the shell-details view (opened from /tasks for a background shell) renders clipped:
- The details panel renders inline below the transcript instead of taking over the viewport; the output box gets only the leftover height (e.g. "Showing 9 lines")
- The footer ("← to go back · Esc/Enter/Space to close · x to stop") is not pinned to the bottom row — it flows with content and is clipped below the viewport, so I must resize the window taller to reach it
- The Output box appears to be a static snapshot taken at open time: watching a ping, the view stayed at icmp_seq=10-18 while the process had already reached seq 25+, even though Status showed "running"
This reproduces on plain iTerm2 with NO tmux/multiplexer, so it is not (only) about multiplexer chrome. Closely related to #51497 (tmux-specific, closed as stale with no response) — this report rules out "doesn't account for tmux status bar" as the sole root cause. A wide-and-short terminal window (ultrawide monitor) makes it much worse.
Workaround: switching back to the default /tui mode fixes the clipping entirely — the shell view then takes over the screen properly (confirmed by side-by-side testing).
(Supersedes #74321, which I filed without the template and closed.)
What Should Happen?
Entering shell details is an explicit "watch this shell" action, so the view should take over the full viewport (like less/htop), pin the footer to the bottom row, and live-tail the output while the shell is running.
Error Messages/Logs
No error messages — visual/layout issue. The shell-details view shows e.g. "Showing 9 lines" with the footer ("← to go back · Esc/Enter/Space to close · x to stop") clipped below the viewport.
Steps to Reproduce
- Use a terminal window that is wide but short (easiest way to see the clipping; ultrawide monitor)
- Enable fullscreen TUI: /tui fullscreen (or "tui": "fullscreen" in ~/.claude/settings.json)
- Ask Claude to run a long-lived background shell, e.g.
ping -i 1 8.8.8.8(run in background) - Open the shell from the /tasks (or /bashes) list to enter the shell-details view
- Observe: output box shrinks to a few lines ("Showing 9 lines"), footer is clipped below the viewport, and the output does not update while the shell keeps running
- Switch back to default /tui mode and repeat steps 3-4: the view renders correctly
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.201
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
iTerm2
Additional Information
_No response_
3 Comments
Reproduced on Windows 11 + ConPTY in default
/tuimode as well — fullscreen mode is not required, so the trigger appears to be more general than the fullscreen setting: whenever the in-progress turn's dynamic region (turn transcript + spinner + expanded shell details + input box + status bar) exceeds the terminal height, the bottom of the frame is clipped — the input box, status bar and the panel footer never render. Because the repaint style produces no scrollback, the clipped content is also unreachable by scrolling.Evidence from a raw PTY byte capture (xterm.js 6 host via node-pty 1.1.0 / ConPTY, PowerShell 5.1):
⏸ manual mode on, shortcut hints) is entirely absent from the byte stream — it is never emitted, not merely painted off-screen. The terminal's buffer never grows beyond screen height (baseY stays 0), so there is no scrollback to recover the clipped part.useConptyDll: true) behave identically, and fakingTERM_PROGRAM=vscodemakes no difference.Expected behavior matches the OP: the expanded shell-details view should clamp itself into the available rows (or take over the viewport) with the footer pinned to the bottom row and internal scrolling for the output box.
Environment: Claude Code 2.1.215, Windows 11 Pro build 26200, node-pty 1.1.0 (ConPTY), xterm.js 6, PowerShell 5.1.
Reproduced on Windows 11 + VS Code integrated terminal + Windows Terminal — with a precise trigger condition
Environment
Problem
When a task list (10 tasks) and background tasks (2 workflows + 20 sub-agents) coexist in the same session, the TUI bottom bar intermittently breaks:
Key finding — precise trigger condition
The bug is triggered by assistant output rendering and recovers when the user sends a message:
This cycle is reproducible: every assistant reply triggers the break, every user input recovers it. The pattern is consistent across both VS Code terminal and Windows Terminal.
Interpretation
This matches the issue description: "whenever the in-progress turn's dynamic region (turn transcript + spinner + expanded shell details + input box + status bar) exceeds the terminal height, the bottom of the frame is clipped."
The assistant output appears to be the element that pushes the dynamic region past the terminal height — when the assistant's text is rendered, the total height (assistant output + task list + background task nav + input box + status bar) exceeds the available rows, and the bottom bar (nav + details) gets clipped. When the user input is rendered, the layout recalculates with a different height profile, and everything fits.
Test setup for reproduction
Version note
v2.1.223 improved the situation compared to earlier versions (the TUI sometimes works correctly in fullscreen with task list + background tasks), but the bug is not fully fixed — it's intermittent and triggered by the assistant-output rendering condition described above. In default (classic renderer) mode, the issue is less severe (navigation works, but the input box scrolls with the conversation instead of staying pinned).
Related issues
Confirmed / reproduced on 2.1.233 (Linux, tmux, wide-short windows like 210×14 and 210×35).
With
"tui": "fullscreen", backgroundingwhile true; do date; sleep 1; doneand opening it from/tasks: the shell-details panel renders inline below the transcript instead of taking over the viewport, the output box gets only leftover height (I saw the exact same "Showing 9 lines"), and at 14 rows the "← to go back · Esc/Enter/Space to close · x to stop" footer is clipped below the visible screen.Two notes from my runs:
The layout/clipping problem is real and we're tracking it.
🤖 Generated with Claude Code