SessionStart hook systemMessage no longer rendered in terminal
Resolved 💬 6 comments Opened Mar 31, 2026 by joshwilhelmi Closed Jun 4, 2026
Description
The systemMessage field returned by a SessionStart hook is no longer displayed in the terminal. Previously it rendered as:
⎿ SessionStart:startup says:
Gobby Session ID: #4796 (4129ef90-...)
Agent: default
├─ Rules: 72
└─ Skills: 23
Now the hook executes successfully (exit 0, valid JSON with systemMessage field populated), but nothing is displayed. The additionalContext in hookSpecificOutput IS injected into the model context correctly — only the visual rendering of systemMessage is missing.
Steps to Reproduce
- Configure a SessionStart hook that returns JSON with a
systemMessagefield:
{
"continue": true,
"systemMessage": "Session started successfully",
"decision": "approve",
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"additionalContext": "some context"
}
}
- Start a new Claude Code session
- Observe: no visual output from the hook, despite
additionalContextbeing injected
Expected Behavior
systemMessage should be displayed in the terminal, as documented ("optional warning message shown to the user").
Environment
- Claude Code: 2.1.88
- OS: macOS (Darwin 25.3.0)
- Terminal: tmux
Related
- #9090 (SessionEnd hook systemMessage not displaying)
- #15344 (Display SessionStart hook systemMessage in VS Code extension)
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗