Loading lesson…
Settings.json is where the harness — not the model — gets configured. It is also where most surprises live, so understanding the layers saves debugging time.
Settings.json is the place to configure everything the model isn't deciding for itself: which permissions auto-approve, which env vars get exposed, which model the session defaults to, which hooks fire, which MCP servers connect. The model reads its own instructions; the harness reads settings.json.
| Layer | Path | Scope |
|---|---|---|
| User | ~/.claude/settings.json | All your sessions |
| Project | .claude/settings.json | Anyone in this repo |
| Local | .claude/settings.local.json | Just you, this repo (gitignored) |
{ "permissions": { "allow": [ "Bash(pnpm test:*)", "Bash(pnpm lint:*)", "Bash(git status)", "Bash(git diff:*)", "Read(**)" ], "deny": [ "Bash(git push --force:*)", "Bash(rm -rf:*)" ] } }Common permission setup. Allow the safe, repeated commands; explicitly deny the destructive ones.Settings.json can expose env vars to the harness — useful for things like alternate API keys or AI Gateway URLs. It can also override the default model for a project (handy when one repo wants Sonnet and another wants Opus). The override happens at the harness level, before the model ever sees the request.
The big idea: settings.json is the harness contract. Audit it like you audit credentials, layer it like you layer dotfiles.
8 questions · take it digitally for instant feedback at tendril.neural-forge.io/learn/quiz/end-claude-code-settings-creators
What is the main idea of "Settings.json: Permissions, Env Vars, Model Overrides"?
Which concept is most central to "Settings.json: Permissions, Env Vars, Model Overrides"?
Which use of AI fits this topic best?
What should a careful learner remember about "Project settings get committed"?
You want to use AI after this lesson. What is the safest next step?
How should AI output about settings.json be treated?
Name one way to verify an AI answer about settings.json.
Which action would help you apply "Settings.json: Permissions, Env Vars, Model Overrides" responsibly?