Install
1
Install the plugin$
npx claudepluginhub signalcompose/cviWant just this hook?
Then install: npx claudepluginhub u/[userId]/[slug]
Source
Defined in hooks/hooks.json
Configuration
{
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/check-speak-called.sh",
"timeout": 5000
}
],
"matcher": ""
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/notify-input.sh",
"timeout": 30000
}
],
"matcher": ""
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/check-dependencies.sh",
"timeout": 5000
},
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/cleanup-stale-locks.sh",
"timeout": 5000
},
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/inject-cvi-context.sh",
"timeout": 5000
}
],
"matcher": ""
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/kill-voice.sh",
"timeout": 5000
},
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/enforce-cvi-rules.sh",
"timeout": 5000
}
],
"matcher": ""
}
]
}Summary
{
"riskFlags": {
"touchesBash": false,
"matchAllTools": false,
"touchesFileWrites": false
},
"typeStats": {
"command": 7
},
"eventStats": {
"Stop": 1,
"Notification": 1,
"SessionStart": 3,
"UserPromptSubmit": 2
},
"originCounts": {
"absolutePaths": 0,
"pluginScripts": 7,
"projectScripts": 0
},
"timeoutStats": {
"commandsWithoutTimeout": 0
}
}Stats
Stars0
Forks0
Last CommitFeb 11, 2026