Export & deploy
When your policy is ready, click Export in the editor toolbar. The export dialog offers three ways to deploy, each tailored to a different environment. Pick one and a step-by-step install guide appears — MDM and Install for me download the policy file for you, while Claude managed settings lets you copy the policy or download a versioned copy.
Exporting requires valid JSON. If the policy has a syntax error, the export options are disabled until you fix it in the JSON tab.
MDM
Deploy to your whole fleet through a device-management tool. Use the macOS / Windows / Linux toggle to pick your OS — each one downloads the right file and shows tailored instructions and providers.
Before (or as part of) deploying an MDM policy, make sure no stale Claude Code settings are left on the machine — otherwise the effective configuration may not match what you exported:
- Leftover local settings merge in. User and project settings sit in a lower tier than managed policy, but array-valued settings (such as
permissions.allow) are concatenated across scopes, not replaced. A~/.claude/settings.jsonleft behind from testing — for example one created by the Install for me option — can therefore add entries on top of your MDM policy. Remove these before rolling out:- macOS / Linux:
~/.claude/settings.json(and any project-level.claude/settings.json/.claude/settings.local.json) - Windows:
%USERPROFILE%\.claude\settings.json
- macOS / Linux:
- Only one managed source is used. Within the managed tier, precedence is server-managed → MDM/OS-level → file-based, and the tiers do not merge — only the highest one present applies. MDM outranks a file-based policy, so a previously deployed
managed-settings.jsonis ignored while the MDM profile is active. Remove it anyway to keep a single source of truth (and avoid it silently taking over if the MDM profile is later detached):- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json(and themanaged-settings.d/drop-in directory) - Linux:
/etc/claude-code/managed-settings.json - Windows:
C:\Program Files\ClaudeCode\managed-settings.json
- macOS:
After cleaning up, restart Claude Code so it re-reads the policy chain.
macOS — configuration profile
Downloads claude-code-policy.mobileconfig for MDM platforms (Jamf Pro, Kandji, Microsoft Intune, Mosyle, Addigy).
- Upload the
.mobileconfigto your MDM as a custom configuration profile. - Scope it to the device groups that should receive the policy.
- Push it — it applies on the next device check-in.
- Restart Claude Code on the device.
Windows — registry policy
Downloads claude-code-policy.reg for Windows Registry / Group Policy (GPO, Microsoft Intune, NinjaOne).
- Import the
.regintoHKEY_LOCAL_MACHINE, or push it via GPO / Intune. - Apply it to the target machines.
- Restart Claude Code on those machines.
Linux — managed settings file
Downloads managed-settings.json for file-based configuration-management tooling (Ansible, Puppet, Chef, SaltStack).
- Use your configuration-management tool to write
managed-settings.jsonto/etc/claude-code/managed-settings.jsonon each machine — that's the only path Claude Code reads managed settings from on Linux. - Restart Claude Code — managed settings load on startup.
Claude managed settings
Use the raw managed-settings.json policy directly — handy when you manage settings in source control or paste them into an existing managed-settings file. This option does not auto-download; instead it offers copy and an optional download.
- Copy the policy to your clipboard.
- Paste it into your Claude Code
managed-settings.json. - Restart Claude Code — it applies on startup.
Optionally, click Download to save a versioned copy of managed-settings.json for source control and change tracking.
Install for me
Downloads settings.json and walks you through a manual, per-machine install — handy for trying a policy out on your own machine before rolling it out org-wide.
- macOS / Linux: move
settings.jsonto~/.claude/settings.json(create the~/.claudefolder if it doesn't exist). - Windows: move
settings.jsonto%USERPROFILE%\.claude\settings.json. - To apply it to a single project instead, place it at
.claude/settings.jsonin that project's root. - Restart Claude Code — the settings apply automatically on startup.
After deploying
Managed settings are read by Claude Code at startup and override user and project settings. To update a policy, re-export it from the Policy Builder and redeploy through the same channel. For the full list of settings and their behavior, see the Claude Code settings reference.