claude-code - 💡(How to fix) Fix Startup banner renders 6+ times progressively on WSL - need quiet/minimal startup option [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#48436Fetched 2026-04-16 07:00:12
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
0
Author
Timeline (top)
labeled ×4commented ×1

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+.

Root Cause

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+.

Fix Action

Fix / Workaround

Workarounds Considered

  • CLAUDE_CODE_NO_FLICKER=1 fixes this but disables terminal scrollback, which is a dealbreaker for users who need to scroll up through conversation history
  • DISABLE_NON_ESSENTIAL_MODEL_CALLS=1 only removes tips, not the banner re-renders
RAW_BUFFERClick to expand / collapse

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

  1. Configure 10+ MCP servers and several hooks
  2. Launch claude in WSL terminal
  3. 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=1 fixes this but disables terminal scrollback, which is a dealbreaker for users who need to scroll up through conversation history
  • DISABLE_NON_ESSENTIAL_MODEL_CALLS=1 only 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.

extent analysis

TL;DR

Implement a setting to suppress banner re-renders during initialization, such as showStartupBanner: false or ui.minimalStartup: true, to render the banner only once.

Guidance

  • Investigate the rendering logic to identify where the banner is being re-rendered at each initialization phase and consider buffering the final state.
  • Review related issues #5474 and #2254 for potential insights into the rendering mechanism.
  • Consider implementing a flag or setting that allows users to opt-out of the banner re-renders, while preserving terminal scrollback functionality.
  • Test the proposed solution with varying numbers of MCP servers and hooks to ensure the banner renders correctly and only once.

Example

No code snippet is provided as the issue does not contain sufficient technical details to create a concrete example.

Notes

The proposed solution may require significant changes to the rendering logic, and careful consideration should be given to the user experience and potential edge cases.

Recommendation

Apply a workaround, such as implementing a custom setting to suppress banner re-renders, as upgrading to a fixed version is not mentioned in the issue. This approach allows for a targeted solution to the specific problem without introducing potential regressions.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING