[BUG] SessionEnd hook system message does not appear in the terminal screen

Resolved 💬 2 comments Opened Oct 7, 2025 by theahura Closed Oct 7, 2025

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

The documentation for hooks states:

All hook types can include these optional fields:

{
  "continue": true, // Whether Claude should continue after hook execution (default: true)
  "stopReason": "string", // Message shown when continue is false

  "suppressOutput": true, // Hide stdout from transcript mode (default: false)
  "systemMessage": "string" // Optional warning message shown to the user
}

Where systemMessage is a warning message shown to a user. The systemMessage does not output to the claude session. The documentation may be rather unclear about this; if this is WAI, it would be fantastic to have some kind of mechanism for every hook (but especially the SessionEnd hook) to output logs to the terminal itself.

What Should Happen?

If the systemMessage field is set, based on the documentation, the text in that field should show up on screen.

Error Messages/Logs

Steps to Reproduce

Create a hook that uses SessionEnd, that outputs to stdout a json like

{
  systemMessage: 'hello world'
}

Claude Model

Sonnet (default)

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.0.9

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

_No response_

View original on GitHub ↗

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