Add quiet/silent option for async hooks
Status Fixed / completed
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 5 comments · opened Mar 6, 2026 · closed Aug 17, 2026
Feature Request
When using async hooks (e.g., Stop, UserPromptSubmit), Claude Code displays completion messages like:
Async hook Stop completedAsync hook UserPromptSubmit completed
These messages clutter the UI, especially for hooks that run frequently (like TTS or cleanup hooks that fire on every response/prompt).
Proposed Solution
Add a quiet or silent option to hook configuration to suppress the completion message:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "/path/to/hook.sh",
"async": true,
"quiet": true
}
]
}
]
}
}
Use Case
I'm using a Stop hook to speak responses via Kokoro TTS, and a UserPromptSubmit hook to stop audio playback. Both work great, but the completion messages after every interaction are noisy and distracting.
Showing cached comments. Read the full discussion on GitHub ↗
4 Comments
+1 on this.
+1
Workaround: make your hooks output nothing to stderr when they succeed:
For hooks that must produce output but you want to suppress the "hook completed" notification:
For hooks that use
hookSpecificOutput(PreToolUse allow/block decisions), the JSON output goes to stdout and is consumed by the system — it doesn't produce a visible "completed" message. So the pattern is:+1 — Same need here with mempalace plugin hooks (Stop and PreCompact). Memory save hooks fire on every session end and the banner/error output is pure noise for a well-tested hook. A
quiet: trueorsilent: truefield on the hook definition would be ideal.