tools//Claude Code//.claude//settings
Claude Code's settings are the JSON files that control what the agent is allowed to do (its permissions) and which automations run (its hooks). Two of them live in the project: a shared one committed to git and a personal one kept out of it, which merges on top of the shared one.
Claude Code's settings are the JSON files that control what the agent is allowed to do (its permissions) and which automations run (its hooks). Two of them live in the project: a shared one committed to git and a personal one kept out of it, which merges on top of the shared one.
.claude/settings.jsonShared (committed to git): team-wide permissions and hooks config.
.claude/settings.local.jsonPersonal (gitignored): local permission overrides and machine-specific paths.
Permissionsallow and deny arrays of tool patterns (e.g. "Bash(git commit:*)", "Bash(npm run:*)").
HooksEvent-to-script mappings. Each event has an array of matchers pointing to scripts in .claude/hooks/.
Precedence runs from the highest to the lowest: managed (organization) settings, CLI arguments, settings.local.json, settings.json, and last the user's ~/.claude/settings.json.
A personal note26 · mar 10Read notechanged permissions to allow grep, sudo, apt, and background agents without prompting. the more you let claude run autonomously, the fewer context switches you eat. you can alt+tab between terminals, sure, but once you have half a dozen projects open the cognitive overhead of approving every bash command stops being caution and starts being drag. the productivity scaling only kicks in when the agent can actually move without you babysitting every step. hole in the sun.