Add SessionReady hook event that fires after splash screen

Resolved 💬 3 comments Opened Dec 23, 2025 by spencerwasden Closed Feb 14, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

When I use SessionStart hooks to display session context (like loading a session-state.md file)...

.claude/hooks/report-progress.sh (triggered by SessionStart hook)

cat "$CLAUDE_PROJECT_DIR/.claude/session-state.md" > /dev/tty

...the output appears BEFORE the Claude Code splash/welcome banner, making it feel disconnected from the conversation.

Proposed Solution

Add a new hook event (e.g., SessionReady or PostSplash) that fires after the splash/welcome banner is displayed.

Ideal experience:

  1. Claude Code starts
  2. Splash banner displays
  3. SessionReady hook fires
  4. My session context appears BELOW the splash, as the first thing in the conversation

This would use the same hook configuration pattern:

{
"hooks": {
"SessionReady": [{
"matcher": "startup",
"hooks": [{
"type": "command",
"command": ".claude/hooks/report-progress.sh"
}]
}]
}
}

Alternatively, a timing option on SessionStart hooks (e.g., "timing": "post-splash") could work without adding a new event type.

Alternative Solutions

None. SessionStart is the only startup hook, and it always fires before the splash screen.

Priority

Medium - Would be very helpful

Feature Category

CLI commands and flags

Use Case Example

I maintain a session-state.md file that tracks what I was working on. When a significant amount of time passes since the last session (this could very well be the next morning), I need to be brought back up to speed on what we were working on, what we succeeded or struggled with last time, what we were planning for next time. A SessionStart hook can display this so Claude can greet me with context from last session—but because it appears before the splash, it's easy to miss.

Additional Context

Additionally, requiring > /dev/tty to display hook output to the terminal is non-obvious. A hook parameter like "output": "terminal" or "displayToUser": true would be more intuitive than expecting users to know about /dev/tty redirection.

View original on GitHub ↗

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