Lesson

Organizing Personal and Project Settings in Claude Code

Split configuration into project-wide settings checked into Git and personal settings ignored by Git; understand how they merge.

Access
Included
Transcript
Needs source

Organizing Claude Code settings keeps the team aligned. Separate project rules from personal tweaks so the repo stays clean and flexible.

Ignore personal settings

Add to .gitignore:

.claude/settings.local.json

Personalize locally

Use the local file for machine-specific tweaks (paths, extra directories):

{
  "permissions": { "allow": [], "deny": [], "ask": [] },
  "additionalDirectories": ["/Users/you/dev/docs"]
}

Share team rules

Commit .claude/settings.json for org-wide policies (e.g., deny reading .env):

{
  "permissions": {
    "allow": [],
    "deny": ["Read(.env)"],
    "ask": []
  }
}

Merge semantics

Settings combine; they don’t override. A project-level deny cannot be undone by a local allow.