settings.json files, one for each place you save a setting:
- A developer’s
~/.claude/settings.json - A team’s
.claude/settings.json, committed to the repository - An organization’s
managed-settings.json
Your own settings
One developer’s personal settings. It picks a model and effort, adjusts the terminal, and pre-approves a read-only command and one file read. Everything not listed keeps its default. A file like this goes in~/.claude/settings.json, where it applies to every project you open.
- Copyable settings file
- What each key does
Save this as
~/.claude/settings.json. It’s valid JSON with no comments, so you can paste it as is and delete the keys you don’t want.~/.claude/settings.json
A team’s shared settings
One team’s shared settings, committed to the repository so everyone who clones it gets the same permissions, hooks, telemetry, and plugin marketplace. Save a file like this at.claude/settings.json at the top of the repository. Three things to know before you commit one:
- Cloud sessions read it too. A cloud session on Claude Code on the web starts from a clone of the repository, so the committed file applies there as well.
- Allow rules wait for trust. Allow rules and
extraKnownMarketplacesentries take effect after each person trusts this folder itself, not only a parent folder; deny and ask rules apply in every session, trusted or not. - The hook is a script in the repo. This file’s hook runs
.claude/hooks/block-rm.sh; How a hook resolves walks through writing it.
- Copyable settings file
- What each key does
Save this as
.claude/settings.json at the top of the repository and commit it. It’s valid JSON with no comments, so you can paste it as is and delete the keys you don’t want..claude/settings.json
An organization’s managed settings
Amanaged-settings.json file that shows the shape of the managed keys, with one plausible value for each. It isn’t a recommended policy: pick the keys that match your own requirements and set your own values. The example sets these keys:
forceLoginMethodandforceLoginOrgUUIDpin the login method and organizationavailableModelsandenforceAvailableModelsrestrict which models sessions can usepermissions.denyblocks two file reads andcurl, anddisableBypassPermissionsModeremoves the bypass permission modeallowManagedPermissionRulesOnlyandallowManagedMcpServersOnlymake the managed permission and MCP allowlists the only ones that applyallowedMcpServerspins the MCP server by URLstrictKnownMarketplacesallows one plugin marketplacesandboxsandboxes commands with a fixed network allowlist and no unsandboxed retryrequiredMinimumVersionsets a minimum Claude Code versioncleanupPeriodDaysshortens retention of session transcripts and other local data to seven dayscompanyAnnouncementsshows a message at startup
managed-settings.json, or the same JSON through MDM or server-managed settings. One deployed file applies to every machine or account it reaches. To give a group different values, deploy a different file or profile to that group, since server-managed settings don’t support per-group policy yet.
- Copyable settings file
- What each key does
Deploy this as
managed-settings.json, or the same JSON through MDM or the claude.ai console. It’s valid JSON with no comments; replace the example organization UUID, server URL, and marketplace with your own and delete the keys you don’t want.managed-settings.json