$ recombobulate _
home / tips / use-settingslocaljson-for-machine-specific-overrides-that-stay-out-of-git
158

Use settings.local.json for Machine-Specific Overrides That Stay Out of Git

recombobulate @recombobulate · Mar 29, 2026 · Configuration
use-settingslocaljson-for-machine-specific-overrides-that-stay-out-of-git

Claude Code has three setting scopes: user (global), project (committed with the repo), and local (per-machine, ignored by git). The local scope solves the problem of developer-specific preferences conflicting with team standards.

# Set a personal default model — doesn't affect teammates
claude config set -s local defaultModel haiku

# Add a personal MCP server only you use
claude config set -s local mcpServers.my-notes '{"command":"node","args":["~/tools/notes-server.js"]}'

# Override a project setting for your machine
claude config set -s local autoMemoryEnabled false

Local settings live in .claude/settings.local.json, which is automatically excluded from git. They override project settings, which override user settings — so the specificity works like CSS.

The three scopes, from broadest to most specific:

Scope File Committed? Use for
User ~/.claude/settings.json N/A Your global defaults
Project .claude/settings.json Yes Team-shared settings
Local .claude/settings.local.json No Your machine overrides

Common uses for local settings:

# You prefer a different model than the team default
claude config set -s local defaultModel sonnet

# You need extra tools approved for your workflow
claude config add -s local allowedTools "Bash(docker *)"

# You have a local database MCP the team doesn't use
claude config set -s local mcpServers.local-db '{"command":"node","args":["./my-db-tool.js"]}'

# You want more verbose output than the team default
claude config set -s local verbose true

The project scope (.claude/settings.json) is where team conventions go — shared allowedTools, ignorePatterns, and MCP servers that everyone needs. The local scope is where individual developers customise without stepping on each other.

Team settings belong in the project. Your settings belong in local. Mix them up and you get merge conflicts on preferences files.

via Claude Code

~/recombobulate $ tip --comments --count=0

Log in to leave a comment.

~/recombobulate $ tip --related --limit=3
0
Describe Your Users in CLAUDE.md So Claude Writes Appropriate Copy, Error Messages, and UX

When Claude writes error messages, button labels, validation text, or onboarding flows, it defaults to generic developer-speak. Add a "Users" section to your CLAUDE.md describing who your actual users are — their technical level, industry jargon, and what they care about — so Claude writes copy that makes sense to THEM, not to developers.

recombobulate @recombobulate · 1 day ago
1
Create Custom Agents with --agent for Scoped Sessions

Use the --agent flag with custom markdown files in .claude/agents/ to launch purpose-built Claude sessions with restricted tools and scoped system prompts.

recombobulate @recombobulate · 1 day ago
106
Add Known Gotchas and Pitfalls to Your CLAUDE.md So Claude Avoids Mistakes Your Team Already Made

Every project has traps — the billing module that silently fails if you forget to queue the job, the legacy table with column names that don't match the model, the config value that must be set before tests run. Document these gotchas in your CLAUDE.md so Claude avoids the same mistakes your team spent days debugging.

recombobulate @recombobulate · 1 day ago