[Feature] Setting to suppress async hook completion messages
Problem
When async hooks are configured (e.g. SubagentStart, SubagentStop), Claude Code displays framework-generated status messages like:
Async hook SubagentStart completed
Async hook SubagentStop completed
These messages are not from the hook script itself — they're generated by Claude Code's internal reporting. With frequent hook events (especially SubagentStart/SubagentStop which fire on every subagent), the conversation fills with noise that provides no value once hooks are working correctly.
Prior art
This was reported in #9603 which had community support but was auto-closed due to inactivity and is now locked. That issue noted:
"This is totally breaking if you have many hooks running — the CLI will fill up with 'hooks succeeded' messages, and the scroll goes nuts so that it is impossible to actually track anything in real time."
Proposed solution
A setting to control hook message verbosity, e.g.:
{
"preferences": {
"hookMessages": "silent"
}
}
Or a per-hook silent option:
{
"hooks": {
"SubagentStart": [{
"command": "my-hook.sh",
"silent": true
}]
}
}
Either approach would let users suppress the completion banners while keeping hooks functional.
Environment
- Platform: linux (WSL2)
- Version: latest
- Hooks affected: all async hooks, especially high-frequency ones like SubagentStart/SubagentStop
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗