Slow startup: showSetupScreens() takes ~3.1 seconds

Resolved 💬 3 comments Opened Jan 27, 2026 by DanielStormOutside Closed Mar 1, 2026

Description

showSetupScreens() takes ~3.1 seconds during startup, making it the single largest bottleneck in the initialization sequence. This blocks the first ink render and delays REPL readiness.

Debug Log Timeline

| Phase | Duration |
|---|---|
| Init (mTLS, agents, permissions) | 9ms |
| setup() | 9ms |
| Commands & agents loading | 44ms |
| showSetupScreens() | 3,112ms |
| MCP configs loading | 3,176ms (parallel) |
| First ink render | 3,460ms from process start |

Relevant Log Lines

[STARTUP] Running showSetupScreens()...
[render] initLayout starting
Layout engine: yoga
[render] initLayout complete
Layout engine: yoga
[render] first ink render: 304ms since process start
...
[STARTUP] showSetupScreens() completed in 3112ms

Everything before and after showSetupScreens() is fast (single-digit to double-digit ms). This single call accounts for the majority of perceived startup latency.

Environment

  • Claude Code version: 2.1.20
  • Platform: macOS (Darwin 25.2.0)

Expected Behavior

Startup should feel near-instant. Ideally showSetupScreens() should complete in under 500ms or be deferred/async so it doesn't block the REPL.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗