Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/VineeTagarwal-code/claude-code/llms.txt

Use this file to discover all available pages before exploring further.

Claude Code reads configuration from JSON settings files. Settings are layered: project-level settings override user-level settings, and managed (enterprise) settings override everything.

Settings file locations

~/.claude/settings.json
Applies to all Claude Code sessions on your machine.

Settings hierarchy

Settings are merged in the following order, from lowest to highest precedence:
  1. User settings~/.claude/settings.json
  2. Project settings.claude/settings.json
  3. Local settings.claude/settings.local.json
  4. CLI flag settings — passed via --settings flag
  5. Managed settings — set by enterprise administrators
When the same field appears in multiple files, the higher-precedence source wins. Arrays (such as permission allow and deny lists) are typically merged, not replaced.

Using the /config command

Run /config (or /settings) inside a Claude Code session to open the interactive settings panel. You can view the current effective settings and edit individual values without touching the JSON files directly.

Adding a JSON Schema

Add the $schema field to get autocompletion and validation in editors that support JSON Schema:
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json"
}

Settings reference

Authentication

apiKeyHelper
string
Path to a script that outputs authentication values. Use this instead of setting ANTHROPIC_API_KEY directly when you need dynamic key rotation or custom auth flows.
awsCredentialExport
string
Path to a script that exports AWS credentials for Bedrock usage.
awsAuthRefresh
string
Path to a script that refreshes AWS authentication.
gcpAuthRefresh
string
Command to refresh GCP authentication (for example, gcloud auth application-default login).

Model selection

model
string
Override the default model used by Claude Code. Accepts a full model ID such as claude-opus-4-6.
availableModels
string[]
Enterprise allowlist of models that users can select. Accepts family aliases ("opus" allows any opus version), version prefixes, or full model IDs. If unset, all models are available. If set to an empty array, only the default model is available.
effortLevel
"low" | "medium" | "high"
Persisted effort level for supported models. Controls how much extended thinking the model uses.

Permissions

permissions
object
Tool usage permissions configuration. See Permissions for full details.
{
  "permissions": {
    "allow": ["Bash(git *)", "Read"],
    "deny": ["Bash(rm -rf *)"],
    "defaultMode": "default"
  }
}

Hooks

hooks
object
Custom commands to run before or after tool executions. See Hooks for full details.
disableAllHooks
boolean
When true, disables all hook and status line execution.

MCP servers

mcpServers
object
MCP server configurations keyed by server name. See MCP Servers for full details.

Environment

env
object
Environment variables to set for all Claude Code sessions. Values are strings.
{
  "env": {
    "NODE_ENV": "development",
    "MY_API_BASE": "https://api.example.com"
  }
}
defaultShell
"bash" | "powershell"
Default shell for !-prefixed input commands. Defaults to bash on all platforms.

Appearance and behavior

outputStyle
string
Controls the output style for assistant responses.
language
string
Preferred language for Claude responses and voice dictation. For example: "japanese", "spanish".
syntaxHighlightingDisabled
boolean
When true, disables syntax highlighting in diffs.
prefersReducedMotion
boolean
Reduces or disables animations (spinner shimmer, flash effects, etc.) for accessibility.
spinnerTipsEnabled
boolean
Whether to show tips in the loading spinner.
spinnerVerbs
object
Customize spinner verbs. mode: "append" adds to defaults; mode: "replace" uses only your verbs.
{
  "spinnerVerbs": {
    "mode": "append",
    "verbs": ["Thinking", "Brewing"]
  }
}
alwaysThinkingEnabled
boolean
When false, extended thinking is disabled. When absent or true, thinking is enabled automatically for supported models.
fastMode
boolean
When true, enables fast mode (uses a smaller, faster model for responses).

Session and context

cleanupPeriodDays
number
Number of days to retain chat transcripts. Defaults to 30. Setting to 0 disables session persistence entirely: no transcripts are written and existing ones are deleted at startup.
respectGitignore
boolean
Whether the file picker respects .gitignore files. Defaults to true. Note: .ignore files are always respected regardless of this setting.
includeCoAuthoredBy
boolean
Deprecated. Use attribution instead. Whether to include Claude’s co-authored-by attribution in commits and PRs. Defaults to true.
attribution
object
Customize attribution text for commits and pull requests.
{
  "attribution": {
    "commit": "Co-Authored-By: Claude <noreply@anthropic.com>",
    "pr": ""
  }
}
Setting either field to an empty string hides that attribution entirely.
includeGitInstructions
boolean
Include built-in commit and PR workflow instructions in Claude’s system prompt. Defaults to true.

Auto-updates

autoUpdatesChannel
"latest" | "stable"
Release channel for automatic updates. "stable" receives fewer, more thoroughly tested updates. "latest" receives updates as soon as they are released.
minimumVersion
string
Minimum version to stay on. Prevents downgrades when switching to the stable channel.

Worktrees

worktree
object
Git worktree configuration for the --worktree flag.
{
  "worktree": {
    "symlinkDirectories": ["node_modules", ".cache"],
    "sparsePaths": ["packages/my-app", "packages/shared"]
  }
}
  • symlinkDirectories: Directories to symlink from the main repository into worktrees to avoid disk bloat. No directories are symlinked by default.
  • sparsePaths: Directories to include when creating worktrees via git sparse-checkout (cone mode). Dramatically faster in large monorepos.

Memory

autoMemoryEnabled
boolean
Enable auto-memory for this project. When false, Claude will not read from or write to the auto-memory directory.
autoMemoryDirectory
string
Custom directory path for auto-memory storage. Supports ~/ prefix for home directory expansion. When unset, defaults to ~/.claude/projects/<sanitized-cwd>/memory/.

Remote sessions

remote
object
Remote session configuration.
{
  "remote": {
    "defaultEnvironmentId": "my-env-id"
  }
}
sshConfigs
array
SSH connection configurations for remote environments. Typically set in managed settings by enterprise administrators.
{
  "sshConfigs": [
    {
      "id": "prod-server",
      "name": "Production Server",
      "sshHost": "user@prod.example.com",
      "sshPort": 22,
      "sshIdentityFile": "~/.ssh/id_ed25519",
      "startDirectory": "~/projects"
    }
  ]
}

Status line

statusLine
object
Custom status line display configuration.
{
  "statusLine": {
    "type": "command",
    "command": "git branch --show-current",
    "padding": 1
  }
}

File suggestions

fileSuggestion
object
Custom file suggestion configuration for @ mentions.
{
  "fileSuggestion": {
    "type": "command",
    "command": "fzf --filter"
  }
}

Plans directory

plansDirectory
string
Custom directory for plan files, relative to the project root. Defaults to ~/.claude/plans/.

Privacy and telemetry

skipWebFetchPreflight
boolean
Skip the WebFetch blocklist check. Use in enterprise environments with restrictive security policies that block Anthropic’s blocklist endpoint.
feedbackSurveyRate
number
Probability (0–1) that the session quality survey appears when eligible. For example, 0.05 means a 5% chance per eligible session.

Example settings files

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "env": {
    "EDITOR": "nvim"
  },
  "cleanupPeriodDays": 60,
  "autoUpdatesChannel": "stable",
  "permissions": {
    "allow": ["Read", "Bash(git *)"],
    "deny": []
  }
}
The $schema field enables autocompletion and inline validation in editors like VS Code and JetBrains IDEs when you open your settings file.

Enterprise managed settings

Enterprise administrators can push settings to all users through MDM, Group Policy, or a managed-settings file placed at the platform-specific managed path. Managed settings take the highest precedence and cannot be overridden by users or project settings. You can also place drop-in JSON files in a managed-settings.d/ directory alongside the main managed-settings.json file. Drop-ins are merged alphabetically on top of the base file, letting separate teams ship independent policy fragments without coordinating edits to a single file. Key enterprise-only fields include:
  • allowedMcpServers — allowlist of MCP servers users may add
  • deniedMcpServers — blocklist of MCP servers that are always blocked
  • availableModels — restricts which models users can select
  • allowManagedHooksOnly — only run hooks defined in managed settings
  • allowManagedPermissionRulesOnly — only use permission rules from managed settings
  • strictPluginOnlyCustomization — require customizations to come through approved plugins

Build docs developers (and LLMs) love