/plugin marketplace add nguyenthienthanh/aura-frog/plugin install aura-frog@aurafrogDefined in hooks/hooks.json
{
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "bash \"$HOME/.claude/plugins/marketplaces/aurafrog/aura-frog/hooks/stop-voice-notify.sh\" 2>&1 || true"
}
]
}
],
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "node \"$HOME/.claude/plugins/marketplaces/aurafrog/aura-frog/hooks/scout-block.cjs\" 2>&1 || true"
}
],
"matcher": "Bash|Read|Write|Edit|Glob|Grep"
},
{
"hooks": [
{
"type": "command",
"command": "if echo \"$CLAUDE_TOOL_INPUT\" | grep -qE '(rm -rf /|mkfs|dd if=|:(){|fork|shutdown|reboot|halt)'; then echo '⚠️ Blocked: Potentially destructive command detected' >&2; exit 2; fi"
}
],
"matcher": "Bash"
},
{
"hooks": [
{
"type": "command",
"command": "if [ ! -f .claude/project-contexts/*/project-config.yaml ]; then echo '💡 Reminder: Run project:init to create project context before generating code' >&2; fi"
},
{
"type": "command",
"command": "if echo \"$CLAUDE_FILE_PATHS\" | grep -qE '(\\.env$|\\.env\\.|credentials|secrets|tokens\\.json|api[_-]?keys)'; then if git ls-files --error-unmatch \"$CLAUDE_FILE_PATHS\" 2>/dev/null; then echo '🔒 Warning: This file may contain secrets and is tracked by git. Consider adding to .gitignore' >&2; fi; fi"
}
],
"matcher": "Write|Edit"
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "if [ -d .claude/logs/workflows ]; then echo \"[$(date '+%Y-%m-%d %H:%M:%S')] Bash: $CLAUDE_TOOL_INPUT\" >> .claude/logs/workflows/commands.log; fi"
}
],
"matcher": "Bash"
},
{
"hooks": [
{
"type": "command",
"command": "if [ -n \"$CLAUDE_FILE_PATHS\" ] && [ -f \"$CLAUDE_FILE_PATHS\" ]; then FILE_LINES=$(wc -l < \"$CLAUDE_FILE_PATHS\" 2>/dev/null || echo 0); if [ \"$FILE_LINES\" -gt 500 ]; then echo \"📄 Large file ($FILE_LINES lines). Consider using response-analyzer skill for chunked reading.\" >&2; fi; fi"
}
],
"matcher": "Read"
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "PLUGIN_DIR=\"$HOME/.claude/plugins/marketplaces/aurafrog/aura-frog\"; if [ -f \"$PLUGIN_DIR/scripts/voice-notify.sh\" ] && echo \"$CLAUDE_NOTIFICATION\" | grep -qiE '(error|critical|failed)'; then bash \"$PLUGIN_DIR/scripts/voice-notify.sh\" 'Alert: Please check the notification' 'error' 2>&1 || true; fi"
}
]
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "node \"$HOME/.claude/plugins/marketplaces/aurafrog/aura-frog/hooks/session-start.cjs\" 2>&1 || true"
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "node \"$HOME/.claude/plugins/marketplaces/aurafrog/aura-frog/hooks/prompt-reminder.cjs\" 2>&1 || true"
}
]
}
]
}{
"riskFlags": {
"touchesBash": true,
"matchAllTools": false,
"touchesFileWrites": true
},
"typeStats": {
"command": 10
},
"eventStats": {
"Stop": 1,
"PreToolUse": 4,
"PostToolUse": 2,
"Notification": 1,
"SessionStart": 1,
"UserPromptSubmit": 1
},
"originCounts": {
"absolutePaths": 0,
"pluginScripts": 0,
"projectScripts": 0
},
"timeoutStats": {
"commandsWithoutTimeout": 10
}
}