{ "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__search_reddit", "mcp__reddit-mcp-server__get_post_details", "mcp__tavily-web-search__tavily_search", "mcp__tavily-web-search__tavily_extract", "WebFetch(domain:api.open-meteo.com)", "WebFetch(domain:raw.githubusercontent.com)", "WebFetch(domain:docs.anthropic.com)", "WebFetch(domain:support.claude.com)", "WebFetch(domain:github.com)", "WebFetch(domain:api.github.com)", "WebFetch(domain:json.schemastore.org)", "WebFetch(domain:claudelog.com)", "WebFetch(domain:www.eesel.ai)", "WebFetch(domain:shipyard.build)" ], "deny": [], "ask": [ "Bash(rm *)", "Bash(rmdir *)", "Bash(shred *)", "Bash(unlink *)", "Bash(dd *)", "Bash(mkfs *)", "Bash(fdisk *)", "Bash(chmod *)", "Bash(chown *)", "Bash(git *)", "Bash(npm *)", "Bash(pip *)", "Bash(pip3 *)", "Bash(yarn *)", "Bash(pnpm *)", "Bash(docker *)", "Bash(kubectl *)", "Bash(firebase *)", "Bash(gcloud *)", "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", "statusLine": { "type": "command", "command": "echo \"shayan's best practice status line\"", "padding": 0 }, "attribution": { "commit": "Co-Authored-By: Claude ", "pr": "Generated with [Claude Code](https://claude.ai/code)" }, "spinnerTipsEnabled": true, "respectGitignore": true, "env": { "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80" }, "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" } ] } ], "PostCompact": [ { "hooks": [ { "type": "command", "command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py", "timeout": 5000, "async": true, "statusMessage": "PostCompact" } ] } ], "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" } ] } ], "InstructionsLoaded": [ { "hooks": [ { "type": "command", "command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py", "timeout": 5000, "async": true, "statusMessage": "InstructionsLoaded" } ] } ], "Elicitation": [ { "hooks": [ { "type": "command", "command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py", "timeout": 5000, "async": true, "statusMessage": "Elicitation" } ] } ], "ElicitationResult": [ { "hooks": [ { "type": "command", "command": "python3 ${CLAUDE_PROJECT_DIR}/.claude/hooks/scripts/hooks.py", "timeout": 5000, "async": true, "statusMessage": "ElicitationResult" } ] } ] } }