Defined in hooks/hooks.json
{
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/sound-hook-executor.js -HookType Stop",
"description": "Plays sound when agent stops responding (Node.js wrapper with lock mechanism)",
"suppressOutput": true,
"continueOnError": true
}
],
"enabled": true,
"priority": 50,
"description": "Play stop sound notification"
}
],
"PreCompact": [
{
"hooks": [
{
"type": "command",
"command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/sound-hook-executor.js -HookType PreCompact",
"description": "Plays sound before context compaction (Node.js wrapper with lock mechanism)",
"suppressOutput": true,
"continueOnError": true
}
],
"enabled": true,
"priority": 50,
"description": "Play pre-compact sound notification"
}
],
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/sound-hook-executor.js -HookType PreToolUse",
"description": "Plays sound before tool execution (Node.js wrapper with lock mechanism)",
"suppressOutput": true,
"continueOnError": true
}
],
"enabled": false,
"matcher": ".*",
"priority": 40,
"description": "Play pre-tool-use sound notification"
}
],
"SessionEnd": [
{
"hooks": [
{
"type": "command",
"command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/update-hooks-config.js",
"description": "Updates hooks.json based on user configuration",
"suppressOutput": true,
"continueOnError": true
}
],
"enabled": true,
"priority": 100,
"description": "Update hooks configuration for next session"
},
{
"hooks": [
{
"type": "command",
"command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/sound-hook-executor.js -HookType SessionEnd",
"description": "Plays sound when session ends (Node.js wrapper with lock mechanism)",
"suppressOutput": true,
"continueOnError": true
}
],
"enabled": true,
"priority": 50,
"description": "Play session end sound notification"
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/sound-hook-executor.js -HookType PostToolUse",
"description": "Plays sound after tool execution (Node.js wrapper with lock mechanism)",
"suppressOutput": true,
"continueOnError": true
}
],
"enabled": false,
"matcher": ".*",
"priority": 40,
"description": "Play post-tool-use sound notification"
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/sound-hook-executor.js -HookType Notification",
"description": "Plays sound when notification occurs (Node.js wrapper with lock mechanism)",
"suppressOutput": true,
"continueOnError": true
}
],
"enabled": true,
"priority": 100,
"description": "Play notification sound"
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/init-config.js",
"description": "Creates default configuration file if it doesn't exist",
"suppressOutput": true,
"continueOnError": true
}
],
"enabled": true,
"priority": 100,
"description": "Initialize plugin configuration at session start"
},
{
"hooks": [
{
"type": "command",
"command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/sound-hook-executor.js -HookType SessionStart",
"description": "Plays sound when session starts (Node.js wrapper with lock mechanism)",
"suppressOutput": true,
"continueOnError": true
}
],
"enabled": true,
"priority": 90,
"description": "Play session start sound notification"
}
],
"SubagentStop": [
{
"hooks": [
{
"type": "command",
"command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/sound-hook-executor.js -HookType SubagentStop",
"description": "Plays sound when subagent task completes (Node.js wrapper with lock mechanism)",
"suppressOutput": true,
"continueOnError": true
}
],
"enabled": false,
"priority": 50,
"description": "Play subagent stop sound notification"
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/sound-hook-executor.js -HookType UserPromptSubmit",
"description": "Plays sound when user submits a prompt (Node.js wrapper with lock mechanism)",
"suppressOutput": true,
"continueOnError": true
}
],
"enabled": true,
"priority": 50,
"description": "Play user prompt submit sound notification"
}
]
}{
"riskFlags": {
"touchesBash": false,
"matchAllTools": false,
"touchesFileWrites": false
},
"typeStats": {
"command": 11
},
"eventStats": {
"Stop": 1,
"PreCompact": 1,
"PreToolUse": 1,
"SessionEnd": 2,
"PostToolUse": 1,
"Notification": 1,
"SessionStart": 2,
"SubagentStop": 1,
"UserPromptSubmit": 1
},
"originCounts": {
"absolutePaths": 0,
"pluginScripts": 11,
"projectScripts": 0
},
"timeoutStats": {
"commandsWithoutTimeout": 11
}
}