Skip to main content
Claude Code reads configuration from settings.json files at two levels: a global user file and a project-local file. Settings cascade from global → project → local, with CLI flags taking highest precedence.

File locations

Project settings (.claude/settings.json) are committed to source control and shared with your team. Use .claude/settings.local.json for personal or machine-specific overrides that should not be committed.

Precedence order

When a field appears in multiple files, the higher-precedence value wins. Arrays (such as permission rules) merge across sources rather than override.

Settings schema

The full schema is defined in src/utils/settings/types.ts. All fields are optional.

Permissions

Model

Hooks

See Hooks for the full hooks reference.

MCP servers

Memory

Session and display

Authentication helpers

Worktrees

Attribution

Enterprise controls

Example settings.json

/config slash command

Run /config inside Claude Code to open the interactive settings editor. It provides a UI for viewing and modifying your current settings without editing JSON directly. The editor shows which settings file each value comes from (User, Project, or Local) and lets you add permission rules and toggle options interactively.