76 lines
2.1 KiB
JSON
76 lines
2.1 KiB
JSON
{
|
|
"allowedTools": [
|
|
"Bash(tmux *)",
|
|
"Bash(git worktree *)"
|
|
],
|
|
"enableAllProjectMcpServers": true,
|
|
"hooks": {
|
|
"PostToolUse": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"command": "HOOK=\"$(git rev-parse --show-toplevel 2>/dev/null)/.claude/hooks/post-edit-check.py\"; if [ -f \"$HOOK\" ]; then python3 \"$HOOK\"; else exit 0; fi",
|
|
"timeout": 5,
|
|
"type": "command"
|
|
}
|
|
],
|
|
"matcher": "Write|Edit"
|
|
},
|
|
{
|
|
"hooks": [
|
|
{
|
|
"command": "HOOK=\"$(git rev-parse --show-toplevel 2>/dev/null)/.claude/hooks/heartbeat.py\"; if [ -f \"$HOOK\" ]; then python3 \"$HOOK\"; else exit 0; fi",
|
|
"timeout": 3,
|
|
"type": "command"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PreToolUse": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"command": "HOOK=\"$(git rev-parse --show-toplevel 2>/dev/null)/.claude/hooks/pre-web-check.py\"; if [ -f \"$HOOK\" ]; then python3 \"$HOOK\"; else exit 0; fi",
|
|
"timeout": 5,
|
|
"type": "command"
|
|
}
|
|
],
|
|
"matcher": "WebFetch|WebSearch"
|
|
},
|
|
{
|
|
"hooks": [
|
|
{
|
|
"command": "HOOK=\"$(git rev-parse --show-toplevel 2>/dev/null)/.claude/hooks/work-check.py\"; if [ -f \"$HOOK\" ]; then python3 \"$HOOK\"; else exit 0; fi",
|
|
"timeout": 3,
|
|
"type": "command"
|
|
}
|
|
],
|
|
"matcher": "Write|Edit|Bash"
|
|
}
|
|
],
|
|
"SessionStart": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"command": "HOOK=\"$(git rev-parse --show-toplevel 2>/dev/null)/.claude/hooks/session-start.py\"; if [ -f \"$HOOK\" ]; then python3 \"$HOOK\"; else exit 0; fi",
|
|
"timeout": 10,
|
|
"type": "command"
|
|
}
|
|
],
|
|
"matcher": "startup|resume"
|
|
}
|
|
],
|
|
"UserPromptSubmit": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"command": "HOOK=\"$(git rev-parse --show-toplevel 2>/dev/null)/.claude/hooks/prompt-guard.py\"; if [ -f \"$HOOK\" ]; then python3 \"$HOOK\"; else exit 0; fi",
|
|
"timeout": 5,
|
|
"type": "command"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|