Startup banner renders 6+ times progressively on WSL - need quiet/minimal startup option
Description
On WSL2 (Windows Terminal), the Claude Code startup banner renders progressively 6+ times during initialization. Each loading phase (MCP server connections, hooks, CLAUDE.md files) triggers a full re-render of the logo/header, filling the terminal with duplicate banners before the prompt appears.
Previously this was 3 renders, but as more MCP servers and hooks were added, it grew to 6+.
Environment
- Claude Code v2.1.109
- WSL2 on Windows 11
- Windows Terminal
- 5 Slack MCP servers + github + gmail + notion + firecrawl + other MCPs (~20 total)
- Multiple hooks (SessionStart, PreToolUse, PostToolUse, etc.)
Steps to Reproduce
- Configure 10+ MCP servers and several hooks
- Launch
claudein WSL terminal - Watch the banner/header render 6+ times progressively before the prompt appears
Expected Behavior
Banner renders once (or at most twice), regardless of how many MCP servers/hooks are loading.
Actual Behavior
Banner re-renders with each initialization phase. More MCP servers = more re-renders. The terminal fills with 6+ copies of the logo before becoming interactive.
Workarounds Considered
CLAUDE_CODE_NO_FLICKER=1fixes this but disables terminal scrollback, which is a dealbreaker for users who need to scroll up through conversation historyDISABLE_NON_ESSENTIAL_MODEL_CALLS=1only removes tips, not the banner re-renders
Proposed Solution
A setting like showStartupBanner: false or ui.minimalStartup: true that renders the banner once and suppresses re-renders during loading phases. Related to #5474 and #2254.
The progressive rendering should buffer initialization and render the final state once, rather than re-rendering at each phase.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗