[BUG] Status line reserves a blank row when output is empty in fullscreen (alternate screen) mode
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?
When a statusLine command is configured and prints nothing, Claude Code still renders a blank status-line row in fullscreen (alternate screen) mode. In inline mode, the same empty output correctly renders nothing. There is no setting to collapse the row (padding, refreshInterval, and hideVimModeIndicator are the only documented options).
This affects tools that use the statusLine command purely as a data intake — the stdin JSON is the only surface exposing rate_limits, cost, and context_window (hooks don't receive these) — and render their UI elsewhere (e.g. tmux pane borders). They pay a permanently blank row of vertical space.
Evidence from the 2.1.220 binary, status-line component:
children = statusLineText
? <Text text={statusLineText}/>
: fullscreenEnabled() ? <row>{" "}</row> // forced blank row in fullscreen
: null // collapses correctly in inline mode
fullscreenEnabled() returns false with CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1, and the row then correctly collapses — confirming the blank row is the explicit fullscreen branch.
What Should Happen?
Empty stdout should not reserve a row, in either rendering mode. Alternatively: a statusLine option like "hideWhenEmpty": true, or an event-driven intake for the status-line JSON payload that renders no UI (e.g. a hook event carrying the same fields).
Error Messages/Logs
None — no error is produced; the row is silently rendered blank.
Steps to Reproduce
- Set ~/.claude/settings.json:
``{ "statusLine": { "type": "command", "command": "/bin/true" } }``
- Launch claude in fullscreen mode (default in tmux).
- After the first status-line refresh, observe a blank row above the footer badges.
- Compare: CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 claude — no blank row.
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.220
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
WSL (Windows Subsystem for Linux)
Additional Information
Ran into this when moving status line into a tmux border to have better control over rendering animations and interactions
<img width="943" height="109" alt="Image" src="https://github.com/user-attachments/assets/2bd3405d-edba-49d0-b871-74ed8c3d3be8" />
https://github.com/user-attachments/assets/ad650dbf-e78a-44ce-a774-e78ff37418b2
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗