Skip to main content
This page holds three example 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
Each one is a plausible file for that reader, so you can see the shape and copy the parts you want. None of them is a recommended baseline. Every value comes from the key’s entry on the settings reference, which has its type, default, and where it can be set. Each example has two tabs. Copyable settings file is the file as you’d save it. What each key does is the same file with a comment above each key; Claude Code doesn’t accept comments in a settings file, so copy from the first tab.

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.
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 extraKnownMarketplaces entries 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.
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

A managed-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:
  • forceLoginMethod and forceLoginOrgUUID pin the login method and organization
  • availableModels and enforceAvailableModels restrict which models sessions can use
  • permissions.deny blocks two file reads and curl, and disableBypassPermissionsMode removes the bypass permission mode
  • allowManagedPermissionRulesOnly and allowManagedMcpServersOnly make the managed permission and MCP allowlists the only ones that apply
  • allowedMcpServers pins the MCP server by URL
  • strictKnownMarketplaces allows one plugin marketplace
  • sandbox sandboxes commands with a fixed network allowlist and no unsandboxed retry
  • requiredMinimumVersion sets a minimum Claude Code version
  • cleanupPeriodDays shortens retention of session transcripts and other local data to seven days
  • companyAnnouncements shows a message at startup
Administrators deploy a file like this as 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.
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