Claude managed-settings.json · Codex requirements.toml
Complete Settings File Builder for Admins
Architect admin-enforced, enterprise-grade security policies for Claude Code and OpenAI Codex — covering permissions, sandboxing, MCP server allowlists, telemetry, plugin lockdown, network controls, and more.
One-click download + steps to deploy to your tenant.
Not sure which controls fit your environment?
PromptArmor will design a hardened Claude Code and Codex policy for your use case.
Claude Code
managed-settings.jsonOnly managed permission rules
(Managed settings only) Prevent user and project settings from defining allow, ask, or deny permission rules. Only rules in managed settings apply. See Managed-only settings
allowManagedPermissionRulesOnlyOnly managed hooks
(Managed settings only) Only managed hooks, SDK hooks, and hooks from plugins force-enabled in managed settings enabledPlugins are loaded. User, project, and all other plugin hooks are blocked. See Hook configuration
allowManagedHooksOnlyOnly managed MCP servers
(Managed settings only) Only allowedMcpServers from managed settings are respected. deniedMcpServers still merges from all sources. Users can still add MCP servers, but only the admin-defined allowlist applies. See Managed MCP configuration
allowManagedMcpServersOnlyPlugin-only customization (block user skills/agents/hooks/MCP)
(Managed settings only) Block skills, agents, hooks, and MCP servers from user and project sources, so they can only come from plugins or managed settings. true locks all four surfaces; an array locks only the named ones. See strictPluginOnlyCustomization
strictPluginOnlyCustomizationDisable all hooks
Disable all hooks and any custom status line
disableAllHooksBlock startup until managed settings refresh
(Managed settings only) Block CLI startup until remote managed settings are freshly fetched from the server. If the fetch fails, the CLI exits rather than continuing with cached or no settings. When not set, startup continues without waiting for remote settings. See fail-closed enforcement
forceRemoteSettingsRefreshWSL inherits Windows managed settings
(Windows managed settings only) When true, Claude Code on WSL reads managed settings from the Windows policy chain in addition to /etc/claude-code, with Windows sources taking priority. Only honored when set in the HKLM registry key or C:\Program Files\ClaudeCode\managed-settings.json, both of which require Windows admin to write. For HKCU policy to also apply on WSL, the flag must additionally be set in HKCU itself. Has no effect on native Windows
wslInheritsWindowsSettingsParent settings behavior
(Managed settings only) Controls whether managed settings supplied programmatically by an embedding host process, such as the Agent SDK or an IDE extension, apply when an admin-deployed managed tier is also present. "first-wins": the parent-supplied settings are dropped and only the admin tier applies. "merge": the parent-supplied settings apply under the admin tier, filtered so they can tighten policy but not loosen it. Has no effect when no admin tier is deployed. Default: "first-wins". Requires Claude Code v2.1.133 or later
parentSettingsBehaviorAllowed MCP servers
When set in managed-settings.json, allowlist of MCP servers users can configure. Undefined = no restrictions, empty array = lockdown. Applies to all scopes. Denylist takes precedence. See Managed MCP configuration
allowedMcpServersDenied MCP servers
When set in managed-settings.json, denylist of MCP servers that are explicitly blocked. Applies to all scopes including managed servers. Denylist takes precedence over allowlist. See Managed MCP configuration
deniedMcpServersAuto-approve project .mcp.json servers
Automatically approve all MCP servers defined in project .mcp.json files
enableAllProjectMcpServersAllow claude.ai connectors alongside managed MCP
(Managed settings only) Load claude.ai connectors alongside a deployed managed-mcp.json, which otherwise takes exclusive control and suppresses them. See Managed MCP configuration
allowAllClaudeAiMcpsAllowed marketplaces (strict)
(Managed settings only) Allowlist of plugin marketplace sources. Undefined = no restrictions, empty array = lockdown. Enforced on marketplace add and on plugin install, update, refresh, and auto-update, so a marketplace added before the policy was set cannot be used to fetch plugins. See Managed marketplace restrictions
strictKnownMarketplacesBlocked marketplaces
(Managed settings only) Blocklist of marketplace sources. Enforced on marketplace add and on plugin install, update, refresh, and auto-update, so a marketplace added before the policy was set cannot be used to fetch plugins. Blocked sources are checked before downloading, so they never touch the filesystem. See Managed marketplace restrictions
blockedMarketplacesSuggestion marketplaces
(Managed settings only) Marketplace names whose plugins can appear as contextual install suggestions, in addition to the official marketplace. Suggestions come from each plugin's relevance declaration in its marketplace entry. A name only takes effect when the marketplace is registered on the machine and its registered source is also declared in managed settings, either as the extraKnownMarketplaces entry for that name or as an entry of strictKnownMarketplaces. A marketplace registered from a different source under an allowlisted name is ignored.
pluginSuggestionMarketplacesAllowed channel plugins
(Managed settings only) Allowlist of channel plugins that may push messages. Replaces the default Anthropic allowlist when set. Undefined = fall back to the default, empty array = block all channel plugins. Requires channelsEnabled: true. See Restrict which channel plugins can run
allowedChannelPluginsChannels for the org
(Managed settings only) Allow channels for the organization. On claude.ai Team and Enterprise plans, channels are blocked when this is unset or false. For Anthropic Console accounts using API key authentication, channels are allowed by default unless your organization deploys managed settings, in which case this key must be set to true
channelsEnabledPlugin trust message
(Managed settings only) Custom message appended to the plugin trust warning shown before installation. Use this to add organization-specific context, for example to confirm that plugins from your internal marketplace are vetted.
pluginTrustMessageEnable bash sandbox
Enable bash sandboxing (macOS, Linux, and WSL2). Default: false
sandbox.enabledFail startup if sandbox unavailable
Exit with an error at startup if sandbox.enabled is true but the sandbox cannot start (missing dependencies or unsupported platform). When false (default), a warning is shown and commands run unsandboxed. Intended for managed settings deployments that require sandboxing as a hard gate
sandbox.failIfUnavailableAuto-approve bash when sandboxed
Auto-approve bash commands when sandboxed. Default: true
sandbox.autoAllowBashIfSandboxedAllow unsandboxed commands
Allow commands to run outside the sandbox via the dangerouslyDisableSandbox parameter. When set to false, the dangerouslyDisableSandbox escape hatch is completely disabled and all commands must run sandboxed (or be in excludedCommands). Useful for enterprise policies that require strict sandboxing. Default: true
sandbox.allowUnsandboxedCommandsWeaker nested sandbox
Enable weaker sandbox for unprivileged Docker environments (Linux and WSL2 only). Reduces security. Default: false
sandbox.enableWeakerNestedSandboxWeaker network isolation
(macOS only) Allow access to the system TLS trust service (com.apple.trustd.agent) in the sandbox. Required for Go-based tools like gh, gcloud, and terraform to verify TLS certificates when using httpProxyPort with a MITM proxy and custom CA. Reduces security by opening a potential data exfiltration path. Default: false
sandbox.enableWeakerNetworkIsolationAllowed domains
Array of domains to allow for outbound network traffic. Supports wildcards (e.g., *.example.com).
sandbox.network.allowedDomainsDenied domains
Array of domains to block for outbound network traffic. Supports the same wildcard syntax as allowedDomains. Takes precedence over allowedDomains when both match. Merged from all settings sources regardless of allowManagedDomainsOnly.
sandbox.network.deniedDomainsOnly managed allowed-domains
(Managed settings only) Only allowedDomains and WebFetch(domain:...) allow rules from managed settings are respected. Domains from user, project, and local settings are ignored. Non-allowed domains are blocked automatically without prompting the user. Denied domains are still respected from all sources. Default: false
sandbox.network.allowManagedDomainsOnlyAllow localhost binding
Allow binding to localhost ports (macOS only). Default: false
sandbox.network.allowLocalBindingFilesystem deny-read
Paths where sandboxed commands cannot read. Arrays are merged across all settings scopes. Also merged with paths from Read(...) deny permission rules.
sandbox.filesystem.denyRead~/.ssh✕~/.aws✕~/.gnupg✕~/.config/gh✕
Filesystem allow-read
Paths to re-allow reading within denyRead regions. Takes precedence over denyRead. Arrays are merged across all settings scopes. Use this to create workspace-only read access patterns.
sandbox.filesystem.allowReadFilesystem deny-write
Paths where sandboxed commands cannot write. Arrays are merged across all settings scopes. Also merged with paths from Edit(...) deny permission rules.
sandbox.filesystem.denyWriteFilesystem allow-write
Additional paths where sandboxed commands can write. Arrays are merged across all settings scopes: user, project, and managed paths are combined, not replaced. Also merged with paths from Edit(...) allow permission rules. See path prefixes below.
sandbox.filesystem.allowWriteOnly managed read paths
(Managed settings only) Only filesystem.allowRead paths from managed settings are respected. denyRead still merges from all sources. Default: false
sandbox.filesystem.allowManagedReadPathsOnlyDefault permission mode
Default permission mode when opening Claude Code. Valid values: default, acceptEdits, plan, auto, dontAsk, bypassPermissions. As of Claude Code v2.1.142, auto is ignored when set in project or local settings (.claude/settings.json, .claude/settings.local.json) so a repository cannot grant itself auto mode. Set it in ~/.claude/settings.json instead. The --permission-mode CLI flag overrides this setting for a single session
permissions.defaultModeDisable bypassPermissions mode
Set to "disable" to prevent bypassPermissions mode from being activated. This disables the --dangerously-skip-permissions command-line flag. Typically placed in managed settings to enforce organizational policy, but works from any scope
permissions.disableBypassPermissionsModeDisable auto mode
Set to "disable" to prevent auto mode from being activated. Removes auto from the Shift+Tab cycle and rejects --permission-mode auto at startup. Most useful in managed settings where users cannot override it
permissions.disableAutoModeSkip dangerous-mode prompt
Skip the confirmation prompt shown before entering bypass permissions mode via --dangerously-skip-permissions or defaultMode: "bypassPermissions". Ignored when set in project settings (.claude/settings.json) to prevent untrusted repositories from auto-bypassing the prompt
skipDangerousModePermissionPromptDeny rules
Array of permission rules to deny tool use. Use this to exclude sensitive files from Claude Code access. See Permission rule syntax and Bash permission limitations
permissions.denyRead(.env)✕Read(.env.*)✕Read(**/.env)✕Read(**/.env.*)✕Read(**/secrets/**)✕Read(~/.ssh/**)✕Read(~/.aws/credentials)✕Read(~/.gnupg/**)✕Read(~/.config/gh/hosts.yml)✕Read(~/.npmrc)✕Read(**/.npmrc)✕Read(~/.netrc)✕Read(~/.pgpass)✕Read(~/.docker/config.json)✕Read(~/.kube/config)✕Read(~/.git-credentials)✕Read(~/.config/gcloud/**)✕Read(**/*.pem)✕Read(**/*.key)✕Read(**/id_rsa)✕Read(**/id_ed25519)✕Read(**/id_ecdsa)✕Read(**/*.tfvars)✕Read(~/.vault-token)✕Bash(nc *)✕Bash(ncat *)✕Bash(netcat *)✕Bash(telnet *)✕
Ask-first rules
Array of permission rules to ask for confirmation upon tool use. See Permission rule syntax below
permissions.askAllow rules
Array of permission rules to allow tool use. See Permission rule syntax below for pattern matching details
permissions.allowAdditional working directories
Additional working directories for file access. Most .claude/ configuration is not discovered from these directories
permissions.additionalDirectoriesDisable dynamic workflows
Disable dynamic workflows and the bundled workflow commands. Default: false. Equivalent to setting CLAUDE_CODE_DISABLE_WORKFLOWS to 1
disableWorkflowsDisable Remote Control
Disable Remote Control: blocks claude remote-control, the --remote-control flag, auto-start, and the in-session toggle. Typically placed in managed settings for per-device MDM enforcement, but works from any scope. Requires Claude Code v2.1.128 or later
disableRemoteControlDisable background agents / agent view
Set to true to turn off background agents and agent view: claude agents, --bg, /background, and the on-demand supervisor. Typically set in managed settings. Equivalent to setting CLAUDE_CODE_DISABLE_AGENT_VIEW to 1
disableAgentViewDisable claude-cli:// deep links
Set to "disable" to prevent Claude Code from registering the claude-cli:// protocol handler with the operating system on startup. Deep links let external tools open a Claude Code session with a pre-filled prompt. Useful in environments where protocol handler registration is restricted or managed separately
disableDeepLinkRegistrationDisable inline shell in skills
Disable inline shell execution for !... and ! blocks in skills and custom commands from user, project, plugin, or additional-directory sources. Commands are replaced with [shell command execution disabled by policy] instead of being run. Bundled and managed skills are not affected. Most useful in managed settings where users cannot override it
disableSkillShellExecutionSkip WebFetch domain safety check
Skip the WebFetch domain safety check that sends each requested hostname to api.anthropic.com before fetching. Set to true in environments that block traffic to Anthropic, such as Bedrock, Vertex AI, or Foundry deployments with restrictive egress. When skipped, WebFetch attempts any URL without consulting the blocklist
skipWebFetchPreflightForce login method
Use claudeai to restrict login to Claude.ai accounts, console to restrict login to Claude Console (API usage billing) accounts. When set in managed settings, sessions authenticated by API key, apiKeyHelper, or a third-party provider are blocked at startup, since neither value can be satisfied without first-party OAuth
forceLoginMethodRequired organization UUID
Require login to belong to a specific organization. Accepts a single UUID string, which also pre-selects that organization during login, or an array of UUIDs where any listed organization is accepted without pre-selection. When set in managed settings, login fails if the authenticated account does not belong to a listed organization, and sessions authenticated by API key, apiKeyHelper, or a third-party provider are blocked at startup since organization membership cannot be verified for them. An empty array fails closed and blocks login with a misconfiguration message
forceLoginOrgUUIDManaged CLAUDE.md instructions
(Managed settings only) CLAUDE.md-style instructions injected as organization-managed memory. Only honored when set in managed or policy settings and ignored in user, project, and local settings. See organization-wide CLAUDE.md
claudeMdStartup announcement
Announcement to display to users at startup. If multiple announcements are provided, they will be cycled through at random.
companyAnnouncementsHTTP proxy
Specify HTTP proxy server for network connections
env.HTTP_PROXYHTTPS proxy
Specify HTTPS proxy server for network connections
env.HTTPS_PROXYAnthropic base URL
Override the API endpoint to route requests through a proxy or gateway. When set to a non-first-party host, MCP tool search is disabled by default. Set ENABLE_TOOL_SEARCH=true if your proxy forwards tool_reference blocks
env.ANTHROPIC_BASE_URLUse Amazon Bedrock
Use Bedrock
env.CLAUDE_CODE_USE_BEDROCKUse Google Vertex
Use Vertex
env.CLAUDE_CODE_USE_VERTEXDefault model
Name of the model setting to use (see Model Configuration)
env.ANTHROPIC_MODELSmall/fast model
\[DEPRECATED] Name of Haiku-class model for background tasks
env.ANTHROPIC_SMALL_FAST_MODELModel override (setting)
Override the default model to use for Claude Code. --model and ANTHROPIC_MODEL override this for one session
modelSelectable models
Restrict which models users can select via /model, --model, or ANTHROPIC_MODEL. Does not affect the Default option. See Restrict model selection
availableModelsDisable all nonessential traffic
Equivalent of setting DISABLE_AUTOUPDATER, DISABLE_FEEDBACK_COMMAND, DISABLE_ERROR_REPORTING, and DISABLE_TELEMETRY
env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICDisable telemetry (Statsig)
Set to 1 to opt out of telemetry. Telemetry events do not include user data like code, file paths, or bash commands. Also disables feature-flag fetching with the same effect as DISABLE_GROWTHBOOK, so some flagged features may be unavailable
env.DISABLE_TELEMETRYDisable error reporting (Sentry)
Set to 1 to opt out of Sentry error reporting
env.DISABLE_ERROR_REPORTINGDisable the /feedback command
Set to 1 to disable the /feedback command. The older name DISABLE_BUG_COMMAND is also accepted
env.DISABLE_FEEDBACK_COMMANDDisable the auto-updater
Set to 1 to disable automatic background updates. Manual claude update still works. Use DISABLE_UPDATES to block both
env.DISABLE_AUTOUPDATERDisable session quality surveys
Set to 1 to disable the "How is Claude doing?" session quality surveys. Surveys are also disabled when DISABLE_TELEMETRY, DO_NOT_TRACK, or CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC is set, unless CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL opts back in. To set a sample rate instead of disabling outright, use the feedbackSurveyRate setting. See Session quality surveys
env.CLAUDE_CODE_DISABLE_FEEDBACK_SURVEYDisable cost warnings
Set to 1 to disable cost warning messages
env.DISABLE_COST_WARNINGSAuto-updates channel
Release channel to follow for updates. Use "stable" for a version that is typically about one week old and skips versions with major regressions, or "latest" (default) for the most recent release. To disable auto-updates entirely, set DISABLE_AUTOUPDATER in env
autoUpdatesChannelMinimum allowed version
Floor that prevents background auto-updates and claude update from installing a version below this one. Switching from the "latest" channel to "stable" via /config prompts you to stay on the current version or allow the downgrade. Choosing to stay sets this value. Also useful in managed settings to pin an organization-wide minimum
minimumVersionFeedback survey rate (0–1)
Probability (0–1) that the session quality survey appears when eligible. Set to 0 to suppress entirely, or set CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY in env. Useful when using Bedrock, Vertex, or Foundry where the default sample rate does not apply
feedbackSurveyRateCleanup period (days)
Session files older than this period are deleted at startup (default: 30 days, minimum 1). Setting to 0 is rejected with a validation error. Also controls the age cutoff for automatic removal of orphaned subagent worktrees at startup. To disable transcript writes entirely, set the CLAUDE_CODE_SKIP_PROMPT_HISTORY environment variable, or in non-interactive mode (-p) use the --no-session-persistence flag or the persistSession: false SDK option.
cleanupPeriodDaysInclude co-authored-by Claude
Deprecated: Use attribution instead. Whether to include the co-authored-by Claude byline in git commits and pull requests (default: true)
includeCoAuthoredByCommit attribution
Attribution for git commits, including any trailers. Empty string hides commit attribution
attribution.commitPR attribution
Attribution for pull request descriptions. Empty string hides pull request attribution
attribution.prInclude built-in git instructions
Include built-in commit and PR workflow instructions and the git status snapshot in Claude's system prompt (default: true). Set to false to remove both, for example when using your own git workflow skills. The CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS environment variable takes precedence over this setting when set
includeGitInstructionsScrub env from subprocesses
Set to 1 to strip Anthropic and cloud provider credentials from subprocess environments (Bash tool, hooks, MCP stdio servers). The parent Claude process keeps these credentials for API calls, but child processes cannot read them, reducing exposure to prompt injection attacks that attempt to exfiltrate secrets via shell expansion. On Linux, this also runs Bash subprocesses in an isolated PID namespace so they cannot read host process environments via /proc; as a side effect, ps, pgrep, and kill cannot see or signal host processes. claude-code-action sets this automatically when allowed_non_write_users is configured
env.CLAUDE_CODE_SUBPROCESS_ENV_SCRUBDisable background tasks
Set to 1 to disable all background task functionality, including the run_in_background parameter on Bash and subagent tools, auto-backgrounding, and the Ctrl+B shortcut
env.CLAUDE_CODE_DISABLE_BACKGROUND_TASKSDisable scheduled (cron) tasks
Set to 1 to disable scheduled tasks. The /loop skill and cron tools become unavailable and any already-scheduled tasks stop firing, including tasks that are already running mid-session
env.CLAUDE_CODE_DISABLE_CRONDisable experimental betas
Set to 1 to strip Anthropic-specific anthropic-beta request headers and beta tool-schema fields (such as defer_loading and eager_input_streaming) from API requests. Use this when a proxy gateway rejects requests with errors like "Unexpected value(s) for the anthropic-beta header" or "Extra inputs are not permitted". Standard fields (name, description, input_schema, cache_control) are preserved.
env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASDisable official marketplace auto-install
Set to 1 to skip automatic addition of the official plugin marketplace on first run
env.CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALLSkip IDE extension auto-install
Skip auto-installation of IDE extensions. Equivalent to setting autoInstallIdeExtension to false
env.CLAUDE_CODE_IDE_SKIP_AUTO_INSTALLEnforce MCP allowlist via env
Set to 1 to spawn stdio MCP servers with only a safe baseline environment plus the server's configured env, instead of inheriting your shell environment
env.CLAUDE_CODE_MCP_ALLOWLIST_ENVEnable OpenTelemetry export
Set to 1 to enable OpenTelemetry data collection for metrics and logging. Required before configuring OTel exporters. See Monitoring
env.CLAUDE_CODE_ENABLE_TELEMETRYOTEL metrics exporter
Metrics exporter types, comma-separated. Use none to disable
env.OTEL_METRICS_EXPORTEROTEL logs exporter
Logs/events exporter types, comma-separated. Use none to disable
env.OTEL_LOGS_EXPORTEROTEL protocol
Protocol for OTLP exporter, applies to all signals
env.OTEL_EXPORTER_OTLP_PROTOCOLOTEL collector endpoint
OTLP collector endpoint for all signals
env.OTEL_EXPORTER_OTLP_ENDPOINTOTEL auth headers
Authentication headers for OTLP
env.OTEL_EXPORTER_OTLP_HEADERSPlease populate after downloading
Log user prompts
Set to 1 to include user prompt text in OpenTelemetry traces and logs. Disabled by default (prompts are redacted). See Monitoring
env.OTEL_LOG_USER_PROMPTSLog tool details
Set to 1 to include tool input arguments, MCP server names, raw error strings on tool failures, and other tool details in OpenTelemetry traces and logs. Disabled by default to protect PII. See Monitoring
env.OTEL_LOG_TOOL_DETAILSLog tool content
Set to 1 to include tool input and output content in OpenTelemetry span events. Disabled by default to protect sensitive data. See Monitoring
env.OTEL_LOG_TOOL_CONTENTLog raw API bodies
Emit Anthropic Messages API request and response JSON as api_request_body / api_response_body log events. Set to 1 for inline bodies truncated at 60 KB, or file:<dir> to write untruncated bodies to disk and emit a body_ref path instead. Disabled by default; bodies include the entire conversation history. See Monitoring
env.OTEL_LOG_RAW_API_BODIESInclude session ID in metrics
Set to false to exclude session ID from metrics attributes (default: included). See Monitoring
env.OTEL_METRICS_INCLUDE_SESSION_IDInclude account UUID in metrics
Set to false to exclude account UUID from metrics attributes (default: included). See Monitoring
env.OTEL_METRICS_INCLUDE_ACCOUNT_UUIDmanaged-settings.json22 keys{
"allowManagedHooksOnly": true,
"allowManagedMcpServersOnly": true,
"allowManagedPermissionRulesOnly": true,
"allowedMcpServers": [],
"autoUpdatesChannel": "stable",
"channelsEnabled": false,
"cleanupPeriodDays": 30,
"deniedMcpServers": [],
"disableAllHooks": true,
"disableDeepLinkRegistration": "disable",
"disableSkillShellExecution": true,
"enableAllProjectMcpServers": false,
"env": {
"CLAUDE_CODE_DISABLE_BACKGROUND_TASKS": "1",
"CLAUDE_CODE_DISABLE_CRON": "1",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY": "1",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL": "1",
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL": "1",
"CLAUDE_CODE_MCP_ALLOWLIST_ENV": "1",
"CLAUDE_CODE_SUBPROCESS_ENV_SCRUB": "1",
"DISABLE_AUTOUPDATER": "1",
"DISABLE_ERROR_REPORTING": "1",
"DISABLE_TELEMETRY": "1",
"OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317",
"OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer YOUR_OTEL_AUTH_TOKEN",
"OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",
"OTEL_LOGS_EXPORTER": "otlp",
"OTEL_LOG_RAW_API_BODIES": "1",
"OTEL_LOG_TOOL_CONTENT": "1",
"OTEL_LOG_TOOL_DETAILS": "1",
"OTEL_LOG_USER_PROMPTS": "1",
"OTEL_METRICS_EXPORTER": "otlp",
"OTEL_METRICS_INCLUDE_ACCOUNT_UUID": "true",
"OTEL_METRICS_INCLUDE_SESSION_ID": "true"
},
"feedbackSurveyRate": 0,
"forceLoginMethod": "claudeai",
"forceLoginOrgUUID": "YOUR_ORG_UUID_HERE",
"forceRemoteSettingsRefresh": true,
"permissions": {
"deny": [
"Read(.env)",
"Read(.env.*)",
"Read(**/.env)",
"Read(**/.env.*)",
"Read(**/secrets/**)",
"Read(~/.ssh/**)",
"Read(~/.aws/credentials)",
"Read(~/.gnupg/**)",
"Read(~/.config/gh/hosts.yml)",
"Read(~/.npmrc)",
"Read(**/.npmrc)",
"Read(~/.netrc)",
"Read(~/.pgpass)",
"Read(~/.docker/config.json)",
"Read(~/.kube/config)",
"Read(~/.git-credentials)",
"Read(~/.config/gcloud/**)",
"Read(**/*.pem)",
"Read(**/*.key)",
"Read(**/id_rsa)",
"Read(**/id_ed25519)",
"Read(**/id_ecdsa)",
"Read(**/*.tfvars)",
"Read(~/.vault-token)",
"Bash(nc *)",
"Bash(ncat *)",
"Bash(netcat *)",
"Bash(telnet *)"
],
"disableAutoMode": "disable",
"disableBypassPermissionsMode": "disable"
},
"pluginTrustMessage": "Plugins must be approved by your organization before use.",
"sandbox": {
"allowUnsandboxedCommands": false,
"autoAllowBashIfSandboxed": false,
"enableWeakerNestedSandbox": false,
"enableWeakerNetworkIsolation": false,
"enabled": true,
"failIfUnavailable": true,
"filesystem": {
"allowManagedReadPathsOnly": true,
"allowRead": [],
"denyRead": [
"~/.ssh",
"~/.aws",
"~/.gnupg",
"~/.config/gh"
]
},
"network": {
"allowLocalBinding": false,
"allowManagedDomainsOnly": true,
"allowedDomains": []
}
},
"skipWebFetchPreflight": false,
"strictKnownMarketplaces": []
}Codex
requirements.tomlAllowed approval policies
Allowed values for approval_policy (for example untrusted, on-request, never, and granular).
allowed_approval_policiesAllowed reviewers
Allowed values for approvals_reviewer, such as user and auto_review.
allowed_approvals_reviewersAllowed sandbox modes
Allowed values for sandbox_mode.
allowed_sandbox_modesAllowed web-search modes
Allowed values for web_search (disabled, cached, live). disabled is always allowed; an empty list effectively allows only disabled.
allowed_web_search_modesAllowed MCP servers
Allowlist of MCP servers that may be enabled. Both the server name (<id>) and its identity must match for the MCP server to be enabled. Any configured MCP server not in the allowlist (or with a mismatched identity) is disabled.
mcp_serversBrowser Use / Browser Agent
Set to false in requirements.toml to disable Browser Use and Browser Agent availability.
features.browser_useComputer Use
Set to false in requirements.toml to disable Computer Use availability and related install or enablement flows.
features.computer_useIn-app browser pane
Set to false in requirements.toml to disable the in-app browser pane.
features.in_app_browserChatGPT Apps / connectors
Enable ChatGPT Apps/connectors support (experimental).
features.appsSandboxed networking
Enable sandboxed networking. Use a table form when setting network policy options such as domains (experimental; off by default).
features.network_proxyMulti-agent collaboration
Enable multi-agent collaboration tools (spawn_agent, send_input, resume_agent, wait_agent, and close_agent) (stable; on by default).
features.multi_agentLifecycle hooks
Enable lifecycle hooks loaded from hooks.json or inline [hooks] config. features.codex_hooks is a deprecated alias.
features.hooksMemories
Enable Memories (off by default).
features.memoriesCodex-generated git commits
Enable Codex-generated git commits. When enabled, Codex uses commit_attribution to append a Co-authored-by: trailer to generated commit messages.
features.codex_git_commitUndo support
Enable undo support (stable; off by default).
features.undoUnified exec tool
Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).
features.unified_execDefault shell tool
Enable the default shell tool for running commands (stable; on by default).
features.shell_toolShell environment snapshot
Snapshot shell environment to speed up repeated commands (stable; on by default).
features.shell_snapshotPersonality controls
Enable personality selection controls (stable; on by default).
features.personalityFast-tier model selection
Enable model-catalog service tier selection in the TUI, including Fast-tier commands when the active model advertises them (stable; on by default).
features.fast_modeSkill MCP dependency install
Allow prompting and installing missing MCP dependencies for skills (stable; on by default).
features.skill_mcp_dependency_installRequest compression
Compress streaming request bodies with zstd when supported (stable; on by default).
features.enable_request_compressionPrevent idle sleep
Prevent the machine from sleeping while a turn is actively running (experimental; off by default).
features.prevent_idle_sleepWeb search (legacy toggle)
Deprecated legacy toggle; prefer the top-level web_search setting.
features.web_searchEnable network requirements
Enable sandboxed networking requirements. This does not grant network access when the active sandbox keeps command networking off.
experimental_network.enabledAllowed domains
List-shaped administrator allow rules for sandboxed networking. Do not combine this with experimental_network.domains.
experimental_network.allowed_domainsDenied domains
List-shaped administrator deny rules for sandboxed networking. Do not combine this with experimental_network.domains.
experimental_network.denied_domainsOnly managed allow rules
When true, only administrator-managed allow rules remain effective while sandboxed networking requirements are active; user allowlist additions are ignored. Without managed allow rules, user-added domain allow rules do not remain effective.
experimental_network.managed_allowed_domains_onlyAllow local/private binding
Permit broader local/private-network access for sandboxed networking. Exact local IP literal or localhost allow rules can still permit specific local targets when this stays false.
experimental_network.allow_local_bindingAllow upstream proxy chaining
Allow sandboxed networking to chain through an upstream proxy from the environment.
experimental_network.allow_upstream_proxyHTTP listener port
Loopback HTTP listener port to use for [experimental_network] requirements.
experimental_network.http_portSOCKS5 listener port
Loopback SOCKS5 listener port to use for [experimental_network] requirements.
experimental_network.socks_portFilesystem deny-read
Admin-enforced filesystem read denials. Entries can be paths or glob patterns, and users cannot weaken them with local config.
permissions.filesystem.deny_read.env✕**/.env✕**.env.*✕
Command prefix rules
List of enforced prefix rules. Each rule must include pattern and decision.
rules.prefix_rulesOnly managed hooks
When true, Codex skips user, project, session, and plugin hooks while still allowing managed hooks from requirements.toml and other managed config layers.
allow_managed_hooks_onlyManaged hook directory (macOS/Linux)
Directory containing managed hook scripts on macOS and Linux. Codex validates that it is absolute and exists before loading managed hooks.
hooks.managed_dirManaged hook directory (Windows)
Directory containing managed hook scripts on Windows. Codex validates that it is absolute and exists before loading managed hooks.
hooks.windows_managed_dirGuardian review policy (Markdown)
Managed Markdown policy instructions for automatic review. This takes precedence over local [auto_review].policy. Blank values are ignored.
guardian_policy_configPlugin workspace sharing
Set to false in cloud-managed requirements.toml to disable workspace sharing for locally built plugins.
plugin_sharingrequirements.toml13 keysallowed_approval_policies = ["never"] allowed_approvals_reviewers = ["user"] allowed_sandbox_modes = ["read-only"] allowed_web_search_modes = ["disabled"] [features] browser_use = false computer_use = false in_app_browser = false apps = false memories = false skill_mcp_dependency_install = false [permissions.filesystem] deny_read = [".env", "**/.env", "**.env.*"]
Threat modeling for your environment
Understand the attack surface before you lock it down.