[BUG] duplicate for 69380 Plugin hooks.json does not register the MessageDisplay hook event (other events load fine)

Open 💬 0 comments Opened Jun 23, 2026 by pleasedodisturb

RE-ISSUE of https://github.com/anthropics/claude-code/issues/69380

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?

What happened
A plugin that declares a MessageDisplay hook in its hooks/hooks.json never gets that hook fired — even though every other hook event in the same manifest (UserPromptSubmit, PreToolUse, PostToolUse, Stop, PreCompact) loads and fires correctly. Moving the identical MessageDisplay entry into ~/.claude/settings.json makes it work immediately (no restart needed).

Steps to reproduce
Install a plugin whose hooks/hooks.json includes a MessageDisplay entry shaped exactly like its other (working) hook entries:
"MessageDisplay": [
{ "hooks": [ { "type": "command", "command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/message-display.js", "timeout": 10 } ] }
]
Use the VS Code extension panel.
The MessageDisplay hook never fires (no on-screen effect); the plugin's other hooks fire normally.
Move that same entry into ~/.claude/settings.json hooks → it fires immediately.
Expected
MessageDisplay should register from a plugin hooks.json like every other hook event.

Actual
Only MessageDisplay fails to wire from a plugin manifest; the byte-identical entry in settings.json works.

Environment
Claude Code 2.1.181, VS Code extension, Windows 11
Plugin installed via the plugins array in ~/.claude/settings.json (absolute path)
Reproduced by @Non-Dev-Contributor; plugin: pleasedodisturb/chronoclaude
On macOS, the plugin-loaded MessageDisplay does fire — so this may be Windows- or install-method-specific.
Notes
Surfaced while resolving https://github.com/anthropics/claude-code/issues/44763. The plugin's MessageDisplay entry is byte-identical in shape to its working UserPromptSubmit/Stop entries, so this looks like a loader gap for the MessageDisplay event type rather than a manifest error. Workaround for affected users is to register MessageDisplay directly in settings.json.

What Should Happen?

Hey, you shouldn't close bugs as duplicate of auto-closed bugs, please fix your github actions!!!!!

Error Messages/Logs

Steps to Reproduce

ugh

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

no

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗