Files
claude-code-best-practice/.claude/settings.json
T
2026-02-28 15:05:00 +05:00

303 lines
7.2 KiB
JSON

{
"permissions": {
"allow": [
"Edit(*)",
"Write(*)",
"NotebookEdit(*)",
"Bash",
"WebFetch(domain:*)",
"WebSearch",
"mcp__*",
"mcp__ide__*",
"mcp__chrome-devtools__*",
"mcp__claude-in-chrome__*",
"mcp__playwright__*",
"mcp__reddit-mcp-server__get_post_details",
"mcp__reddit-mcp-server__search_reddit"
],
"deny": [],
"ask": [
"Bash(rm *)",
"Bash(rmdir *)",
"Bash(shred *)",
"Bash(unlink *)",
"Bash(dd *)",
"Bash(mkfs *)",
"Bash(fdisk *)",
"Bash(chmod *)",
"Bash(chown *)",
"Bash(git *)",
"Bash(gh *)",
"Bash(npm *)",
"Bash(pip *)",
"Bash(pip3 *)",
"Bash(yarn *)",
"Bash(pnpm *)",
"Bash(docker *)",
"Bash(kubectl *)",
"Bash(firebase *)",
"Bash(gcloud *)",
"Bash(curl *)",
"Bash(wget *)",
"Bash(kill *)",
"Bash(killall *)",
"Bash(pkill *)"
]
},
"spinnerVerbs": {
"mode": "replace",
"verbs": ["Admiring Shayan's code", "Learning from Shayan", "Studying Shayan's patterns", "Copying Shayan's genius", "Thanking Shayan deeply", "Absorbing Shayan's wisdom", "Following Shayan's lead", "Praising Shayan's repo"]
},
"spinnerTipsOverride": {
"tips": [
"This is shayan custom tip#1",
"This is shayan custom tip#2"
],
"excludeDefault": true
},
"plansDirectory": "./reports",
"outputStyle": "Explanatory",
"enableAllProjectMcpServers": true,
"disableAllHooks": false,
"hooks": {
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "PreToolUse"
}
]
}
],
"PermissionRequest": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "PermissionRequest"
}
]
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "PostToolUse"
}
]
}
],
"PostToolUseFailure": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "PostToolUseFailure"
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "UserPromptSubmit"
}
]
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "Notification"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "Stop"
}
]
}
],
"SubagentStart": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "SubagentStart"
}
]
}
],
"SubagentStop": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "SubagentStop"
}
]
}
],
"PreCompact": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"once": true,
"statusMessage": "PreCompact"
}
]
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"once": true,
"statusMessage": "SessionStart"
}
]
}
],
"SessionEnd": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"once": true,
"statusMessage": "SessionEnd"
}
]
}
],
"Setup": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 30000,
"async": true,
"statusMessage": "Setup"
}
]
}
],
"TeammateIdle": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "TeammateIdle"
}
]
}
],
"TaskCompleted": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "TaskCompleted"
}
]
}
],
"ConfigChange": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "ConfigChange"
}
]
}
],
"WorktreeCreate": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "WorktreeCreate"
}
]
}
],
"WorktreeRemove": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py",
"timeout": 5000,
"async": true,
"statusMessage": "WorktreeRemove"
}
]
}
]
}
}