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

  1. Configure a SessionStart hook that returns JSON with a systemMessage field:
{
  "continue": true,
  "systemMessage": "Session started successfully",
  "decision": "approve",
  "hookSpecificOutput": {
    "hookEventName": "SessionStart",
    "additionalContext": "some context"
  }
}
  1. Start a new Claude Code session
  2. Observe: no visual output from the hook, despite additionalContext being 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)

View original on GitHub ↗

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