[BUG] Custom status line wraps vertically when notification banner is present at >= 80 columns
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
What's Wrong?
When a notification banner (e.g. "Claude Code has switched from npm to native installer...") is displayed, custom status line content wraps character-by-character vertically instead of being truncated.
The notification banner and status line share the same row. The banner takes most of the row width (extending off-screen), while the status line gets rendered in a narrow remaining column. The status line text then wraps within that column.
Breakpoint at 80 columns:
- At 79 columns or fewer, the banner and status line render on separate rows — correct behavior
- At 80+ columns, they share a row and the status line wraps vertically
The built-in status line handles this gracefully. Custom status line output that is longer triggers the wrapping.
What Should Happen?
The status line content should be truncated from the right (with an ellipsis) to fit the available space when a notification banner is present, rather than wrapping character-by-character. This matches how the built-in status line behaves.
Related: #5430 (request to pass available width to status line scripts, closed as not planned) — if width were passed, scripts could self-truncate.
Steps to Reproduce
- Configure a custom status line in
~/.claude/settings.json:
``json``
{
"statusLine": {
"type": "command",
"command": "echo 'Opus 4.6 | 62.0K tok | 76% ctx left | 5-hour: 33% | 7-day: 91%'"
}
}
- Have a notification banner active (e.g. the "switched from npm to native installer" banner)
- Launch Claude Code with terminal width >= 80 columns
- Observe the status line wrapping vertically
Claude Model
Opus
Is this a regression?
I don't know
Claude Code Version
2.1.47 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal
Ghostty 1.2.3 (also reproduced in Terminal.app)
5 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Vertical wrapping (no room): <img width="747" height="866" alt="Image" src="https://github.com/user-attachments/assets/4194ecab-058d-4832-8756-679d96c67b58" />
Vertical wrapping (some room):
<img width="1398" height="551" alt="Image" src="https://github.com/user-attachments/assets/861c9fb4-eff9-423d-ad9a-f94bf504933d" />
No vertical wrapping (plenty of room):
<img width="1698" height="730" alt="Image" src="https://github.com/user-attachments/assets/8a452a5b-6486-4410-93f1-8e706a0015da" />
Correct behavior, narrow terminal, stacked layout:
<img width="639" height="404" alt="Image" src="https://github.com/user-attachments/assets/96342ff1-ea50-441f-8af3-41c1dfc12aa1" />
Closing as duplicate of #25466 — same bug, same 80-column threshold.
Workaround
Even though this is closed as a dupe, posting for anyone who lands here via search.
The notification banner causes the flex layout collision you identified. You can suppress it with an undocumented env var. Add to
~/.claude/settings.json:No banner = no row sharing = statusline renders correctly at any terminal width.
Found by reading the minified source. More detail in my comment on #23683.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.