Appearance
Claude Code Settings
Configure Claude Code behavior via ~/.claude/settings.json.
Config File Locations
- User-level (all projects):
~/.claude/settings.json - Project-level (shared with team):
.claude/settings.jsonin repo root - Local overrides (gitignored):
.claude/settings.local.jsonin repo root - Managed (admin-enforced, macOS):
/Library/Application Support/ClaudeCode/managed-settings.json
Settings merge across levels. More specific levels override less specific ones. Managed settings always take precedence.
Model
Override the default model for all sessions.
json
{
"model": "opus"
}Accepts aliases (opus, sonnet, haiku) or full model IDs (claude-opus-4-6, claude-sonnet-4-6, claude-haiku-4-5-20251001). Aliases track the latest version of each model family.
Override per-session with /model sonnet or via claude --model sonnet.
Recommended model
opusDefault Mode
Set the default permission mode for new sessions.
json
{
"permissions": {
"defaultMode": "auto"
}
}Accepts default (prompt for non-allowlisted commands), auto (continuous, autonomous execution — proceed on low-risk work without prompting), acceptEdits (auto-accept file edits), plan (plan mode), or bypassPermissions (skip all permission prompts).
Override per-session via the UI mode toggle.
Recommended default mode
autoPermissions
Sync Settings
Sync the recommended settings above to the user's machine. Follow this procedure exactly.
1. Compare
Read ~/.claude/settings.json. Compare each local value to the recommended value above:
- top-level
modelvs. recommended model string permissions.defaultModevs. recommended default mode string
2. Act based on the comparison
Apply this logic to each setting independently.
Already in sync — Local value matches the recommended. Tell the user.
Different or missing — Show the user current and recommended values. Ask whether to update. Apply if confirmed.
3. Preserve other settings
When writing ~/.claude/settings.json, only modify the keys covered above (model and permissions.defaultMode). Preserve all other keys (permissions.allow, permissions.ask, permissions.deny, statusLine, skipDangerousModePermissionPrompt, etc.) and use 2-space JSON indentation.