Все параметры
Полный справочник по каждому ключу settings.json в Claude Code: где находится каждый ключ, его тип и значение по умолчанию, а также готовый к использованию пример и индекс всех ключей.
На этой справочной странице перечислены все ключи, которые Claude Code читает из файла параметров, а также небольшая группа ключей, которые он хранит в ~/.claude.json. Чтобы выбрать файл или проверить приоритет, начните с Settings files and precedence.
Индекс настроек
Каждый ключ ниже ссылается на его запись. Область действия указывает файлы, в которых он может находиться: User — это ~/.claude/settings.json, Project — это .claude/settings.json, Local — это .claude/settings.local.json, а Managed — это то, что развёртывает ваша организация. Any file означает все четыре, а Global config означает ~/.claude.json.
| Key | Description | Topic | Scope |
|---|---|---|---|
advisorModel |
Выберите, какая модель отвечает, когда Claude использует инструмент советника | Model and responses | Any file |
agent |
Начинайте каждую сессию как именованный субагент с его промптом, инструментами и моделью | Agents, sessions, and worktrees | Any file |
agentPushNotifEnabled |
Позвольте Claude отправить push-уведомление на ваш телефон, когда он решит это сделать | Remote, desktop, and notifications | Any file |
allowAllClaudeAiMcps |
Загружайте коннекторы claude.ai, которые Claude Code получает сам, наряду с развёрнутым managed-mcp.json |
MCP | Managed |
allowClaudeInChromeWithManagedMcp |
Позвольте встроенному серверу Claude in Chrome работать наряду с развёрнутым managed-mcp.json |
MCP | Managed |
allowedChannelPlugins |
Замените список разрешённых по умолчанию плагинов каналов, которые могут отправлять сообщения | Plugins and skills | Managed |
allowedHttpHookUrls |
Ограничьте, какие URL-адреса могут использовать HTTP-хуки | Hooks and automation | Any file |
allowedMcpServers |
Создайте список разрешённых MCP-серверов, которые могут добавлять пользователи | MCP | Any file |
allowedProviders |
Ограничьте, какие поставщики API может использовать машина | Authentication and providers | Managed |
allowManagedHooksOnly |
Запускайте только хуки, которые развёртывает ваша организация | Hooks and automation | Managed |
allowManagedMcpServersOnly |
Сделайте управляемый список разрешённых серверов MCP единственным применяемым | MCP | Managed |
allowManagedPermissionRulesOnly |
Сделайте управляемые настройки единственным источником настроек для правил разрешений | Permission settings | Managed |
alwaysThinkingEnabled |
Отключите расширенное мышление для каждой сессии | Model and responses | Any file |
apiKeyHelper |
Создайте учётные данные API с помощью вашей собственной команды | Authentication and providers | Any file |
askUserQuestionTimeout |
Позвольте неотвеченному вопросу автоматически продолжиться после времени простоя | Interface and terminal | User or managed |
appendPlugins |
Запускайте моды вашей организации после каждого мода, который устанавливает пользователь | Plugins and skills | User or managed |
attribution |
Настройте атрибуцию, которую Claude Code добавляет к коммитам и pull request'ам | Git and attribution | Any file |
attribution.commit |
Измените или скройте трейлер, который Claude Code добавляет к коммитам | Git and attribution | Any file |
attribution.pr |
Измените или скройте строку атрибуции в описаниях pull request'ов | Git and attribution | Any file |
attribution.sessionUrl |
Опустите ссылку на сессию claude.ai из облачных и Remote Control коммитов | Git and attribution | Any file |
autoCompactEnabled |
Отключите или включите автоматическое сжатие контекста | Memory and context | Any file |
autoCompactWindow |
Установите, насколько заполненным становится контекст перед тем, как Claude Code сжимает его | Memory and context | Any file |
autoConnectIde |
Автоматически подключайтесь к работающей VS Code или JetBrains IDE из внешнего терминала | Global config settings | Global config |
autoContinueAtUsageLimit |
Ждите в открытой сессии и автоматически продолжайте задачу после сброса лимита использования claude.ai | Interface and terminal | User or managed |
autoInstallIdeExtension |
Отключите автоматическую установку расширения IDE из терминала VS Code | Global config settings | Global config |
autoMemoryDirectory |
Сохраняйте автоматическую память в выбранном вами каталоге | Memory and context | Any file |
autoMemoryEnabled |
Отключите или включите автоматическую память | Memory and context | Any file |
autoMode |
Добавьте свои собственные правила разрешения и запрета к классификатору авторежима | Permission settings | User or managed |
autoMode.classifyAllShell |
Отправляйте каждую shell-команду через классификатор авторежима, даже те, которые соответствуют узкому правилу разрешения | Permission settings | User or managed |
autoScrollEnabled |
Следите за новым выводом в нижней части при полноэкранном отображении | Interface and terminal | Any file |
autoUpdatesChannel |
Следуйте стабильному каналу выпуска вместо последнего | Updates and versioning | Any file |
availableModels |
Ограничьте, какие модели люди могут выбирать | Model and responses | Any file |
availableModelsMatch |
Сделайте каждую запись ID модели availableModels разрешающей только версию, которую она называет |
Model and responses | Managed |
awaySummaryEnabled |
Отключите краткое описание сессии, показываемое при возврате к терминалу | Remote, desktop, and notifications | Any file |
awsAuthRefresh |
Обновляйте истёкшие учётные данные Bedrock в .aws с помощью вашей собственной команды |
Authentication and providers | Any file |
awsCredentialExport |
Предоставляйте учётные данные Bedrock как JSON из вашей собственной команды | Authentication and providers | Any file |
axScreenReader |
Отображайте вывод, удобный для программ чтения с экрана | Interface and terminal | User or managed |
bashEditDiffEnabled |
Записывайте файлы, которые изменились во время выполнения команды Bash в каждом режиме разрешений | Interface and terminal | User or managed |
bashOutputMaxChars |
Установите, сколько вывода успешной команды Claude получает встроенным образом | Memory and context | Any file |
blockedMarketplaces |
Блокируйте источники маркетплейса плагинов для вашей организации | Plugins and skills | Managed |
browserExternalPageTools |
Отключите инструменты Claude на внешних страницах в настольной панели Browser | Tools | Managed |
channelsEnabled |
Разрешите каналы для вашей организации | Plugins and skills | Managed |
claudeInChromeDefaultEnabled |
Включайте интеграцию с Chrome при запуске сессии в интерактивном CLI и расширении VS Code | Global config settings | Global config |
claudeMd |
Внедрите организационные инструкции CLAUDE.md из управляемых настроек | Memory and context | Managed |
claudeMdExcludes |
Пропускайте определённые файлы CLAUDE.md при загрузке памяти | Memory and context | Any file |
cleanupPeriodDays |
Выберите, сколько дней Claude Code хранит транскрипты перед их удалением | Privacy and telemetry | Any file |
companyAnnouncements |
Показывайте объявления вашей организации при запуске | Interface and terminal | Any file |
copyFullResponse |
Сделайте так, чтобы /copy копировала полный ответ без отображения средства выбора |
Global config settings | Global config |
copyOnSelect |
Отключите автоматическое копирование текста, который вы выбираете мышью в полноэкранном отображении и представлении агента | Global config settings | Global config |
crossSessionInbound |
Выберите, доставляет ли Claude Code сообщения из ваших других сессий, показывает уведомление без их доставки или отклоняет их | Agents, sessions, and worktrees | Any file |
defaultShell |
Выберите, запускается ли Bash или PowerShell для shell-команд, которые вы вводите с префиксом ! |
Interface and terminal | Any file |
defaultToAgentsView |
Открывайте представление агента вместо нового диалога при запуске claude без аргументов |
Global config settings | Global config |
deniedMcpServers |
Блокируйте определённые MCP-серверы по URL, команде или имени | MCP | Any file |
deniedModels |
Блокируйте определённые модели, даже те, которые разрешает availableModels |
Model and responses | Managed |
desktopSessionCleanupPeriodDays |
Установите возрастной лимит в днях для транскриптов Claude Desktop и Cowork | Privacy and telemetry | User or managed |
dialogExpiry |
Установите, как долго Claude Code ждёт, пока Remote Control или хост SDK ответит на переданное диалоговое окно, прежде чем отменить его | Interface and terminal | User or managed |
diffTool |
Выберите, открываются ли предложенные Claude изменения файлов в средстве просмотра diff VS Code или JetBrains или остаются в терминале | Global config settings | Global config |
disableAgentView |
Отключите фоновые агенты и представление агента | Agents, sessions, and worktrees | Any file |
disableAllHooks |
Отключите хуки, пользовательскую строку состояния и пользовательскую команду предложения файлов @ одновременно |
Hooks and automation | Any file |
disableArtifact |
Устарело; используйте enableArtifact для отключения инструмента Artifact |
Remote, desktop, and notifications | Any file |
disableAutoMode |
Удалите авторежим из цикла режимов разрешений | Permission settings | Any file |
disableBrowserExternalNavigation |
Ограничьте настольную панель Browser только localhost для людей и Claude | Tools | Managed |
disableBundledSkills |
Отключите скиллы и рабочие процессы, включённые в Claude Code | Plugins and skills | Any file |
disableClaudeAiConnectors |
Отключите коннекторы claude.ai, чтобы Claude Code их не получал | MCP | Any file |
disableCommandPluginSources |
Блокируйте плагины, которые устанавливаются путём выполнения команды, объявленной маркетплейсом | Plugins and skills | Managed |
disableDeepLinkRegistration |
Запретите Claude Code регистрировать обработчик claude-cli:// |
Remote, desktop, and notifications | Any file |
disableDesktopLocalSessions |
Отключите сессии Desktop Code, которые работают на устройстве, оставляя SSH к другим хостам и облако | Remote, desktop, and notifications | Managed |
disabledMcpjsonServers |
Отклоняйте определённые серверы из .mcp.json проекта |
MCP | Any file |
disableMobileSimulatorTools |
Блокируйте инструменты Claude в настольной панели iOS Simulator | Tools | Managed |
disableRemoteControl |
Отключите Remote Control везде, где он может запуститься | Remote, desktop, and notifications | Any file |
disableSideloadFlags |
Отклоняйте флаги CLI, которые загружают плагины, субагенты и MCP-серверы в обход установки | Enterprise and managed settings | Managed |
disableSkillShellExecution |
Запретите скиллам и пользовательским командам встроенное выполнение shell-команд | Plugins and skills | Any file |
disableWorkflows |
Отключите динамические рабочие процессы для всех; используйте enableWorkflows для себя |
Hooks and automation | Any file |
editorMode |
Используйте сочетания клавиш vim в поле ввода промпта | Interface and terminal | Any file |
effortLevel |
Установите уровень effort по умолчанию для моделей без собственного сохранённого уровня | Model and responses | Any file |
emojiCompletionEnabled |
Отключите предложения и замену эмодзи :shortcode: в поле ввода промпта |
Interface and terminal | Any file |
enableAllProjectMcpServers |
Одобряйте каждый сервер в файлах проекта .mcp.json без запроса подтверждения |
MCP | Any file |
enableArtifact |
Отключите инструмент Artifact с помощью false в любом файле; ни один файл не может его включить обратно |
Remote, desktop, and notifications | Any file |
enabledMcpjsonServers |
Одобрите определённые серверы из .mcp.json проекта |
MCP | Any file |
enabledPlugins |
Включайте или отключайте отдельные плагины для каждой области действия | Plugins and skills | Any file |
enableWorkflows |
Включайте или отключайте динамические рабочие процессы вопреки умолчанию вашего плана | Hooks and automation | Any file |
enforceAvailableModels |
Держите выбор по умолчанию в /model в пределах вашего списка разрешённых моделей availableModels |
Model and responses | Any file |
env |
Установите переменные окружения для каждой сессии и её подпроцессов | Memory and context | Any file |
externalEditorContext |
Показывайте последний ответ Claude как комментарии при нажатии Ctrl+G для редактирования | Global config settings | Global config |
extraKnownMarketplaces |
Зарегистрируйте маркетплейсы для репозитория или организации | Plugins and skills | Any file |
fallbackModel |
Назовите резервные модели на случай перегрузки основной | Model and responses | Any file |
fastMode |
Включите быстрый режим для сессий, где он доступен | Model and responses | Any file |
fastModePerSessionOptIn |
Требуйте, чтобы люди включали быстрый режим в каждой сессии | Model and responses | Any file |
feedbackDrafts |
Контролируйте, ставит ли Claude в очередь черновики обратной связи для вашего рассмотрения | Privacy and telemetry | User or managed |
feedbackSurveyRate |
Измените частоту появления опроса качества сессии | Privacy and telemetry | Any file |
fileCheckpointingEnabled |
Отключите или включите снимки файлов, которые /rewind восстанавливает |
Memory and context | Any file |
fileSuggestion |
Предоставляйте автодополнение файлов @ из вашей собственной команды |
Interface and terminal | Any file |
footerLinksRegexes |
Превратите ID задач или рецензий в выводе в кликабельные ссылки под полем ввода | Interface and terminal | User or managed |
forceLoginGatewayUrl |
Установите URL шлюза, к которому подключается экран входа | Authentication and providers | User or managed |
forceLoginMethod |
Ограничьте вход на claude.ai, Claude Console или облачный шлюз | Authentication and providers | Any file |
forceLoginOrgUUID |
Привяжите входы claude.ai к вашей организации; только управляемый источник это обеспечивает | Authentication and providers | Any file |
forceRemoteSettingsRefresh |
Блокируйте запуск до тех пор, пока настройки, управляемые сервером, не будут заново получены | Enterprise and managed settings | Managed |
gatewayInternalNetworks |
Позвольте /login достичь облачного шлюза в общедоступном пространстве IPv4, которое ваша организация использует внутри |
Authentication and providers | Managed |
gcpAuthRefresh |
Обновляйте учётные данные Google Cloud с помощью вашей собственной команды | Authentication and providers | Any file |
hooks |
Запускайте свои собственные команды как хуки в точках жизненного цикла Claude Code | Hooks and automation | Any file |
httpHookAllowedEnvVars |
Ограничьте, какие переменные окружения HTTP-хуки могут помещать в заголовки | Hooks and automation | Any file |
idleCompaction |
Запретите Claude Code сжимать длинный диалог, от которого вы отошли | Memory and context | Any file |
includeCoAuthoredBy |
Устарело; используйте attribution для скрытия или изменения атрибуции коммитов и PR |
Git and attribution | Any file |
includeGitInstructions |
Удалите встроенные инструкции для коммитов и PR из контекста Claude | Git and attribution | Any file |
inputNeededNotifEnabled |
Получайте push-уведомление, когда Claude ждёт вас | Remote, desktop, and notifications | Any file |
isolatePeerMachines |
Спрашивать вас перед тем, как Claude отправит сообщение одной из ваших сессий на другой машине | Agents, sessions, and worktrees | Any file |
keybindingFlavor |
Устарело и не имеет эффекта; сочетания клавиш для редактирования слов всегда следуют соглашениям readline | Interface and terminal | Any file |
language |
Попросите Claude отвечать на языке, отличном от английского | Model and responses | Any file |
leftArrowOpensAgents |
Отключите сочетание клавиш ←, которое переводит сессию в фон и открывает представление агента |
Global config settings | Global config |
managedMcpServers |
Предоставляйте удалённые MCP-серверы каждому пользователю наряду с теми, которые они добавляют | MCP | Managed |
managedSourcesBehavior |
Объединяйте каждый управляемый источник, который вы развёртываете, вместо использования только одного с наивысшим приоритетом | Enterprise and managed settings | Managed |
maxEffortLevel |
Ограничьте уровень effort для всех моделей или для каждой модели отдельно, у любого поставщика | Model and responses | Any file |
maxProseWidth |
Ограничьте ширину прозы в ответах Claude в широком терминале | Interface and terminal | Any file |
minimumVersion |
Не позволяйте автоматическим обновлениям устанавливать версии ниже заданной | Updates and versioning | Any file |
model |
Измените модель, с которой Claude Code начинает | Model and responses | Any file |
modelOverrides |
Сопоставьте ID моделей с ID вашего поставщика, такими как Bedrock ARN | Model and responses | Any file |
modelPicker |
Выберите, какие модели перечисляет средство выбора /model, в вашем собственном порядке и с вашими собственными метками |
Model and responses | User or managed |
modelPricing |
Сообщайте расходы по контрактным ставкам вашей организации вместо прейскурантной цены | Model and responses | Managed |
modelSettings |
Сохраняйте для каждой модели уровень effort или окно автосжатия либо ограничивайте effort одной модели | Model and responses | Any file |
otelHeadersHelper |
Создавайте ротирующие заголовки OpenTelemetry с помощью вашей собственной команды | Authentication and providers | Any file |
outputStyle |
Измените роль, тон и формат вывода Claude с помощью стиля вывода | Model and responses | Any file |
parentSettingsBehavior |
Применяйте или отбрасывайте ограничения, которые хост SDK или IDE передаёт при развёртывании управляемых настроек | Enterprise and managed settings | Managed |
permissionExplainerEnabled |
Удалено в v2.1.257 вместе с объяснением команды по Ctrl+E в запросах разрешений для shell-команд |
Global config settings | Global config |
permissions |
Установите правила разрешения, запроса и запрета и начальный режим разрешений | Permission settings | Any file |
permissions.additionalDirectories |
Дайте Claude доступ к файлам в каталогах вне текущего | Permission settings | Any file |
permissions.allow |
Одобряйте перечисленные использования инструментов без запроса подтверждения | Permission settings | Any file |
permissions.ask |
Всегда запрашивайте подтверждение перед перечисленными использованиями инструментов | Permission settings | Any file |
permissions.blockReadsOutsideWorkingDirectories |
Заставьте файловые инструменты отказываться от чтения вне рабочих каталогов в каждом режиме разрешений | Permission settings | Any file |
permissions.defaultMode |
Установите режим разрешений, в котором начинаются новые сессии | Permission settings | Any file |
permissions.deny |
Блокируйте перечисленные использования инструментов, включая чтение файлов, содержащих секреты | Permission settings | Any file |
permissions.disableBypassPermissionsMode |
Запретите кому-либо входить в режим bypassPermissions | Permission settings | Any file |
plansDirectory |
Выберите, где режим планирования записывает файлы плана | Memory and context | Any file |
pluginConfigs |
Сохраняйте ответы, которые вы дали в диалоговом окне конфигурации плагина | Plugins and skills | User or managed |
pluginSuggestionMarketplaces |
Выберите, какие маркетплейсы могут выводить предложения по установке плагинов в /plugin |
Plugins and skills | Managed |
pluginTrustMessage |
Добавьте свой собственный текст к предупреждению о доверии плагину | Plugins and skills | Managed |
policyHelper |
Запустите исполняемый файл, который вычисляет управляемые настройки при запуске | Enterprise and managed settings | Managed |
policyHelper.path |
Назовите вспомогательный исполняемый файл, который запускает Claude Code | Enterprise and managed settings | Managed |
policyHelper.refreshIntervalMs |
Повторно запускайте вспомогательную программу в фоне с заданным интервалом | Enterprise and managed settings | Managed |
policyHelper.timeoutMs |
Установите, как долго Claude Code ждёт вспомогательную программу | Enterprise and managed settings | Managed |
preferredNotifChannel |
Выберите звонок терминала или уведомление рабочего стола для завершения задачи | Remote, desktop, and notifications | Any file |
prefersReducedMotion |
Уменьшите или отключите анимацию спиннера, мерцания и вспышки | Interface and terminal | Any file |
prependPlugins |
Запускайте моды вашей организации перед каждым модом, который устанавливает пользователь | Plugins and skills | User or managed |
processWrapper |
Запускайте фоновые процессы Claude Code через корпоративный запускатель на macOS и Linux | Agents, sessions, and worktrees | User or managed |
promptCacheTtl |
Выберите время жизни кэша промптов для основного диалога | Model and responses | Any file |
promptSuggestionEnabled |
Скройте серые предложения промптов в поле ввода | Interface and terminal | Any file |
prStatusFooterEnabled |
Отключите значок статуса ревью PR в нижней панели промпта и стоящую за ним проверку pull request | Global config settings | Global config |
prUrlTemplate |
Направляйте ссылки на PR во внутренний инструмент код-ревью вместо github.com | Git and attribution | Any file |
remote.defaultEnvironmentId |
Выберите облачную среду по умолчанию для claude --cloud; самостоятельно размещённый ID ccpool_ считывается только из пользовательских и управляемых настроек и --settings |
Remote, desktop, and notifications | Any file |
remoteControlAtStartup |
Подключайте Remote Control автоматически при запуске сессии | Remote, desktop, and notifications | Any file |
requiredMaximumVersion |
Отказывайте в запуске на версии новее, чем позволяет ваша организация | Updates and versioning | Managed |
requiredMinimumVersion |
Отказывайте в запуске на версии старше, чем требует ваша организация | Updates and versioning | Managed |
respectGitignore |
Исключайте игнорируемые git файлы из средства выбора файлов @ |
Interface and terminal | Any file |
respondToBashCommands |
Запретите Claude отвечать после выполнения shell-команды с ! |
Interface and terminal | Any file |
sandbox |
Изолируйте команды Bash от вашей файловой системы и сети на macOS, Linux и WSL2 | Sandbox settings | Any file |
sandbox.allowAppleEvents |
Позвольте изолированным командам отправлять Apple Events на macOS | Sandbox settings | User or managed |
sandbox.allowNestedUserNamespaces |
Позвольте изолированным командам создавать пространства имён пользователей на Linux и WSL2 | Sandbox settings | User or managed |
sandbox.allowUnsandboxedCommands |
Позвольте Claude повторить попытку выполнения заблокированной команды вне песочницы или запретите это | Sandbox settings | Any file |
sandbox.autoAllowBashIfSandboxed |
Запускайте изолированные команды без запроса разрешения | Sandbox settings | Any file |
sandbox.bwrapPath |
Укажите песочнице двоичный файл bubblewrap вне PATH |
Sandbox settings | Managed |
sandbox.credentials |
Скройте или замаскируйте файлы учётных данных и переменные внутри песочницы | Sandbox settings | Any file |
sandbox.credentials.allowPlaintextInject |
Позвольте замаскированным учётным данным достигать простых HTTP-сервисов в доверенных тестовых сетях | Sandbox settings | User or managed |
sandbox.credentials.awsPairs |
Свяжите переменные ключей AWS с пользовательскими именами в одни учётные данные для повторного подписания | Sandbox settings | User or managed |
sandbox.credentials.envVars |
Удалите или замаскируйте переменную окружения внутри песочницы | Sandbox settings | Any file |
sandbox.credentials.files |
Блокируйте или маскируйте чтение файла учётных данных внутри песочницы | Sandbox settings | Any file |
sandbox.credentials.sigv4 |
Выберите, будут ли потоковые, предварительно подписанные или запросы AWS SigV4A завершаться ошибкой или пропускаться | Sandbox settings | User or managed |
sandbox.enabled |
Включите изоляцию Bash в песочнице на macOS, Linux и WSL2 | Sandbox settings | Any file |
sandbox.enableWeakerNestedSandbox |
Запускайте Linux-песочницу внутри непривилегированного контейнера | Sandbox settings | Any file |
sandbox.enableWeakerNetworkIsolation |
Позвольте gh, gcloud и terraform проверять TLS за MITM-прокси внутри песочницы на macOS |
Sandbox settings | Any file |
sandbox.excludedCommands |
Назовите команды, которые Claude Code может запускать вне песочницы | Sandbox settings | Any file |
sandbox.failIfUnavailable |
Отказывайте в запуске, когда песочница не может запуститься, вместо работы без изоляции | Sandbox settings | Any file |
sandbox.filesystem |
Контролируйте, какие пути изолированные команды могут читать и записывать | Sandbox settings | Any file |
sandbox.filesystem.allowManagedReadPathsOnly |
Запретите разработчикам повторно открывать пути чтения, которые заблокировала ваша организация | Sandbox settings | Managed |
sandbox.filesystem.allowRead |
Повторно откройте чтение внутри области, которую блокирует denyRead |
Sandbox settings | Any file |
sandbox.filesystem.allowWrite |
Добавьте пути, в которые изолированные команды могут записывать | Sandbox settings | Any file |
sandbox.filesystem.denyRead |
Запретите изолированным командам читать определённые пути | Sandbox settings | Any file |
sandbox.filesystem.denyWrite |
Запретите изолированным командам записывать в определённые пути | Sandbox settings | Any file |
sandbox.filesystem.disabled |
Отключите изоляцию файловой системы при сохранении изоляции сети | Sandbox settings | User or managed |
sandbox.ignoreViolations |
Заглушите отчёты о нарушениях для путей, которые команда, как ожидается, будет проверять | Sandbox settings | Any file |
sandbox.network |
Контролируйте, к каким хостам, портам и сокетам обращаются изолированные команды | Sandbox settings | Any file |
sandbox.network.allowAllUnixSockets |
Позвольте изолированным командам подключаться к любому Unix-сокету | Sandbox settings | Any file |
sandbox.network.allowedDomains |
Предварительно разрешите домены, чтобы изолированные команды не запрашивали их | Sandbox settings | Any file |
sandbox.network.allowLocalBinding |
Позвольте изолированным командам прослушивать сетевые порты и подключаться к localhost на macOS | Sandbox settings | Any file |
sandbox.network.allowMachLookup |
Позвольте изолированным инструментам macOS, таким как iOS Simulator или Playwright, достигать своих XPC-сервисов | Sandbox settings | Any file |
sandbox.network.allowManagedDomainsOnly |
Ограничьте сетевой список разрешённых доменов управляемыми настройками | Sandbox settings | Managed |
sandbox.network.allowUnixSockets |
Перечислите пути Unix-сокетов, которые изолированные команды могут использовать на macOS | Sandbox settings | Any file |
sandbox.network.deniedDomains |
Блокируйте домены для изолированных команд, даже внутри разрешённого подстановочного шаблона | Sandbox settings | Any file |
sandbox.network.httpProxyPort |
Направляйте HTTP-трафик песочницы через ваш собственный прокси | Sandbox settings | Any file |
sandbox.network.socksProxyPort |
Направляйте SOCKS-трафик песочницы через ваш собственный прокси | Sandbox settings | Any file |
sandbox.network.strictAllowlist |
Отказывайте хостам вне списка разрешённых вместо запроса | Sandbox settings | User or managed |
sandbox.network.tlsTerminate |
Пусть прокси песочницы завершает TLS, чтобы он мог читать HTTPS-запросы | Sandbox settings | User or managed |
sandbox.ripgrep |
Используйте свой собственный двоичный файл ripgrep внутри песочницы | Sandbox settings | User or managed |
sandbox.socatPath |
Укажите прокси песочницы двоичный файл socat вне PATH |
Sandbox settings | Managed |
showClearContextOnPlanAccept |
Показывайте опцию "очистить контекст" на экране принятия плана | Interface and terminal | Any file |
showThinkingSummaries |
Смотрите сводки размышлений Claude вместо свёрнутой заглушки | Model and responses | Any file |
showTurnDuration |
Скройте длительность "Cooked for" после каждого ответа | Interface and terminal | Any file |
skillListingBudgetFraction |
Зарезервируйте больше или меньше контекста для списка скиллов | Memory and context | Any file |
skillListingMaxDescChars |
Ограничьте длину описания каждого скилла в списке скиллов | Memory and context | Any file |
skillOverrides |
Скройте или сверните скилл без редактирования его SKILL.md | Plugins and skills | Any file |
skipAutoPermissionPrompt |
Пропустите одноразовое уведомление, которое Claude Code показывает при первом входе в авторежим самостоятельно, а не через встроенное значение по умолчанию | Permission settings | User or managed |
skipDangerousModePermissionPrompt |
Пропустите диалоговое окно подтверждения перед режимом bypassPermissions | Permission settings | User, local, or managed |
skipWebFetchPreflight |
Пропустите проверку имени хоста WebFetch, когда Anthropic недоступен | Privacy and telemetry | Any file |
spellcheck |
Подчёркивайте неправильно написанные слова в поле ввода промпта с помощью средства проверки орфографии, которое вы устанавливаете | Interface and terminal | User or managed |
spinnerTipsEnabled |
Скройте советы в спиннере, пока Claude работает | Interface and terminal | Any file |
spinnerTipsOverride |
Добавьте свои собственные советы к ротации спиннера или замените встроенные советы | Interface and terminal | Any file |
spinnerVerbs |
Добавьте или замените глаголы, показываемые во время выполнения хода | Interface and terminal | Any file |
sshConfigs |
Добавьте SSH-подключения в средство выбора среды Desktop | Remote, desktop, and notifications | User or managed |
sshHostAllowlist |
Ограничьте, к каким хостам могут подключаться SSH-сессии Desktop | Remote, desktop, and notifications | Managed |
sshHostCommands |
Добавьте SSH-подключения, хост которых определяется командой, в средство выбора среды Desktop | Remote, desktop, and notifications | User or managed |
statusLine |
Запустите свою собственную команду для отображения строки состояния под промптом | Interface and terminal | Any file |
strictKnownMarketplaces |
Создайте список разрешённых источников маркетплейсов, которые пользователи могут добавлять и из которых могут устанавливать | Plugins and skills | Managed |
strictPluginOnlyCustomization |
Блокируйте скиллы, агенты, хуки и MCP-серверы из пользовательских и проектных источников | Plugins and skills | Managed |
strictPluginOnlyCustomization.agents |
Ограничьте агенты источниками из плагинов и управляемыми источниками | Plugins and skills | Managed |
strictPluginOnlyCustomization.hooks |
Ограничьте хуки источниками из плагинов и управляемыми источниками | Plugins and skills | Managed |
strictPluginOnlyCustomization.mcp |
Ограничьте MCP-серверы источниками из плагинов и управляемыми источниками | Plugins and skills | Managed |
strictPluginOnlyCustomization.skills |
Ограничьте скиллы источниками из плагинов и управляемыми источниками | Plugins and skills | Managed |
subagentPromptCacheTtl |
Выберите время жизни кэша промптов для субагентов и других запросов вне основного диалога | Model and responses | Any file |
subagentStatusLine |
Переписывайте строки в отображении задач субагента с помощью вашей собственной команды | Interface and terminal | Any file |
switchModelsOnFlag |
Переключайте модели автоматически или приостанавливайте работу, когда классификатор безопасности помечает запрос | Model and responses | Any file |
syncClaudeAiPlugins |
Прекратите загрузку плагинов, включённых в вашей учётной записи claude.ai, и скачивание новых | Plugins and skills | User, local, or managed |
syncClaudeAiSkills |
Прекратите загрузку скиллов, включённых в вашей учётной записи claude.ai, и скачивание новых | Plugins and skills | User, local, or managed |
syntaxHighlightingDisabled |
Отключите подсветку синтаксиса в diff и блоках кода | Interface and terminal | Any file |
taskOutputMaxChars |
Удалено в v2.1.277 вместе с инструментом TaskOutput, размер вывода которого оно определяло |
Memory and context | Any file |
teammateDefaultModel |
Удалено в v2.1.234; см. Укажите участников команды и модели, чтобы узнать, как Claude Code выбирает модель участника команды | Global config settings | Global config |
teammateMode |
Выберите, как отображаются участники команды агентов | Agents, sessions, and worktrees | Any file |
terminalProgressBarEnabled |
Скройте полосу прогресса терминала в терминалах, которые её поддерживают | Interface and terminal | Any file |
terminalTitleFromRename |
Запретите /rename и --name изменять название вкладки терминала |
Interface and terminal | Any file |
theme |
Выберите цветовую тему интерфейса, встроенную или пользовательскую | Interface and terminal | Any file |
timeFormat |
Показывайте время в интерфейсе в 12-часовом или 24-часовом формате, в UTC или с шаблоном strftime | Interface and terminal | Any file |
timeZone |
Показывайте время в интерфейсе в часовом поясе, отличном от вашего системного | Interface and terminal | Any file |
tui |
Выберите полноэкранный или классический рендерер терминала | Interface and terminal | Any file |
ultracode |
Пусть Claude планирует рабочий процесс для каждой существенной задачи без отдельной просьбы | Model and responses | Any file |
useAutoModeDuringPlan |
Позвольте классификатору авторежима проверять shell-команды в режиме планирования; установите false, чтобы вместо этого получать запросы подтверждения |
Permission settings | User, local, or managed |
verbose |
Показывайте полный вывод инструментов вместо усечённых сводок; viewMode имеет приоритет, когда установлены оба |
Interface and terminal | Any file |
viewMode |
Начинайте каждую сессию в представлении по умолчанию, подробном или сфокусированном | Interface and terminal | Any file |
vimInsertModeRemaps |
Сопоставьте двухклавишную последовательность режима INSERT, такую как jj, с Escape |
Interface and terminal | User or managed |
voice |
Включите голосовую диктовку и выберите режим удержания или нажатия | Interface and terminal | Any file |
voiceEnabled |
Включите голосовую диктовку с помощью более старой однокнопочной формы | Interface and terminal | Any file |
wheelScrollAccelerationEnabled |
Отключите ускорение прокрутки колесом мыши при полноэкранном отображении | Interface and terminal | Any file |
workflowKeywordTriggerEnabled |
Позвольте слову ultracode в промпте запускать рабочий процесс; установите false, чтобы вводить его без запуска |
Hooks and automation | Any file |
workflowSizeGuideline |
Установите количество агентов, к которому Claude стремится в динамических рабочих процессах | Hooks and automation | Any file |
worktree |
Настройте, как Claude Code создаёт git worktrees | Agents, sessions, and worktrees | Any file |
worktree.baseRef |
Создавайте новые worktrees от удалённой ветки по умолчанию или вашего локального HEAD | Agents, sessions, and worktrees | Any file |
worktree.bgIsolation |
Позвольте фоновым сессиям редактировать рабочую копию без worktree | Agents, sessions, and worktrees | Any file |
worktree.location |
Выберите, где SSH-сессии Desktop создают свои worktrees на удалённой машине | Agents, sessions, and worktrees | User |
worktree.sparsePaths |
Извлекайте только необходимые вам каталоги в каждом worktree | Agents, sessions, and worktrees | Any file |
worktree.symlinkDirectories |
Создавайте символические ссылки на большие каталоги в каждом worktree вместо их дублирования | Agents, sessions, and worktrees | Any file |
wslInheritsWindowsSettings |
Пусть WSL читает управляемые настройки из цепочки политик Windows | Enterprise and managed settings | Managed |
Модель и ответы
Выберите, какие модели использует Claude Code и как он отвечает. О том, как эти настройки взаимодействуют с командой /model и переменными окружения, см. Конфигурация модели.
advisorModel
Выберите модель, которая отвечает, когда Claude вызывает серверный инструмент advisor. Удалите значение, чтобы отключить advisor. Advisor должен быть не менее способным, чем ваша основная модель. Допустимые сочетания и то, что происходит при выборе недопустимой модели, описаны в разделе Выбор модели advisor.
Обычно этот ключ не редактируют вручную. Выполните /advisor, чтобы открыть окно выбора, в котором показаны текущий выбор, модели, которые могут выступать в роли advisor, и вариант No advisor. Claude Code сохраняет ваш выбор в этот ключ в ~/.claude/settings.json. Если вы делаете выбор из клиента Remote Control или в сессии, подключённой к удалённому исполнителю, выбор применяется только к этой сессии и не изменяет этот ключ.
Если ваша учётная запись требует согласия на использование кредитов использования, сначала дайте его, выполнив /model fable. Пока вы этого не сделаете, выбор Fable в /advisor ничего не сохраняет, и Claude Code предлагает сначала выполнить /model fable.
- Область действия:
Any file - Тип: строка, один из псевдонимов
"fable","opus"или"sonnet", которые разрешаются в текущую версию по умолчанию соответствующего семейства моделей в Claude Code, либо полный ID модели, например"claude-opus-5-5" - По умолчанию: не задано, поэтому advisor отключён
- Переопределения для сессии:
--advisorимеет приоритет над этим ключом для одной сессии.CLAUDE_CODE_DISABLE_ADVISOR_TOOLотключает advisor, и этот ключ не может снова его включить
{
"advisorModel": "opus"
}
Ключ не действует у провайдеров, где advisor недоступен, например Amazon Bedrock и Claude Platform on AWS. Для "fable" требуется доступ к Fable.
alwaysThinkingEnabled
Отключите расширенное мышление для всех сессий, установив значение false. Мышление включено по умолчанию, поэтому true ничего не меняет. Большинство пользователей задают это через /config, а не редактируя файл.
На моделях, которые всегда используют мышление, таких как Opus 5.5, Sonnet 5.5, Haiku 5.5 и модели Fable, значение false не действует. У сторонних провайдеров Claude Code не передаёт параметр thinking вместо того, чтобы отключать мышление, поэтому модели с адаптивными рассуждениями всё равно могут использовать мышление. Когда мышление отключено в Anthropic API, Claude Code отправляет effort high вместо более высокого уровня моделям, которые, как ему известно, не принимают такое сочетание, например Opus 5.
- Область действия:
Any file - Тип: Boolean
true: не действует; мышление уже включеноfalse: Claude Code отключает расширенное мышление для всех сессий
- По умолчанию: не задано, поэтому мышление включено для моделей, которые его поддерживают
- Переопределения для сессии:
MAX_THINKING_TOKENSимеет приоритет над этим ключом для одной сессии:0отключает мышление с теми же ограничениями модели и провайдера, что иfalse, а положительное значение включает мышление, даже если этот ключ равенfalse. На моделях с адаптивными рассуждениями само число игнорируется
{
"alwaysThinkingEnabled": false
}
availableModels
Ограничьте, какие модели пользователи могут выбирать для основной сессии, субагентов, скиллов и advisor. Управляемый список ограничивает /model, --model и ключ model в собственных файлах разработчика; модель вне списка выбрать нельзя. При сопоставлении по префиксу, используемом по умолчанию, это само по себе не затрагивает вариант Default; для этого используйте его вместе с enforceAvailableModels.
- Область действия:
Any file. Разверните его в управляемых настройках, чтобы применить принудительно для организации. - Тип: массив псевдонимов или ID моделей
- По умолчанию: не задано, поэтому доступны все модели
В этом примере пользователи могут выбирать только модели Sonnet и Haiku:
{
"availableModels": ["sonnet", "haiku"]
}
Запись с ID модели, например "claude-opus-5", также разрешает более поздние версии, которые его расширяют, например Opus 5.5. Чтобы заблокировать одну из этих версий, используйте deniedModels. Чтобы каждая запись с ID модели разрешала только указанную в ней версию, используйте availableModelsMatch. См. Ограничение выбора модели. Об ID сторонних провайдеров см. Закрепление моделей для сторонних развёртываний.
availableModelsMatch
Выберите, как записи availableModels сопоставляются с ID моделей. По умолчанию запись с ID модели также разрешает более поздние версии, которые его расширяют, поэтому "claude-opus-5" разрешает Opus 5.5. При значении "exact" каждая запись с ID модели разрешает только указанную в ней версию, поэтому более новая версия этой модели остаётся заблокированной, пока вы не добавите её в список. Требуется Claude Code v2.1.283 или новее.
- Область действия:
Managed. Claude Code игнорирует ключ в пользовательских, проектных и локальных настройках, а также в--settings, с предупреждением - Тип: строка, одно из значений:
"prefix": запись с ID модели разрешает свою версию и любой ID модели, который расширяет его ещё одним сегментом"exact": запись с ID модели разрешает только указанную в ней версию, поэтому"claude-opus-5"разрешает Opus 5, но неclaude-opus-5-5. Запись вроде"claude-opus-4-5"также разрешает свой ID модели Anthropic с датойclaude-opus-4-5-20251101. Псевдоним семейства, например"opus", по-прежнему разрешает всё семейство, а записиbest,opusplanиdefaultигнорируются
- По умолчанию:
"prefix"
В этом примере разрешены Opus 5 и Sonnet 5 и никакие более поздние выпуски этих моделей:
{
"availableModels": ["claude-opus-5", "claude-sonnet-5"],
"availableModelsMatch": "exact"
}
При значении "exact" вариант Default также ограничивается перечисленными моделями, если в списке указана хотя бы одна модель или семейство. См. Блокировка отдельных моделей или версий.
deniedModels
Блокируйте отдельные модели — со списком разрешённых моделей availableModels или без него, и даже если этот список их разрешает. Claude Code скрывает заблокированную модель в окне выбора /model, и эту модель нельзя выбрать нигде, где применяется availableModels. Сессия с вариантом Default также не запускает заблокированную модель, как описано в разделе Блокировка отдельных моделей или версий. Требуется Claude Code v2.1.283 или новее.
- Область действия:
Managed. Claude Code игнорирует ключ в пользовательских, проектных и локальных настройках, а также в--settings, с предупреждением - Тип: массив псевдонимов или ID моделей
- Псевдоним семейства, например
"opus", блокирует все модели этого семейства - ID модели, например
"claude-opus-5-5", блокирует эту версию в любом написании, включая ID с датами и ID конкретных провайдеров - ID модели без минорной версии, например
"claude-opus-5", также блокирует более поздние минорные версии, например Opus 5.5. Укажите"claude-opus-5-0", чтобы заблокировать только Opus 5 - Записи
best,opusplanиdefaultигнорируются
- Псевдоним семейства, например
- По умолчанию: не задано, поэтому ни одна модель не заблокирована
В этом примере разрешены модели Opus и Sonnet, а Opus 5.5 заблокирована:
{
"availableModels": ["opus", "sonnet"],
"deniedModels": ["claude-opus-5-5"]
}
См. Блокировка отдельных моделей или версий.
effortLevel
Задайте уровень effort по умолчанию для моделей, для которых вы не сохранили уровень. Более низкие уровни быстрее и дешевле на простых задачах, а более высокие обеспечивают более глубокие рассуждения на сложных задачах.
Когда вы выполняете /effort low, medium, high или xhigh в интерактивной сессии на своём компьютере, Claude Code сохраняет уровень для активной модели в modelSettings, а не записывает этот ключ. До v2.1.251 команда /effort записывала этот ключ.
В пределах одного файла настроек Claude Code использует сохранённый уровень модели, а не этот ключ. Приоритет между файлами описан в modelSettings.
В сессии, подключённой к удалённому исполнителю, при запуске с -p и в Agent SDK /effort применяется только к этой сессии. В разделе Настройка уровня effort перечислены варианты интерактивного выбора, которые также применяются только к этой сессии. Сообщение, которое выводит /effort, указывает, что именно произошло.
- Область действия:
Any file - Тип: строка, одно из значений:
"low": минимум рассуждений, для коротких, чётко ограниченных задач, чувствительных к задержке и не чувствительных к уровню интеллекта модели"medium": сокращает расход токенов для работы, чувствительной к стоимости, где допустимо пожертвовать частью интеллекта"high": баланс между расходом токенов и интеллектом"xhigh": более глубокие рассуждения при большем расходе токенов
- По умолчанию: не задано
- Переопределения для сессии:
--effortимеет приоритет над этим ключом для одной сессии, аCLAUDE_CODE_EFFORT_LEVELимеет приоритет над обоими
{
"effortLevel": "xhigh"
}
В вашем файле пользовательских настроек, ~/.claude/settings.json, этот ключ — это старая форма, которую /effort записывала до того, как стала сохранять уровни для каждой модели, и он продолжает применяться там, где применялся раньше: к Opus 5, Fable 5.1 и более ранним моделям. Opus 5.5 и модели, выпущенные после неё, игнорируют его и начинают со своего уровня по умолчанию, пока вы не сохраните для них уровень, который /effort записывает в modelSettings. В проектных, локальных и управляемых настройках, а также с --settings этот ключ применяется ко всем моделям.
enforceAvailableModels
В окне выбора /model есть вариант Default, а в разделе настройка модели default описано, в какую модель он разрешается. Список разрешённых моделей availableModels ограничивает модели, которые можно указать по имени, но при сопоставлении по префиксу, используемом по умолчанию, он не переназначает модель по умолчанию для вашего типа учётной записи, поэтому Default всё ещё может разрешиться в модель вне списка. Этот ключ закрывает этот пробел. Требуется Claude Code v2.1.175 или новее.
Если ваша организация развёртывает какие-либо управляемые настройки, Claude Code читает этот ключ только из управляемого источника и игнорирует его в других ваших файлах.
О том, как этот ключ применяется к проверкам модели при запуске, см. Amazon Bedrock и Google Cloud's Agent Platform.
- Область действия:
Any file - Тип: Boolean
true: когда Default разрешился бы в модель внеavailableModels, Claude Code разрешает его в первую доступную модель из спискаfalse: этот ключ не меняет то, как разрешается Default
- По умолчанию:
false
В этом примере выбор по имени ограничен моделями Sonnet и Haiku, а Default разрешается в первую из них, которая доступна:
{
"availableModels": ["sonnet", "haiku"],
"enforceAvailableModels": true
}
Этот ключ не действует, если availableModels не задан или пуст. См. Применение списка разрешённых моделей к модели Default. Требуется Claude Code v2.1.175 или новее.
fallbackModel
Укажите резервные модели, которые Claude Code будет пробовать по порядку, когда ваша основная модель перегружена или недоступна. Claude Code переключается на следующую доступную модель в цепочке до конца хода и показывает уведомление. Без цепочки Claude Code повторяет попытку с той же моделью, а затем показывает ошибку сервера, и вы сами повторяете попытку или переключаете модель.
Переключение означает один ход с холодным кэшем промптов на резервной модели; ваше следующее сообщение снова сначала пробует основную модель.
- Область действия:
Any file - Тип: массив псевдонимов или ID моделей;
"default"раскрывается в модель по умолчанию - По умолчанию: не задано, поэтому неудавшийся запрос не повторяется на другой модели
- Переопределения для сессии:
--fallback-modelимеет приоритет над этим ключом для одной сессии
В этом примере при сбое основной модели сначала пробуется Sonnet 5, затем Haiku 4.5:
{
"fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]
}
В отличие от большинства настроек-массивов, этот ключ не объединяется между файлами настроек: всю цепочку задаёт файл с наивысшим приоритетом, в котором он определён. Если ваш проектный файл задаёт ["claude-sonnet-5"], а пользовательский — ["claude-haiku-4-5"], цепочка будет только ["claude-sonnet-5"]. Claude Code сохраняет из списка не более трёх различных разрешённых моделей и игнорирует остальные. См. Цепочки резервных моделей.
fastMode
Включите быстрый режим для сессий, где он доступен, — для интерактивной работы, например быстрой итерации или отладки в реальном времени, когда вам нужна скорость при более высокой стоимости за токен. Обычно этот ключ не редактируют вручную: выполнение /fast записывает fastMode: true в ~/.claude/settings.json, а повторное выполнение для отключения быстрого режима удаляет ключ. Быстрый режим работает только на Opus 5.5, Opus 5 и Opus 4.8: его включение на другой модели переключает вас на Opus, а переключение на неподдерживаемую модель отключает его. См. Переключение моделей при включённом быстром режиме.
- Область действия:
Any file - Тип: Boolean
true: Claude Code включает быстрый режим для сессий, где он доступенfalse: быстрый режим остаётся выключенным
- По умолчанию: не задано, поэтому быстрый режим выключен
- Переопределения для сессии:
CLAUDE_CODE_DISABLE_FAST_MODEотключает быстрый режим для одной сессии, и этот ключ не может снова его включить
{
"fastMode": true
}
fastModePerSessionOptIn
Обычно выполнение /fast сохраняет fastMode в пользовательские настройки человека, поэтому быстрый режим включён в начале каждой последующей сессии. Установите этот ключ в true, чтобы это прекратить: сохранённое fastMode: true больше не включает быстрый режим при запуске сессии, и каждому пользователю нужно выполнять /fast в каждой сессии, где он нужен. Claude Code оставляет ключ fastMode в файле пользователя, поэтому отключение этого ключа восстанавливает прежнее поведение.
Владельцы на тарифах Team или Enterprise могут развернуть его на всю организацию через настройки, управляемые сервером. Когда ключ задан в управляемых настройках, /fast on отклоняется вне интерактивных сессий в терминале и сообщает, что ваша организация отключила быстрый режим. Это касается неинтерактивного режима, расширения VS Code и облачных сессий.
- Область действия:
Any file - Тип: Boolean
true: сохранённоеfastMode: trueбольше не включает быстрый режим при запуске сессии, поэтому каждый пользователь выполняет/fastв каждой сессии, где он нужен;fastMode: true, переданное через--settings, по-прежнему учитывается для этой сессии, если этот ключ не задан в управляемых настройкахfalse: сохранённоеfastMode: trueвключает быстрый режим в начале каждой последующей сессии
- По умолчанию:
false
{
"fastModePerSessionOptIn": true
}
См. Требование явного включения в каждой сессии.
language
Сделайте так, чтобы Claude по умолчанию отвечал на языке, отличном от английского. Фиксированного списка для ответов нет: Claude Code передаёт значение Claude дословно как инструкцию всегда отвечать на этом языке, поэтому подходит любое название языка, которое Claude может прочитать. Claude Code не проверяет значение, поэтому название с опечаткой дойдёт до Claude в том виде, в каком написано, а не вызовет ошибку. Это же значение задаёт язык для голосового ввода, у которого как раз есть фиксированный список поддерживаемых языков диктовки, и для автоматически создаваемых названий сессий.
- Область действия:
Any file - Тип: строка, любое название языка, например
"japanese","spanish"или"french"; Claude Code его не проверяет - По умолчанию: не задано; названия сессий в этом случае соответствуют языку вашего диалога
{
"language": "japanese"
}
maxEffortLevel
Ограничьте уровень effort, который может использовать сессия, оставив доступными более низкие уровни. Любой более высокий уровень выполняется на уровне ограничения, в том числе уровень из /effort, окна выбора /model, --effort, CLAUDE_CODE_EFFORT_LEVEL, поля effort во frontmatter скилла или субагента либо собственного уровня модели по умолчанию. Claude Code сам применяет ограничение перед каждым запросом, поэтому оно действует у любого провайдера, включая Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry. Требуется Claude Code v2.1.267 или новее.
- Область действия:
Any file. Разверните его в управляемых настройках, чтобы применить принудительно для организации. Если ограничение задано в нескольких областях действия, применяется самое низкое, поэтому ограничение, заданное в одной области действия, нельзя повысить из другой - Тип: строка, одно из значений
"low","medium","high","xhigh"или"max". Значение"max"не задаёт ограничения - По умолчанию: не задано, поэтому ограничение не применяется
- Ограничения для отдельных моделей: добавьте
maxEffortLevelв запись модели вmodelSettings. Эта запись заменяет этот ключ для данной модели только в пределах источника настроек, который задаёт оба, например ваших пользовательских настроек или одного управляемого источника. Укажите там"max", чтобы исключить модель из ограничения этого источника; Claude Code по-прежнему применяет ограничения из других источников
В этом примере все модели ограничены уровнем medium, а Sonnet 4.6 исключена:
{
"maxEffortLevel": "medium",
"modelSettings": {
"claude-sonnet-4-6": {
"maxEffortLevel": "max"
}
}
}
Если ваша организация также задаёт для модели ограничение effort, применяется меньшее из двух ограничений.
model
Задайте модель, которую использует каждая новая сессия, чтобы не выбирать её через /model каждый раз. Если задать её здесь, это не мешает переключаться посреди сессии. Если ваш администратор задал модель организации по умолчанию, переопределяющую выбор пользователя, вы получаете эту модель, даже если задали этот ключ в пользовательских, проектных или локальных настройках.
- Область действия:
Any file - Тип: строка, псевдоним модели или полный ID модели
- По умолчанию: не задано, поэтому Claude Code использует модель по умолчанию для вашей учётной записи
- Переопределения для сессии:
--modelимеет приоритет надANTHROPIC_MODEL, и оба имеют приоритет над этим ключом для одной сессии, в том числе над управляемымmodel; списокavailableModelsпо-прежнему применяется к выбору
{
"model": "claude-sonnet-5"
}
Значение здесь имеет приоритет над ANTHROPIC_DEFAULT_MODEL, который Claude Code использует, только когда модель не выбрана ничем другим.
modelOverrides
Сопоставьте ID моделей Anthropic с ID моделей конкретного провайдера, например ARN профилей инференса Amazon Bedrock. Тогда каждая запись в окне выбора модели при вызове API провайдера использует сопоставленное значение. Администраторы используют это на Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, чтобы направлять каждую версию модели на конкретный профиль инференса, имя версии или развёртывание для целей управления, распределения затрат или региональной маршрутизации.
- Область действия:
Any file - Тип: объект, сопоставляющий ID модели с ID модели провайдера
- По умолчанию: не задано
В этом примере все вызовы Opus 4.6 направляются на указанный профиль инференса Bedrock:
{
"modelOverrides": {
"claude-opus-4-6": "arn:aws:bedrock:us-east-1:123456789012:inference-profile/example"
}
}
См. Переопределение ID моделей для каждой версии.
modelPicker
Перечислите модели, которые предлагает окно выбора /model, в том порядке, в котором вы их записываете, и под выбранными вами метками, чтобы в окне выбора были модели, которые использует ваша организация, — после встроенного набора или вместо него. Значение model каждой строки берётся дословно, поэтому оно принимает всё, что принимает --model: псевдоним, например opus, ID модели Anthropic или ID в формате провайдера для Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или LLM-шлюза. Требуется Claude Code v2.1.242 или новее.
- Область действия:
User or managed. Claude Code читает ключ из управляемых настроек,--settingsи пользовательских настроек и игнорирует его в проектных и локальных настройках, чтобы клонированный вами репозиторий не мог переименовать пункты окна выбора. Весь набор задаёт тот из этих трёх источников с наивысшим приоритетом, в котором задан ключ, и Claude Code никогда не объединяет наборы из двух источников. - Тип: объект с массивом строк
optionsи необязательным BooleanreplaceBuiltInOptions - По умолчанию: не задано, поэтому окно выбора показывает встроенный набор
В этом примере после встроенного набора добавляются два развёртывания Bedrock под названиями, знакомыми вашей команде:
{
"modelPicker": {
"options": [
{ "model": "us.anthropic.claude-opus-4-8", "label": "Opus (production)" },
{
"model": "us.anthropic.claude-sonnet-4-6",
"label": "Sonnet (production)",
"description": "Day-to-day work"
}
]
}
}
Поля для modelPicker
Ключ принимает два поля: одно для самих строк и одно, определяющее, заменяют ли они встроенный набор или дополняют его.
| Поле | Тип | Что делает |
|---|---|---|
options |
массив строк, каждая с обязательным model и необязательными label, description и behavesAs |
Строки, которые показывает окно выбора, в этом порядке, за исключением того, что неактивная строка перемещается вниз. Без label Claude Code озаглавливает строку встроенным названием известной ему модели или, в противном случае, ID модели, а без description пишет общую вторую строку |
replaceBuiltInOptions |
Boolean, по умолчанию false |
Установите true, чтобы показывать только эти строки, Default и строку для модели, которую уже использует сессия. Оставьте незаданным, чтобы добавить эти строки после встроенного набора |
Запись в options также может содержать необязательную строку behavesAs рядом со своим model, для чего требуется v2.1.257 или новее. Укажите в ней ID модели, которая уже известна вашей версии Claude Code, например claude-opus-4-8, в записи, чей model новее вашей версии. Тогда Claude Code применяет к записи возможности и значения effort по умолчанию этой известной модели, вместо того чтобы считать её модель неизвестной. Метка записи и ID модели, который Claude Code отправляет в запросах, не меняются.
При включённом replaceBuiltInOptions Claude Code скрывает все остальные строки: встроенный набор, строки, которые он добавляет для записей availableModels, модели, найденные при обнаружении через шлюз, и ANTHROPIC_CUSTOM_MODEL_OPTION. При выключенном Claude Code пропускает указанную модель, которая уже есть во встроенном наборе. Метка меняет то, что показывает окно выбора, а не то, какую модель запускает Claude Code.
Список разрешённых моделей availableModels по-прежнему применяется к этим строкам. Прежде чем добавлять указанную модель в список разрешённых, прочитайте раздел Поведение при объединении: конкретный ID модели сужает шаблонную запись её семейства. Claude Code также проверяет каждую строку на соответствие сессии, прежде чем показать окно выбора:
- Удалена: строка, которую Claude Code не может обслужить, например выведенная из эксплуатации модель или модель, к которой у вашей организации нет доступа
- Неактивна: строка, которую вы пока не можете выбрать, показывается с указанием причины
- Не осталось ни одной строки: Claude Code сохраняет встроенный набор, отфильтрованный по списку разрешённых моделей как обычно
Claude Code удаляет строку, которую не может разобрать, и сохраняет остальные. См. Исправление повреждённого файла настроек.
modelPricing
Отображайте расходы по тарифам, которые платит ваша организация, а не по прейскуранту. Задайте это, если у вашей организации есть договорные тарифы, чтобы суммы в долларах, которые видят разработчики, совпадали с вашим счётом. Claude Code применяет тарифы в /usage, строке состояния, total_cost_usd в Agent SDK, ограничении --max-budget-usd и в метрике и событиях стоимости OpenTelemetry. Тарифы указываете вы: Claude Code не считывает их из вашего договора или Claude Console. Требуется Claude Code v2.1.242 или новее.
- Область действия:
Managed. Разверните ключ через настройки, управляемые сервером, политику MDM, файлmanaged-settings.jsonили вспомогательную программу политики. Claude Code игнорирует его в пользовательских, проектных и локальных настройках, в--settingsи в Windows в доступном пользователю для записи реестре HKCU. При использовании настроек, управляемых сервером, каждая сессия показывает расходы по прейскуранту, пока получение настроек этой сессии не подтвердит настройку. Хост-приложение, которое встраивает Claude Code и задаётCLAUDE_CODE_PROVIDER_MANAGED_BY_HOST, может передать собственную таблицу через параметр SDKmanagedSettings, которую Claude Code использует, только если ни один управляемый источник не задаёт ключ, и только в Claude Code v2.1.246 или новее. - Тип: объект с необязательным
multiplierи необязательной картойoverrides - По умолчанию: не задано, поэтому Claude Code показывает расходы по прейскуранту, если хост-приложение не передаёт таблицу
Задайте только multiplier для фиксированной скидки или наценки, только overrides для тарифов по отдельным моделям или оба.
В этом примере задаются договорные тарифы для Sonnet 4.6, а затем каждая сумма, включая строку Sonnet, уменьшается на 15%:
{
"modelPricing": {
"multiplier": 0.85,
"overrides": {
"claude-sonnet-4-6": {
"input": 2.4,
"output": 12,
"cacheRead": 0.24,
"cacheWrite": 3
}
}
}
}
Задайте multiplier больше 1, но не более 10, чтобы увеличить каждую сумму. Для наценки требуется Claude Code v2.1.271 или новее. Более ранние версии игнорируют multiplier больше 1 с предупреждением и сохраняют остальную часть настройки.
Порядок действий, в том числе как убедиться, что тарифы действуют, описан в разделе Отображение расходов по договорным тарифам.
Поля для modelPricing
| Поле | Тип | Что делает |
|---|---|---|
multiplier |
число больше 0 и не более 10 | Масштабирует каждую стоимость, которую вычисляет Claude Code, независимо от того, покрывает ли её строка overrides. Значение меньше 1 — скидка, больше 1 — наценка |
overrides |
карта ID модели на объект тарифов с input, output, cacheRead и cacheWrite, каждый от 0 до 10000 |
Тарифы в долларах США за миллион токенов для этой модели, все четыре обязательны. cacheWrite охватывает записи в кэш как на пять минут, так и на один час. См. К каким моделям применяется строка |
Claude Code использует тарифы строки точно в том виде, в каком вы их записали, не добавляя надбавку за быстрый режим или тариф для инференса только в США. Если вы также задали multiplier, Claude Code применяет его поверх тарифов строки. Claude Code удаляет строку с тарифом, который не может разобрать, или multiplier, который не может разобрать, и сохраняет остальное; см. Исправление повреждённого файла настроек.
К каким моделям применяется строка modelPricing
Claude Code определяет, к каким моделям применяется строка, по её ключу:
- ID встроенной модели: ключ, который сам Claude Code использует для встроенной модели, будь то собственный ID модели, например
claude-sonnet-4-6, или её ID в Bedrock, Agent Platform или Foundry. Claude Code применяет строку ко всем ID снимков с датами и ID конкретных провайдеров этой модели. - Любой другой ключ: ключ, который не является ID встроенной модели, например псевдоним модели в шлюзе. Claude Code применяет строку только к этому одному ID. Когда ID модели точно совпадает с одним из ваших ключей и также подпадает под строку с ключом ID встроенной модели, Claude Code использует точное совпадение.
- Профиль инференса приложения Bedrock: как только Claude Code определил модель, на которую направляет профиль, через вашу карту
modelOverridesили поискbedrock:GetInferenceProfile, Claude Code применяет к профилю строку этой модели.
modelSettings
Сохраняйте уровень effort для каждой используемой модели. Требуется Claude Code v2.1.251 или новее.
В интерактивной сессии на вашем компьютере, когда вы сохраняете low, medium, high или xhigh как значение по умолчанию с помощью /effort или ползунка effort в окне выбора /model, Claude Code записывает этот уровень сюда для используемой модели, поэтому вам редко приходится редактировать этот ключ самостоятельно. Когда вы выбираете один из этих уровней в окне выбора модели расширения VS Code, Claude Code сохраняет его сюда таким же образом. В записи effortLevel перечислены сессии, в которых /effort применяется только к этой сессии.
Отредактируйте ключ вручную, чтобы изменить или удалить сохранённый уровень.
effortLevel модели здесь имеет приоритет над effortLevel верхнего уровня (effortLevel) в том же файле настроек. Между файлами Claude Code определяет значение для каждой модели отдельно: решает файл настроек с наивысшим приоритетом, в котором задан либо effortLevel для этой модели, либо effortLevel верхнего уровня, который применяется к этой модели, поэтому effortLevel в управляемых настройках имеет приоритет над уровнем, сохранённым в пользовательских настройках. В разделе Настройка уровня effort перечислено, что ещё может переопределить сохранённый уровень, например --effort при запуске.
Чтобы ограничить effort одной модели, а не задать её уровень, добавьте поле maxEffortLevel в запись этой модели. Для этого поля требуется Claude Code v2.1.267 или новее.
- Область действия:
Any file - Тип: объект, сопоставляющий имя модели с объектом, содержащим любые из этих полей:
effortLevel: одно из значений"low","medium","high"или"xhigh"maxEffortLevel: наивысший уровень effort, на котором может работать модельautoCompactWindow: число токенов от100000до1000000или"auto"для окна, настроенного для модели./autocompactсохраняет значение сюда. Для этой модели значение имеет приоритет надautoCompactWindowверхнего уровня в том же файле настроек. Требуется Claude Code v2.1.288 или новее
- По умолчанию: не задано
Claude Code записывает каждую запись под каноническим именем модели, например claude-opus-5-5, и сопоставляет с этой же записью псевдоним модели, ID с суффиксом даты, [1m] и распознанные ID конкретных провайдеров.
В этом примере Opus 5.5 остаётся на уровне high, а другие модели используют собственные сохранённые уровни или уровни по умолчанию:
{
"modelSettings": {
"claude-opus-5-5": {
"effortLevel": "high"
}
}
}
Выполните /effort auto, чтобы очистить сохранённый уровень для используемой модели. Claude Code оставляет другие записи и любой effortLevel верхнего уровня без изменений.
outputStyle
Выберите стиль вывода по имени. Стиль вывода — это сохранённый набор инструкций, который меняет роль, тон и формат вывода Claude, например встроенные стили Explanatory и Learning или стиль, который вы написали сами.
Если изменить этот ключ во время сессии, Claude использует новый стиль начиная с вашего следующего сообщения. О том, во что это сообщение обходится с точки зрения кэширования промптов, см. Изменение стиля вывода. До v2.1.251 изменение применялось только после выполнения /clear или запуска новой сессии.
- Область действия:
Any file - Тип: строка, имя встроенного или пользовательского стиля вывода
- По умолчанию: не задано, поэтому Claude Code использует стиль по умолчанию
В этом примере выбран встроенный стиль Explanatory, который добавляет обучающие пояснения между задачами:
{
"outputStyle": "Explanatory"
}
promptCacheTtl
Выберите, как долго кэш промптов хранит основной диалог. Этот ключ применяется к вашим ходам в интерактивном режиме, с -p и в Agent SDK, а также к вспомогательным запросам, которые Claude Code выполняет вместе с ними. Время жизни в один час сохраняет кэш «тёплым» на протяжении более длинных перерывов, а API тарифицирует каждую запись в кэш по более высокой ставке, чем при времени жизни в пять минут. Требуется Claude Code v2.1.242 или новее.
- Область действия:
Any file - Тип: строка, одно из значений:
"5m": кэш хранится пять минут"1h": кэш хранится один час
- По умолчанию: не задано, поэтому каждый запрос основного диалога получает своё время жизни по умолчанию
- Переопределения для сессии:
FORCE_PROMPT_CACHING_5Mимеет приоритет над всем остальным, затемCLAUDE_CODE_PROMPT_CACHE_TTL, затем этот ключ и в последнюю очередьENABLE_PROMPT_CACHING_1H
В этом примере основной диалог использует время жизни в один час, а субагенты остаются на пяти минутах:
{
"promptCacheTtl": "1h",
"subagentPromptCacheTtl": "5m"
}
О стоимости каждого времени жизни см. Время жизни кэша.
showThinkingSummaries
Просматривайте сводки расширенного мышления Claude в интерактивных сессиях. Задайте это, если хотите видеть полные сводки при раскрытии размышлений с помощью Ctrl+O. Если значение не задано или равно false, Anthropic API скрывает блоки размышлений, и Claude Code показывает свёрнутую заглушку.
- Область действия:
Any file - Тип: Boolean
true: вы видите полные сводки размышлений при их раскрытии с помощьюCtrl+Ofalse: Anthropic API скрывает блоки размышлений, и Claude Code показывает свёрнутую заглушку
- По умолчанию:
false
{
"showThinkingSummaries": true
}
Скрытие меняет только то, что вы видите, а не то, что генерирует модель. Чтобы сократить расходы на мышление, вместо этого уменьшите бюджет или отключите мышление.
subagentPromptCacheTtl
Выберите, как долго кэш промптов хранит запросы, которые Claude Code выполняет вне основного диалога. Этот ключ применяется к субагентам, рабочим процессам и собственным фоновым и вспомогательным запросам Claude Code, например для сжатия контекста и названий сессий. Время жизни в один час сохраняет кэш «тёплым» на протяжении более длинных перерывов, а API тарифицирует каждую запись в кэш по более высокой ставке, чем при времени жизни в пять минут. Требуется Claude Code v2.1.242 или новее.
- Область действия:
Any file - Тип: строка, одно из значений:
"5m": кэш хранится пять минут"1h": кэш хранится один час
- По умолчанию: не задано, поэтому каждый из этих запросов получает своё время жизни по умолчанию
- Переопределения для сессии:
FORCE_PROMPT_CACHING_5Mимеет приоритет над всем остальным, затемCLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL, затем этот ключ, затемENABLE_PROMPT_CACHING_1H, который запрашивает время жизни в один час для каждого запроса. О том, какое место занимает значение из собственного frontmatter субагента, см. Самостоятельный выбор TTL
В этом примере субагенты и другие запросы вне основного диалога получают время жизни в один час:
{
"subagentPromptCacheTtl": "1h"
}
Этот ключ охватывает запросы, которые не охватывает promptCacheTtl, поэтому задайте оба, чтобы выбрать время жизни для каждого запроса, который выполняет Claude Code. О том, чем кэш субагента отличается от кэша основного диалога, см. Субагенты и кэш.
switchModelsOnFlag
Выберите, что происходит, когда классификатор безопасности помечает запрос: переключиться на резервную модель и продолжить или приостановиться, чтобы вы могли выбрать между переключением и редактированием промпта.
- Область действия:
Any file. В/configотображается как Switch models when a message is flagged с вариантами Switch automatically и Ask each time. - Тип: Boolean
true: Claude Code переключается на резервную модель и продолжаетfalse: в интерактивной сессии Claude Code приостанавливается, чтобы вы могли выбрать между переключением и редактированием промпта; там, где диалоговое окно показать нельзя, например при запуске с-p, помеченный запрос завершается ошибкой
- По умолчанию: не задано. Claude Code переключается автоматически, хотя в интерактивной сессии может сначала спросить
{
"switchModelsOnFlag": false
}
См. Запрос перед переключением.
ultracode
Запускайте сессии с включённым ultracode. Когда он включён, Claude планирует рабочий процесс для каждой существенной задачи, не дожидаясь вашей просьбы. Claude планирует рабочие процессы, только если для вас включены динамические рабочие процессы и ваша модель поддерживает effort xhigh. Ключ не меняет уровень effort сессии: ultracode работает на том уровне, который использует сессия. Claude Code читает этот ключ, но никогда его не записывает: /effort ultracode включает ultracode только для текущей сессии.
- Область действия:
Any file - Тип: Boolean
true: сессии запускаются с включённым ultracode, если для вас включены динамические рабочие процессы и ваша модель поддерживаетxhighfalse: сессии запускаются с выключенным ultracode
- По умолчанию: не задано, поэтому ultracode выключен
- Переопределения для сессии:
/effort ultracodeвключает ultracode для одной сессии без этого ключа, а/effort ultracode offвыключает его для одной сессии, когда этот ключ равенtrue. Флаг--effort ultracodeтакже включает его для одной сессии с effortxhigh
{
"ultracode": true
}
Уровень effort сессии определяется effortLevel, modelSettings и другими источниками effort, а ограничение effort, например maxEffortLevel, понижает этот уровень, не выключая ultracode. Для этого и для формы /effort ultracode off требуется Claude Code v2.1.284 или новее. До v2.1.284 ultracode: true запускал сессию с effort xhigh, а ограничение effort ниже xhigh оставляло ultracode выключенным. Управляющий запрос apply_flag_settings в Agent SDK также принимает этот ключ.
Настройки разрешений
Решите, что Claude может делать без запроса, в каком режиме разрешений начинается сессия и что позволяет классификатор авторежима. Синтаксис правил и модель разрешений см. в разделе Настройка разрешений.
allowManagedPermissionRulesOnly
Сделайте управляемые настройки единственным источником правил разрешений среди настроек. Claude Code затем игнорирует правила allow, ask и deny в пользовательских, проектных, локальных файлах и файлах --settings, игнорирует --allowedTools, скрывает варианты «всегда разрешать» в запросах разрешений и прекращает сохранение новых правил.
Когда применяются родительские настройки от хоста встраивания, Claude Code рассматривает их как часть управляемого уровня. Он отбрасывает их правила allow и additionalDirectories и сохраняет их правила deny и ask, кроме правил Read и Edit, шаблон которых начинается с !. Хост не может исключить пути из управляемых правил с помощью правила !, независимо от того, установлен ли этот ключ.
Правила --disallowedTools и правила deny и ask текущей сессии по-прежнему применяются, в том числе после перезагрузки настроек Claude Code посреди сессии. Они только ограничивают, поэтому не могут расширить то, что разрешают управляемые правила. До версии 2.1.257 Claude Code отбрасывал эти правила командной строки и сессии при первой перезагрузке настроек.
О том, что может исключить шаблон ! в правиле --disallowedTools или в правиле сессии, см. Правила Read и Edit.
Когда вы устанавливаете этот ключ, Claude Code v2.1.282 или новее также игнорирует frontmatter allowed-tools в скиллах и файлах .claude/commands/ из следующих источников:
- Каталог
.claude/репозитория - Ваши каталоги
~/.claude/skills/и~/.claude/commands/, включая скиллы, синхронизированные из claude.ai - Каталог, добавленный через
--add-dir - Плагины, объявленные манифестом
.claude-plugin, внутри~/.claude/skills/или.claude/skills/проекта - Плагины, загруженные только для одной сессии, идентификаторы которых оканчиваются на
@inline, когда выполняются все следующие условия:- Сессия является сессией Code или сессией Cowork, кроме облачной сессии, для которой само приложение Claude Desktop запускает Claude Code
- Ключ задан в ваших управляемых настройках, а не только в родительских настройках хоста встраивания
- Сессия работает на Claude Code v2.1.305 или новее
Скиллы из управляемых настроек и встроенные скиллы сохраняют свои allowed-tools. Плагины @inline вне этих сессий Desktop также сохраняют свои, кроме плагина с именем anthropic-skills. Поле disallowed-tools скилла по-прежнему применяется. О том, что видит разработчик, когда Claude Code игнорирует это поле, см. Когда применяются только управляемые правила разрешений.
- Область действия:
Managed - Тип: Boolean
true: управляемые настройки становятся единственным источником правил разрешений среди настроекfalse: Claude Code применяет правила разрешений из пользовательских, проектных, локальных файлов и файлов--settingsв дополнение к управляемым
- По умолчанию: не установлено, поэтому Claude Code применяет правила разрешений из пользовательских, проектных и локальных настроек, а также из
--settings, в дополнение к управляемым
{
"allowManagedPermissionRulesOnly": true
}
Этот ключ не фиксирует список разрешённых MCP-серверов; для этого установите allowManagedMcpServersOnly. См. Настройки только для управляемого уровня.
autoMode
Добавьте собственные правила к тому, что блокирует и разрешает классификатор авторежима. Используйте его, чтобы сообщить классификатору, каким репозиториям, бакетам и доменам доверяет ваша организация, чтобы он перестал блокировать рутинные внутренние операции. Классификатор поставляется со встроенными разрешающими и запрещающими правилами. Включите в массив буквальную строку "$defaults", чтобы сохранить встроенные правила в этой позиции и добавить свои вокруг них; опустите её, чтобы заменить встроенные правила своими.
- Область действия:
User or managed - Тип: объект с массивами правил в свободной форме
environment,allow,soft_denyиhard_deny, а также BooleanclassifyAllShell - По умолчанию: не установлено, поэтому классификатор использует только свои встроенные правила
Этот пример сохраняет встроенные правила soft_deny через "$defaults" и добавляет ещё одно, которое блокирует terraform apply:
{
"autoMode": {
"soft_deny": ["$defaults", "Never run terraform apply"]
}
}
Когда один и тот же массив задан в нескольких из этих файлов, Claude Code объединяет записи. О формате правил и о том, как применяется каждый массив, см. Настройка авторежима.
autoMode.classifyAllShell
Отправляйте каждую команду Bash и PowerShell через классификатор авторежима, пока авторежим активен. По умолчанию авторежим приостанавливает только разрешающие правила, которые могут запускать произвольный код: правила на весь инструмент и правила с подстановочными знаками, такие как Bash(*), а также префиксы интерпретаторов или обёрток оболочки, такие как Bash(python *). Команда, которой соответствует любое другое разрешающее правило, например Bash(npm test), минует классификатор, если только у неё нет разрешённых доменов для отдельной команды. Когда команда минует классификатор, деструктивный аргумент, который префикс правила не предусмотрел, может пройти незамеченным. Установка этого ключа приостанавливает все разрешающие правила для оболочки на время сессии, чтобы классификатор видел каждую команду. Требуется Claude Code v2.1.193 или новее.
- Область действия:
User or managed. Читается везде, где читаетсяautoMode. - Тип: Boolean
true: пока авторежим активен, Claude Code отправляет каждую команду Bash и PowerShell через классификатор и приостанавливает ваши разрешающие правила для оболочки; вне авторежима правила по-прежнему применяютсяfalse: авторежим приостанавливает только разрешающие правила, которые могут запускать произвольный код, такие какBash(*)иBash(python *); команда, которой соответствует любое другое разрешающее правило, минует классификатор, если только у неё нет разрешённых доменов для отдельной команды, а все остальные shell-команды проходят через него
- По умолчанию:
false
{
"autoMode": {
"classifyAllShell": true
}
}
См. Направление всех shell-команд через классификатор.
disableAutoMode
Удалите авторежим из цикла Shift+Tab. Любая сессия, которая в противном случае начиналась бы в авторежиме, будь то из-за --permission-mode auto, файла настроек или встроенного значения по умолчанию, вместо этого начинается в default. Администраторы задают этот ключ в управляемых настройках, чтобы запретить разработчикам своей организации использовать авторежим.
- Область действия:
Any file. Наиболее полезен в управляемых настройках, где пользователи не могут его переопределить. Также принимается внутриpermissionsкакpermissions.disableAutoMode. - Тип: строка
"disable" - По умолчанию: не установлено
{
"disableAutoMode": "disable"
}
permissions
Управляйте тем, какие инструменты Claude может использовать без запроса, какие всегда требуют подтверждения, а какие заблокированы, и задайте режим разрешений, в котором начинается сессия. Все ключи permissions.* ниже вложены в этот объект.
- Область действия:
Any file - Тип: объект с
allow,ask,deny,additionalDirectories,blockReadsOutsideWorkingDirectories,defaultMode,disableBypassPermissionsModeиdisableAutoMode - По умолчанию: не установлено
Этот пример разрешает команды npm run без запроса, запрашивает подтверждение перед git push, блокирует чтение .env и запускает сессии в acceptEdits:
{
"permissions": {
"allow": ["Bash(npm run *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)"],
"defaultMode": "acceptEdits"
}
}
Три массива правил используют один синтаксис; см. Синтаксис правил разрешений в разделе permissions.allow. О том, как объединяются правила разрешений из разных файлов, см. как правила разрешений объединяются между областями действия; о том, как объединяются ключи настроек в целом, см. Приоритет настроек в руководстве по настройкам.
useAutoModeDuringPlan
Выберите, использует ли Claude Code классификатор авторежима для проверки shell-команд в режиме планирования. При значении по умолчанию true классификатор проверяет каждую команду во время планирования, когда авторежим доступен, и вы не видите запроса, за исключением удалений критических путей. Установите false, чтобы получать запрос разрешения для каждой команды вне встроенного набора команд только для чтения. Отображается в /config как Use auto mode during plan.
- Область действия:
User, local, or managed. Репозиторий не может отключить его за вас. - Тип: Boolean
true: то же, что и отсутствие значения; когда авторежим доступен, классификатор проверяет каждую shell-команду во время планирования вместо запроса к вам, за исключением удалений критических путей. Значениеfalseв любом из этих файлов всё равно отключает егоfalse: вы получаете запрос разрешения для каждой команды вне встроенного набора команд только для чтения
- По умолчанию:
true
{
"useAutoModeDuringPlan": false
}
permissions.allow
Перечислите использования инструментов, которые Claude Code одобряет без запроса. В правиле MCP * может встречаться только в имени инструмента после префикса mcp__<server>__, например mcp__github__get_*; в имени сервера он встречаться не может.
- Область действия:
Any file - Тип: массив строк правил разрешений
- По умолчанию: не установлено
- Переопределения для отдельной сессии:
--allowedToolsдобавляет разрешающие правила на одну сессию, а запрещающее правило из любого файла настроек по-прежнему блокирует указанный в нём инструмент
Этот пример разрешает git diff и позволяет Claude Code читать ваш .zshrc без запроса:
{
"permissions": {
"allow": ["Bash(git diff *)", "Read(~/.zshrc)"]
}
}
Claude Code применяет правила allow из .claude/settings.json проекта только после того, как вы подтвердите диалоговое окно доверия рабочему пространству для этой папки.
Синтаксис правил разрешений
Правила разрешений имеют формат Tool или Tool(specifier). Claude Code сначала проверяет правила deny, затем ask, затем allow, и решение принимает первое совпадение, независимо от того, насколько конкретно каждое правило; см. порядок проверки правил разрешений.
Каждая строка показывает одну форму правила и то, чему она соответствует.
| Правило | Чему соответствует |
|---|---|
Bash |
Каждая команда Bash |
Bash(npm run *) |
Команды, начинающиеся с npm run |
Read(./.env) |
Чтение файла .env |
WebFetch(domain:example.com) |
Запросы на загрузку с example.com |
Полный синтаксис правил, включая поведение подстановочных знаков, шаблоны для конкретных инструментов в правилах Read, Edit, WebFetch, MCP и Agent, а также ограничения безопасности шаблонов Bash, см. в разделе Синтаксис правил разрешений.
permissions.ask
Перечислите использования инструментов, для которых у вас запрашивается подтверждение даже в режиме разрешений, который иначе одобрил бы их, например acceptEdits или bypassPermissions. В режиме dontAsk Claude Code отклоняет соответствующее использование инструмента вместо запроса.
- Область действия:
Any file - Тип: массив строк правил разрешений
- По умолчанию: не установлено
{
"permissions": {
"ask": ["Bash(git push *)"]
}
}
permissions.deny
Перечислите использования инструментов, которые Claude Code блокирует. Используйте этот ключ для файлов, содержащих API-ключи, секреты или значения окружения: Claude Code исключает соответствующие файлы из обнаружения файлов и результатов поиска, запрещает их чтение и блокирует инструменты Edit и Write для соответствующих путей.
Запрещающие правила Read и Edit применяются к встроенным файловым инструментам Claude, к файловым командам, которые Claude Code распознаёт в Bash, таким как cat, head, tail, sed и tee, и к целям перенаправлений Bash, таких как > file и < file; они не применяются к команде, которая читает файлы, не называя их, например grep -r pattern ., или к произвольным подпроцессам, поэтому для принудительного контроля на уровне ОС включите песочницу.
- Область действия:
Any file - Тип: массив строк правил разрешений
- По умолчанию: не установлено
- Переопределения для отдельной сессии:
--disallowedToolsдобавляет запрещающие правила на одну сессию наряду с этим ключом
Этот пример запрещает чтение файлов .env, каталога secrets и файла учётных данных, а также блокирует команды curl:
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Read(./config/credentials.json)",
"Bash(curl *)"
]
}
}
Имена инструментов поддерживают glob-шаблоны, поэтому "*" запрещает все инструменты, а "mcp__*" запрещает все MCP-инструменты. Claude Code игнорирует запрещающее правило для инструмента EndConversation, пока Claude доступен хотя бы один другой инструмент. Запрещающее правило Bash сопоставляется с командой в том виде, в каком её пишет Claude, поэтому Bash(curl *) не останавливает /usr/bin/curl или sh -c 'curl …'; см. чему не соответствует правило Bash. Этот ключ заменяет устаревшую конфигурацию ignorePatterns.
permissions.additionalDirectories
Предоставьте Claude доступ к файлам в каталогах за пределами того, в котором вы начали работу, в качестве дополнительных рабочих каталогов. Большая часть конфигурации .claude/ из этих каталогов не обнаруживается.
- Область действия:
Any file, с ограничениями на доступ на запись в песочнице, который дают записи из проектных и локальных настроек - Тип: массив путей к каталогам
- По умолчанию: не установлено
- Переопределения для отдельной сессии:
--add-dirи/add-dirдобавляют каталоги на одну сессию наряду с этим ключом
{
"permissions": {
"additionalDirectories": ["../docs/"]
}
}
Как и правила allow, записи в .claude/settings.json проекта вступают в силу только после того, как вы подтвердите диалоговое окно доверия рабочему пространству для этой папки.
permissions.blockReadsOutsideWorkingDirectories
Заставьте файловые инструменты Claude отказывать в чтении за пределами ваших рабочих каталогов в любом режиме разрешений, включая bypassPermissions. Claude Code отклоняет вызовы Read, Grep, Glob и LSP для таких путей и сообщает Claude, чтобы он попросил вас добавить каталог с помощью /add-dir. Файлы, которые нужны самому Claude Code, остаются доступными для чтения, например ваши скиллы, плагины, правила, агенты, команды и файл памяти CLAUDE.md в ~/.claude/. Требуется Claude Code v2.1.257 или новее.
Shell-команды Claude Code блокирует иначе:
- В разделе Действия, которые не одобряет автоматически ни один режим описано, когда shell-команда, читающая такой путь, вызывает запрос к вам
- В разделе Команды в песочнице при действующей блокировке описано, что может читать команда в песочнице
Команда Bash, которую парсер оболочки не может отследить, например команда, которая меняет каталог более одного раза или запускает подоболочку, вызывает запрос к вам даже в авторежиме и в режиме bypassPermissions. Запрос появляется, даже если команда не называет ни одного пути за пределами рабочих каталогов. Этот запрос не появляется, когда команда выполняется в песочнице и песочница обеспечивает блокировку.
Claude Code также записывает сюда true, когда вы выбираете блокировку такого чтения в запросе авторежима перед первым чтением за пределами рабочих каталогов.
- Область действия:
Any file. Значениеtrueв любом файле применяется, поэтому репозиторий может включить блокировку для себя, но не может снять вашу. - Тип: Boolean
true: файловые инструменты Claude отказывают в чтении за пределами рабочих каталоговfalse: то же, что и отсутствие значения; блокировка всё равно применяется, если другой файл устанавливаетtrue
- По умолчанию: не установлено, поэтому чтение за пределами рабочих каталогов подчиняется вашему режиму разрешений
{
"permissions": {
"blockReadsOutsideWorkingDirectories": true
}
}
Каталоги, которые вы добавляете с помощью --add-dir, /add-dir или additionalDirectories в пользовательских или управляемых настройках, считаются рабочими каталогами для блокировки. Каталоги, добавленные только в настройках репозитория, не считаются: те, что указаны в .claude/settings.json, и те, что указаны в .claude/settings.local.json, если только git не сообщает, что этот файл не отслеживается. В каталоге, который не является git-репозиторием, или когда git отслеживает этот файл, Claude Code рассматривает .claude/settings.local.json как настройки репозитория, поэтому каталоги, которые должны оставаться доступными для чтения, указывайте в пользовательских настройках.
Когда autoMemoryDirectory задан в .claude/settings.json проекта или в .claude/settings.local.json, рассматриваемом как предоставленный репозиторием, Claude Code не загружает автоматическую память из этого каталога и ничего в него не сохраняет.
Чтобы снять блокировку, удалите ключ из всех файлов настроек, которые его устанавливают, затем начните новую сессию.
Команды в песочнице при действующей блокировке
Когда изоляция в песочнице включена, блокировка также распространяется на команды в песочнице. Claude Code запрещает им чтение вашего домашнего каталога и других корневых каталогов, содержащих пользовательские файлы: /Users, /home, /root, /Volumes, /mnt, /media, /run/media и /srv. Затем он снова открывает рабочие каталоги, worktree, которые Claude Code создаёт в сессии, временный каталог сессии и те части ~/.claude, которые нужны командам, например скиллы и плагины. Пока блокировка действует, записи allowRead и allowWrite из настроек репозитория не учитываются.
Когда рабочий каталог сессии является связанным git worktree, в том числе таким, в который Claude Code перешёл посреди сессии, общий каталог .git репозитория остаётся доступным для чтения и записи командам в песочнице, чтобы git продолжал там работать.
В следующих случаях блокировка не распространяется на команды в песочнице, тогда как файловые инструменты Claude продолжают её соблюдать:
- Изоляция файловой системы отключена через
sandbox.filesystem.disabled - Установлен
allowManagedReadPathsOnly - Путь к каталогу, в котором вы запустили Claude Code, содержит glob-символ, например
*,?или[
При действующей блокировке Claude Code снова открывает командам в песочнице ваши глобальные файлы конфигурации git, чтобы git сохранял ваши идентификационные данные и настройки:
~/.gitconfig- Файлы
config,ignoreиattributesв$XDG_CONFIG_HOME/git, который по умолчанию равен~/.config/git - Файлы, на которые ваша глобальная конфигурация git ссылается через
[include],[includeIf],core.excludesFileилиcore.attributesFile
Claude Code оценивает каждый файл отдельно. Когда файл находится там, куда команда в песочнице может писать, напрямую или через символическую ссылку, Claude Code не открывает снова файлы, на которые он ссылается.
В Linux и WSL2 файл конфигурации, являющийся символической ссылкой, может оставаться недоступным для чтения по собственному пути, и тогда git работает без него. ~/.git-credentials и $XDG_CONFIG_HOME/git/credentials остаются заблокированными.
Если снова открытый файл содержит секрет, например токен http.extraHeader, добавьте его путь в sandbox.filesystem.denyRead. Запись denyRead, охватывающая файл, всегда имеет приоритет над этим повторным открытием.
permissions.defaultMode
Задайте режим разрешений, в котором начинаются новые сессии. Если оставить ключ не установленным, сессии начинаются во встроенном режиме по умолчанию для вашего интерфейса.
- Область действия:
Any file.autoиbypassPermissionsне вступают в силу из проектных или локальных настроек, поэтому задавайте их в~/.claude/settings.json. До версии 2.1.257bypassPermissionsвступал в силу из любого файла. Для диалогов, которые запускает расширение VS Code, Claude Code читает только пользовательские, управляемые значения и значения--settings. - Тип: строка, одно из значений:
"default": Claude Code без запроса выполняет только чтение"acceptEdits": Claude Code также без запроса выполняет редактирование файлов и распространённые команды файловой системы, такие какmkdirиmv"plan": Claude Code читает и планирует, но блокирует редактирование, пока вы не утвердите план"auto": Claude Code работает без рутинных запросов; перед выполнением таких действий, как shell-команды и сетевые запросы, фоновый классификатор проверяет, что они соответствуют вашей задаче"dontAsk": Claude Code автоматически отклоняет каждый вызов, который иначе потребовал бы запроса, хотя установленный вами мод по-прежнему может одобрить некоторые из этих вызовов. Чтение файлов внутри ваших рабочих каталогов, другие действия, не требующие подтверждения, и заранее разрешённые инструменты по-прежнему выполняются, за исключением чтения по сетевым путям"bypassPermissions": Claude Code выполняет всё без запроса"manual": псевдоним для"default"
- По умолчанию: не установлено
- Переопределения для отдельной сессии:
--permission-modeи его эквивалент--dangerously-skip-permissionsдляbypassPermissionsимеют приоритет над этим ключом на одну сессию
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
Правила разрешений действуют поверх любого режима: правила deny блокируют в каждом режиме, включая bypassPermissions. См. Режимы разрешений. В облачных сессиях Claude Code учитывает из этого ключа только acceptEdits, plan, default и auto. О диалогах, которые запускает расширение VS Code, см. какую настройку расширение читает для начального режима разрешений.
permissions.disableBypassPermissionsMode
Запретите кому-либо входить в режим bypassPermissions. Claude Code тогда отклоняет флаг --dangerously-skip-permissions и игнорирует permissionMode: bypassPermissions в определении агента, поэтому субагент работает в режиме разрешений родительской сессии.
- Область действия:
Any file. Обычно задаётся в управляемых настройках для соблюдения политики организации. - Тип: строка
"disable" - По умолчанию: не установлено
- Переопределения для отдельной сессии: этот ключ имеет приоритет над
--dangerously-skip-permissions, который Claude Code отклоняет, пока ключ установлен
{
"permissions": {
"disableBypassPermissionsMode": "disable"
}
}
До версии 2.1.223 Claude Code применял режим разрешений из frontmatter даже при отключённом обходе.
skipAutoPermissionPrompt
Пропустите одноразовое уведомление с описанием авторежима, которое Claude Code показывает, когда вы впервые сами входите в авторежим, например через собственные настройки или переключатель режимов, а не когда встроенное значение по умолчанию запускает в нём сессию. Claude Code показывает это уведомление один раз, а затем запоминает, что оно было показано, поэтому этот ключ имеет значение только там, где уведомление ещё не появлялось.
- Область действия:
User or managed. Репозиторий не может установить его за вас. - Тип: Boolean
true: Claude Code пропускает уведомлениеfalse: то же, что и отсутствие значения; уведомление появляется один раз, если только другой из этих файлов не устанавливаетtrue
- По умолчанию: не установлено, поэтому уведомление появляется один раз
{
"skipAutoPermissionPrompt": true
}
skipDangerousModePermissionPrompt
Пропустите диалоговое окно подтверждения, которое Claude Code показывает перед входом сессии в режим bypassPermissions, будь то из-за --dangerously-skip-permissions или defaultMode: "bypassPermissions". Claude Code записывает сюда true в ваших пользовательских настройках, когда вы один раз подтверждаете это диалоговое окно.
- Область действия:
User, local, or managed. Недоверенный репозиторий не может пропустить диалоговое окно за вас. - Тип: Boolean
true: Claude Code пропускает диалоговое окно подтверждения перед входом сессии в режимbypassPermissionsfalse: то же, что и отсутствие значения; диалоговое окно появляется, если только другой из этих файлов не устанавливаетtrue
- По умолчанию: не установлено, поэтому диалоговое окно появляется
{
"skipDangerousModePermissionPrompt": true
}
Настройки песочницы
Изолируйте команды, которые выполняет Claude, от вашей файловой системы, сети и учётных данных. Информацию о том, как работает песочница и требования к платформе, см. в разделе Sandboxing.
sandbox
Изолируйте команды Bash, которые выполняет Claude, от вашей файловой системы и сети с помощью sandboxing. Включите песочницу с помощью enabled, затем сузьте или расширьте то, к чему могут обращаться изолированные команды, с помощью подобъектов filesystem, network и credentials. Песочница работает на macOS, Linux и WSL2.
- Scope:
Any file - Тип: объект с ключами
enabled,failIfUnavailable,autoAllowBashIfSandboxed,excludedCommands,allowUnsandboxedCommands,enableWeakerNestedSandbox,enableWeakerNetworkIsolation,allowAppleEvents,allowNestedUserNamespaces,bwrapPath,socatPath,ignoreViolationsиripgrep, а также объектамиfilesystem,networkиcredentials - Default: не установлено, поэтому Claude Code выполняет команды без песочницы
Это включает песочницу, пропускает запросы разрешений для изолированных команд, запускает docker вне песочницы, открывает два дополнительных пути записи, скрывает файл учётных данных AWS и предварительно разрешает GitHub и npm:
{
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": true,
"excludedCommands": ["docker *"],
"filesystem": {
"allowWrite": ["/tmp/build", "~/.kube"],
"denyRead": ["~/.aws/credentials"]
},
"network": {
"allowedDomains": ["github.com", "*.npmjs.org"]
}
}
}
Когда управляемые настройки задают логический ключ, такой как enabled или failIfUnavailable, это значение переопределяет всё, что устанавливает разработчик. Claude Code объединяет ключи-массивы во всех областях действия настроек, которые загружает сессия, поэтому разработчик может добавлять записи; см. Keep developers from widening the policy для блокировок, доступных только в управляемых настройках. Чтобы требовать песочницу для организации, см. Enforce sandboxing with managed settings.
sandbox.enabled
Включите sandboxing для команд Bash. Когда вы выбираете режим на панели /sandbox, Claude Code записывает этот ключ в .claude/settings.local.json для текущего проекта; установите его в ~/.claude/settings.json, чтобы изолировать каждый проект.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Type: Boolean
true: Claude Code изолирует команды Bashfalse: команды Bash выполняются без изоляции
- Default:
false
{
"sandbox": {
"enabled": true
}
}
На Linux и WSL2 песочнице требуются bubblewrap и socat; см. Set up Linux and WSL2. Когда песочница не может запуститься, Claude Code выполняет команды без изоляции, если вы также не установите failIfUnavailable.
sandbox.failIfUnavailable
Заставьте Claude Code завершаться с ошибкой при запуске, когда sandbox.enabled имеет значение true, но песочница не может запуститься, потому что отсутствует зависимость или платформа не поддерживается. Без этого ключа Claude Code выполняет команды без изоляции. Эту настройку могут использовать управляемые развёртывания, которым песочница нужна как обязательный барьер безопасности.
На платформе, которую песочница не поддерживает, Claude Code не запускается при включённом ключе. См. Enforce sandboxing with managed settings.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Тип: логический
true: Claude Code завершается с ошибкой при запуске, когдаsandbox.enabledравноtrue, но песочница не может запуститься. Если песочница проходит эту проверку, а затем не может инициализироваться, сессия продолжает работать, и Claude Code отклоняет каждую команду в песочницеfalse: Claude Code запускает команды без песочницы, когда песочница не может запуститься
- Default:
false
Этот пример включает песочницу на управляемых компьютерах и задаёт failIfUnavailable значение true:
{
"sandbox": {
"enabled": true,
"failIfUnavailable": true
}
}
См. Enforce sandboxing with managed settings.
sandbox.autoAllowBashIfSandboxed
Позвольте Claude Code выполнять изолированные команды Bash без запроса разрешения. Команды, которые не могут выполняться в песочнице, по-прежнему проходят обычный поток разрешений, и правила deny и правила ask с ограничением содержимого, такие как Bash(git push *), по-прежнему применяются; простое правило Bash ask пропускается для изолированных команд. Установите значение false, чтобы изолированные команды тоже проходили через обычный поток разрешений, который вкладка Mode в /sandbox называет режимом обычных разрешений.
- Scope:
Any file - Type: Boolean
true: Claude Code выполняет изолированные команды Bash без запроса разрешения, за исключением случаев, описанных в разделе Auto-allow mode;CLAUDE_CODE_SUBPROCESS_ENV_SCRUBотключает автоматическое разрешениеfalse: изолированные команды проходят обычный поток разрешений, поэтому решают ваши правила разрешений и режим разрешений. Вкладка Mode в/sandboxназывает это режимом обычных разрешений
- Default:
true
Это сохраняет песочницу включённой и отправляет изолированные команды через обычный поток разрешений:
{
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": false
}
}
См. Auto-allow mode, чтобы узнать, о чём всё ещё запрашивает режим автоматического разрешения и как он ведёт себя в режиме планирования.
sandbox.excludedCommands
Перечислите команды, которые Claude Code выполняет вне песочницы, например инструменты, которые не работают в ней. Каждая запись использует тот же синтаксис, что и содержимое правила разрешений Bash(...): точная команда, префикс, такой как docker *, или шаблон с подстановкой. Шаблон без подстановки означает точное совпадение, поэтому docker совпадает только с docker без аргументов.
Ваши записи выводят вызов Bash из песочницы, только когда они охватывают каждую команду в нём, и некоторые формы вызова остаются изолированными даже тогда. Одна лишь запись docker * не выводит npm ci && docker build . из песочницы.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Type: array of command patterns
- Default: не установлено, поэтому ни одна команда не исключена
{
"sandbox": {
"excludedCommands": ["docker *"]
}
}
Claude Code сохраняет вызов Bash в изоляции, когда он имеет одну из этих форм, среди прочих:
- Команда, начинающаяся с
sudo,evalилиxargs cd,pushdилиpopd, где бы они ни появлялись в вызове- Подстановка команды, подоболочка или блок управления потоком, такой как
ifилиfor - Перенаправление, такое как
docker build . > build.logили heredoc<<EOF, кроме перенаправления, которое только дублирует файловый дескриптор, как2>&1 - Имя команды, которое поступает из переменной
git clone,git init,git worktree add,git worktree moveилиgit bundle createс аргументом пути, который является абсолютным, начинается с~или содержит сегмент..
Например, cd build && docker compose up остаётся изолированным при записи docker *, и добавление записи cd этого не меняет. При записи git * команда git clone <url> vendor/lib выполняется вне песочницы, но git clone <url> ~/tools остаётся изолированной. Клонирование записывает целое дерево файлов, возможно исполняемых, туда, куда указывает путь назначения.
Исключённые команды по-прежнему проходят обычный поток разрешений. Исключение — это удобство, а не граница безопасности: когда инструменту нужно писать только в определённое место, filesystem.allowWrite оставляет его в песочнице.
Записи из областей действия настроек, которые загружает сессия, объединяются в один список, если только песочница не является обязательной по требованию администратора. Пока это так, Claude Code игнорирует записи в .claude/settings.json и .claude/settings.local.json, чтобы клонированный репозиторий не мог вывести команды из песочницы. Записи в управляемых настройках, --settings и вашем ~/.claude/settings.json по-прежнему применяются, и никакая блокировка управляемых настроек не распространяется на этот список.
sandbox.allowUnsandboxedCommands
Позвольте Claude повторить попытку выполнения команды вне песочницы с параметром dangerouslyDisableSandbox после того, как песочница её заблокирует. Когда значение равно false, Claude Code игнорирует этот параметр. Тогда, пока песочница работает, команды, которые выполняет Claude, изолируются, если они не совпадают с записью excludedCommands. Вкладка Overrides в /sandbox показывает это состояние как Strict sandbox mode. Значение false в управляемых настройках включает строгий режим песочницы для разработчиков, на которых они распространяются.
- Scope:
Any file, с ограничением для настроек проекта и локальных настроек - Type: Boolean
true: Claude может повторить попытку выполнения команды вне песочницы с параметромdangerouslyDisableSandboxпосле того, как песочница её заблокируетfalse: Claude Code игнорирует этот параметр, поэтому, пока песочница работает, команды, которые выполняет Claude, изолируются, если они не совпадают с записьюexcludedCommands
- Default:
true
Это обеспечивает строгий режим песочницы для всех, на кого распространяются управляемые настройки:
{
"sandbox": {
"enabled": true,
"allowUnsandboxedCommands": false
}
}
Значение false из управляемых настроек или --settings также делает песочницу обязательной по требованию администратора. Значение false в ваших пользовательских настройках имеет приоритет над значением true проекта, но не делает песочницу обязательной по требованию администратора. Приоритет над значением проекта требует Claude Code v2.1.285 или более поздней версии.
Кто подтверждает повторную попытку без изоляции, зависит от вашего режима разрешений и правил разрешения. См. The unsandboxed retry escape hatch.
Чтобы узнать, когда команды, которые вы вводите сами в ! shell-mode prompt, выполняются в изоляции, см. strict sandbox mode.
sandbox.filesystem
Управляйте тем, какие пути могут читать и записывать изолированные команды. По умолчанию они могут писать в рабочий каталог, временный каталог пользователя и каталоги, которые вы добавляете с помощью --add-dir, /add-dir или permissions.additionalDirectories, и могут читать остальную часть файловой системы, включая файлы учётных данных. Расширьте или сузьте это с помощью четырёх списков путей или отключите слой файловой системы с помощью disabled. См. Filesystem isolation для получения информации о границах по умолчанию.
- Scope:
Any file - Type: object с массивами
allowWrite,denyWrite,denyReadиallowRead, плюс логические значенияallowManagedReadPathsOnlyиdisabled - Default: не установлено, поэтому применяются границы чтения и записи по умолчанию
Это позволяет изолированным командам писать в каталог сборки и ваш kubeconfig, а также скрывает файл учётных данных AWS:
{
"sandbox": {
"filesystem": {
"allowWrite": ["/tmp/build", "~/.kube"],
"denyRead": ["~/.aws/credentials"]
}
}
}
Claude Code применяет эти списки на границе песочницы ОС, поэтому они распространяются на каждый подпроцесс, который запускает изолированная команда, например kubectl, terraform или npm. Claude Code добавляет ваши permission rules в те же списки: правила Edit allow и deny — в allowWrite и denyWrite, правила Read deny — в denyRead, а правила WebFetch(domain:...) allow и deny — в списки доменов network.
Если не действует блокировка, Claude Code объединяет эти списки во всех файлах настроек, которые загружает сессия. allowManagedReadPathsOnly ограничивает allowRead записями из управляемых настроек, а allowManagedDomainsOnly делает то же самое для разрешённых доменов. Блокировки репозитория исключают записи из файлов настроек репозитория.
Configure sandboxing описывает источники, которые вы исключаете с помощью --setting-sources. Когда вы редактируете список во время сессии, Claude Code применяет изменение к работающей сессии.
Префиксы путей песочницы
Пути в allowWrite, denyWrite, denyRead, allowRead и credentials.files разрешаются по их префиксу:
| Prefix | Meaning | Example |
|---|---|---|
/ |
Абсолютный путь от корня файловой системы | /tmp/build остаётся /tmp/build |
~/ |
Относительно домашнего каталога | ~/.kube становится $HOME/.kube |
./ или без префикса |
Относительно корня проекта для настроек проекта или относительно ~/.claude для пользовательских настроек |
./output в .claude/settings.json разрешается в <project-root>/output |
Префикс //path для абсолютных путей также работает. Если вы используете одиночный слэш /path, ожидая разрешения относительно проекта, переключитесь на ./path. Этот синтаксис отличается от Read and Edit permission rules, которые используют //path для абсолютного пути и /path для пути относительно проекта: пути файловой системы песочницы используют стандартные соглашения, поэтому /tmp/build — это абсолютный путь.
Claude Code удаляет конечный слэш из пути каталога, поэтому ~/.aws и ~/.aws/ совпадают с одним и тем же каталогом. До v2.1.224 Claude Code передавал конечный слэш в песочницу, и Claude всё ещё мог читать или записывать пути под записью denyRead или denyWrite, написанной с ним.
Где подстановочные знаки работают в путях песочницы
Подстановочные знаки *, ? и ** работают во всех четырёх списках путей sandbox.filesystem в macOS и в меньшем числе мест в Linux и WSL2:
Список sandbox.filesystem |
Что работает в Linux и WSL2 | Пример, который не работает в Linux и WSL2 | Что написать вместо этого |
|---|---|---|---|
denyRead, allowRead |
Работает завершающий /**, поэтому ~/build/** охватывает тот же каталог, что и ~/build. Любой другой подстановочный знак работает только после имени первого каталога в полном пути записи. |
/**/*.pem в denyRead ничего не охватывает, поэтому не блокирует чтение |
/srv/**/*.pem, по одной записи для каждого каталога верхнего уровня |
allowWrite, denyWrite |
Работает только завершающий /**, поэтому ~/build/** охватывает тот же каталог, что и ~/build |
./src/* охватывает только файл или каталог в src, который сам называется *, и ничего, если такого нет |
./src, который охватывает всё внутри src, или по одной записи для каждого пути |
В ~/keys/*.pem подстановочный знак стоит после имени первого каталога, которым при домашнем каталоге /home/alice является home:
~/keys/*.pem the entry
/home/alice/keys/*.pem its full path
^^^^ the first directory name, home
В Linux и WSL2 вкладка Config панели /sandbox в сессии предупреждает о правилах разрешений Edit, содержащих подстановочный знак, отличный от завершающего /**. Такие подстановочные знаки не работают для команд в песочнице. Добавьте каждый путь, который должно охватывать правило, или содержащий их каталог в allowWrite для разрешающего правила или в denyWrite для запрещающего.
Имена каталогов с квадратными, фигурными или круглыми скобками
Чтобы разрешить или заблокировать каталог, имя которого содержит квадратные скобки, напишите имя как есть, например ./app/[slug]. В этой записи [slug] — это настоящее имя каталога вместе со скобками:
app/
└── [slug]/
└── page.tsx
Такая запись охватывает всё внутри каталога, поэтому не добавляйте завершающий /**. В macOS, а также в Linux и WSL2 каталог app/[slug] должен существовать в момент запуска команды в песочнице.
- Квадратные скобки, например
[slug]: во всех списках в macOS, а также вdenyReadиallowReadв Linux и WSL2 скобки в./app/[slug]также являются шаблоном. Тогда запись также соответствует любому пути внутриapp, имя которого состоит из одного символа изslug, напримерapp/sилиapp/g. Если эта запись находится вallowReadили вallowWriteв macOS, команды в песочнице также получают доступ к этим путям. Переименуйте те, к которым у них не должно быть доступа. - Квадратные скобки, например
[user-id]или[post-id], где символ слева от дефиса при сортировке идёт после символа справа:./app/[user-id]охватывает только каталог с точно таким именем во всех списках на всех платформах. До v2.1.304 команды в песочнице в Linux и WSL2 не запускались, покаdenyReadилиallowReadсодержали такую запись. - Фигурные и круглые скобки: это обычные символы, поэтому
~/data/{keys,tokens}охватывает один каталог с именем{keys,tokens}, а не два варианта. Чтобы охватить~/data/keysи~/data/tokens, добавьте каждый отдельной записью.
sandbox.filesystem.allowWrite
Добавьте пути, куда изолированные команды могут писать, помимо рабочего каталога, временного каталога пользователя и каталогов, которые вы добавили с помощью --add-dir, /add-dir или permissions.additionalDirectories. Используйте это, когда подпроцессу, такому как kubectl или инструмент сборки, нужно писать вне проекта.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Type: array of path strings, using the sandbox path prefixes
- Default: не установлено, поэтому изолированные команды могут писать в рабочий каталог, временный каталог пользователя, каталоги, которые вы добавили с помощью
--add-dirили/add-dir, и каталоги вpermissions.additionalDirectories
Это позволяет сборке писать в /tmp/build и позволяет kubectl обновлять ваш kubeconfig:
{
"sandbox": {
"filesystem": {
"allowWrite": ["/tmp/build", "~/.kube"]
}
}
}
Claude Code объединяет записи allowWrite и пути из ваших правил разрешений Edit(...) allow во всех областях действия настроек, которые загружает сессия, исключая записи из настроек репозитория, пока включён permissions.blockReadsOutsideWorkingDirectories. Блокировки репозитория тоже могут исключать записи репозитория. Запись allowWrite не может снять защиту с protected path.
sandbox.filesystem.denyWrite
Запретите изолированным командам запись в определённые пути, включая пути внутри каталога, который в остальном доступен для записи.
- Scope:
Any file - Type: array of path strings, using the sandbox path prefixes
- Default: не установлено
Это не позволяет изолированным командам изменять системную конфигурацию или устанавливать двоичные файлы:
{
"sandbox": {
"filesystem": {
"denyWrite": ["/etc", "/usr/local/bin"]
}
}
}
Claude Code объединяет записи во всех областях действия настроек, которые загружает сессия, и добавляет пути из ваших правил разрешений Edit(...) deny.
sandbox.filesystem.denyRead
Запретите изолированным командам чтение определённых путей, например файлов учётных данных, которые политика чтения по умолчанию в противном случае раскрыла бы. Чтобы защитить файл учётных данных и сохранить возможность использовать его через прокси песочницы, используйте вместо этого sandbox.credentials.
- Scope:
Any file - Type: array of path strings, using the sandbox path prefixes
- Default: не установлено, поэтому изолированные команды сохраняют default read access, который включает файлы учётных данных, такие как
~/.aws/credentials
{
"sandbox": {
"filesystem": {
"denyRead": ["~/.aws/credentials"]
}
}
}
Claude Code объединяет записи во всех областях действия настроек, которые загружает сессия, и добавляет пути из ваших правил разрешений Read(...) deny. Когда filesystem.disabled имеет значение true, Claude Code не применяет эти записи.
sandbox.filesystem.allowRead
Повторно откройте чтение для определённых путей внутри области, которую блокирует denyRead, чтобы организовать доступ на чтение только к рабочей области. Точная запись или запись с подстановкой в denyRead остаётся заблокированной внутри более широкого allowRead, как показывает overlap table. Когда запись denyRead с подстановкой, такая как ~/**/.env, совпадает с каталогом, Claude Code блокирует также чтение его содержимого. До v2.1.236 на macOS Claude Code повторно открывал пути, совпавшие с записью denyRead с подстановкой, везде, где их охватывала более широкая запись allowRead, и оставлял содержимое совпавшего каталога доступным для чтения.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Type: array of path strings, using the sandbox path prefixes
- Default: не установлено
Это блокирует чтение вашего домашнего каталога, кроме самого проекта:
{
"sandbox": {
"filesystem": {
"denyRead": ["~/"],
"allowRead": ["."]
}
}
}
Claude Code разрешает запись . в корень проекта в настройках проекта и в ~/.claude в пользовательских настройках. Claude Code объединяет записи во всех файлах настроек, которые загружает сессия, если не установлен allowManagedReadPathsOnly, и исключает записи из настроек репозитория, пока включён permissions.blockReadsOutsideWorkingDirectories. Блокировки репозитория тоже могут исключать записи репозитория.
sandbox.filesystem.allowManagedReadPathsOnly
Учитывайте только записи allowRead, которые поступают из управляемых настроек, чтобы разработчики не могли повторно открыть доступ на чтение к путям, которые заблокировала ваша организация. Claude Code по-прежнему объединяет записи denyRead из всех областей действия настроек, которые загружает сессия.
- Scope:
Managed - Type: Boolean
true: Claude Code учитывает только записиallowReadиз управляемых настроекfalse: записиallowReadиз других файлов настроек могут объединяться
- Default:
false
Это блокирует чтение домашнего каталога, повторно открывает ~/work и не позволяет разработчикам повторно открыть что-либо ещё:
{
"sandbox": {
"filesystem": {
"denyRead": ["~/"],
"allowRead": ["~/work"],
"allowManagedReadPathsOnly": true
}
}
}
См. Keep developers from widening the policy.
sandbox.filesystem.disabled
Пропускает изоляцию файловой системы, сохраняя сетевую изоляцию. Команды в песочнице получают неограниченный доступ на чтение и запись к файловой системе хоста, а их исходящий сетевой трафик остаётся ограниченным network.allowedDomains. Используйте этот параметр, когда песочница нужна вам для контроля того, куда подключаются команды, а не того, что они записывают.
- Scope:
User or managed. Когда управляемые настройки вообще настраиваютsandbox.filesystemили содержат записьsandbox.credentials.filesс"mode": "deny", установить её могут только управляемые настройки. - Type: Boolean
true: Claude Code пропускает изоляцию файловой системы и сохраняет изоляцию сетиfalse: изоляция файловой системы остаётся включённой
- Default:
false, поэтому изоляция файловой системы остаётся включённой
Это оставляет файловую систему открытой и ограничивает исходящий сетевой трафик GitHub и npm:
{
"sandbox": {
"enabled": true,
"filesystem": {
"disabled": true
},
"network": {
"allowedDomains": ["github.com", "*.npmjs.org"]
}
}
}
Когда этот уровень отключён, Claude Code не применяет denyRead и записи deny в credentials.files, тогда как записи credentials.envVars и применённые записи mask продолжают работать. autoAllowBashIfSandboxed по-прежнему по умолчанию равен true, поэтому задайте для него false, чтобы запросы подтверждения сохранились. Полный список источников, которые могут задать этот параметр, и описание того, что меняется при отключённой изоляции, см. в разделе Отключение изоляции файловой системы.
sandbox.ignoreViolations
Отключите отчёты о нарушениях песочницы для путей, к которым команда, как вы ожидаете, будет обращаться и получать отказ, например для инструмента, который проверяет /etc/hosts при запуске, чтобы эти отказы не отображались как нарушения и не попадали в то, что видит Claude. Песочница по-прежнему блокирует доступ; подавляется только отчёт. Ключи — это подстроки для сопоставления с командой, где * совпадает с любой командой, а значения — это подстроки нарушения, которое нужно игнорировать для этой команды, например путь файловой системы.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Type: object mapping a command substring to an array of violation substrings, usually paths
- Default: не установлено, поэтому сообщается о каждом нарушении
{
"sandbox": {
"ignoreViolations": {
"*": ["/etc/hosts"]
}
}
}
sandbox.enableWeakerNestedSandbox
Запустите песочницу Linux внутри непривилегированного контейнера Docker, где bubblewrap не может смонтировать новый /proc. Вместо этого внутренняя песочница монтирует через bind-mount существующий /proc контейнера, что раскрывает информацию о процессах, которую новое монтирование скрыло бы. Это снижает безопасность; используйте это, только когда внешний контейнер уже обеспечивает необходимую вам изоляцию.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Type: Boolean
true: внутренняя песочница монтирует через bind-mount существующий/procконтейнера вместо монтирования новогоfalse: песочница монтирует новый/proc, что не работает в непривилегированном контейнере Docker
- Default:
false
{
"sandbox": {
"enabled": true,
"enableWeakerNestedSandbox": true
}
}
Только Linux и WSL2. См. Bubblewrap fails to start inside a container.
sandbox.enableWeakerNetworkIsolation
Позвольте изолированным командам на macOS обращаться к системной службе доверия TLS, com.apple.trustd.agent. Инструментам на основе Go, таким как gh, gcloud и terraform, это нужно для проверки сертификатов TLS, когда вы используете network.httpProxyPort с MITM-прокси и пользовательским ЦС. Это снижает безопасность, открывая потенциальный путь утечки данных через службу доверия.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Type: Boolean
true: изолированные команды на macOS могут обращаться кcom.apple.trustd.agentfalse: изолированные команды на macOS не могут обращаться к системной службе доверия TLS
- Default:
false
{
"sandbox": {
"enabled": true,
"enableWeakerNetworkIsolation": true
}
}
Если вы не используете MITM-прокси, вместо этого перечислите проблемные инструменты в excludedCommands; см. Go-based CLIs fail TLS verification on macOS.
sandbox.allowAppleEvents
Позвольте изолированным командам на macOS отправлять Apple Events, которые нужны open, osascript и инструментам, открывающим URL-адреса в браузере; без этого они завершаются с ошибкой -600. Это снимает изоляцию выполнения кода: изолированные команды могут запускать другие приложения без изоляции и без запроса пользователю, а также отправлять команды AppleScript работающим приложениям, таким как Terminal, с учётом запроса согласия на автоматизацию macOS для каждого приложения (TCC).
- Scope:
User or managed - Type: Boolean
true: изолированные команды на macOS могут отправлять Apple Eventsfalse: изолированные команды на macOS не могут отправлять Apple Events, поэтомуopenиosascriptзавершаются с ошибкой-600
- Default:
false
{
"sandbox": {
"enabled": true,
"allowAppleEvents": true
}
}
Чтобы сохранить изоляцию и всё же запускать один такой инструмент, добавьте его вместо этого в excludedCommands. См. Apple Events on macOS.
sandbox.allowNestedUserNamespaces
Позволяет командам в песочнице в Linux и WSL2 создавать пространства имён пользователей, которые нужны собственной песочнице Chromium и Electron, вложенному bubblewrap и unshare. Если вы установите этот ключ в true, вы отключите границу безопасности: код из команды в песочнице может в итоге выполняться вне песочницы. Для rootless Podman или Buildah используйте вместо этого excludedCommands, поскольку песочница останавливает их и другими способами. Требуется Claude Code v2.1.305 или новее.
- Область действия:
User or managed. Значениеtrueучитывается из~/.claude/settings.json, JSON, переданного с помощью--settings, или управляемых настроек. Claude Code игнорируетtrueв.claude/settings.jsonили.claude/settings.local.jsonпроекта. В сессии, гдеCLAUDE_CODE_SUBPROCESS_ENV_SCRUBустановлено в1, Claude Code игнорируетtrueиз любого источника. Значениеfalseучитывается из любого файла согласно приоритету настроек. - Тип: логический
true: команды в песочнице могут создавать пространства имён пользователейfalse: этот ключ ничего дополнительно не разрешает, и действует поведение песочницы по умолчанию
- По умолчанию:
false
{
"sandbox": {
"enabled": true,
"allowNestedUserNamespaces": true
}
}
При включённом ключе не полагайтесь ни на какие ограничения песочницы, включая защищённые пути и записи credentials.files, чтобы остановить вредоносную команду. В режиме автоматического разрешения такая команда может выполниться без запроса разрешения. Если в вашей организации есть служба безопасности, проконсультируйтесь с ней, прежде чем включать этот ключ.
Чтобы найти решение для вашего инструмента, см. Chromium или rootless Podman не работают внутри песочницы в Linux.
sandbox.ripgrep
Укажите песочнице собственный двоичный файл ripgrep вместо того, который использует Claude Code, например когда вашей платформе нужен иначе собранный rg.
- Scope:
User or managed - Type: object с
command— путём к двоичному файлу ripgrep, и необязательнымargs— массивом аргументов, добавляемых в начало - Default: не установлено, поэтому песочница использует тот же двоичный файл ripgrep, что и Claude Code. Это встроенный двоичный файл, если вы не установите
USE_BUILTIN_RIPGREPв0
{
"sandbox": {
"ripgrep": {
"command": "/usr/local/bin/rg"
}
}
}
sandbox.bwrapPath
Укажите песочнице двоичный файл bubblewrap, установленный вне PATH, например поставляемую копию на изолированном от сети хосте. Claude Code использует этот путь как для проверки зависимостей при запуске, так и при обёртывании каждой изолированной команды.
- Scope:
Managed. Claude Code читает его только из управляемых настроек, чтобы пользовательский, проектный или локальный файл не мог указать песочнице другой двоичный файл. - Type: string, an absolute path; Claude Code drops a relative path and falls back to
PATHlookup - Default: не установлено, поэтому Claude Code находит
bwrapвPATH
{
"sandbox": {
"enabled": true,
"bwrapPath": "/opt/admin/bwrap"
}
}
Только Linux и WSL2.
sandbox.socatPath
Укажите сетевому прокси песочницы двоичный файл socat, установленный вне PATH.
- Scope:
Managed - Type: string, an absolute path; Claude Code drops a relative path and falls back to
PATHlookup - Default: не установлено, поэтому Claude Code находит
socatвPATH
{
"sandbox": {
"enabled": true,
"socatPath": "/opt/admin/socat"
}
}
Только Linux и WSL2.
sandbox.credentials
Объявите файлы учётных данных и переменные окружения, которые нужно защитить от изолированных команд. Каждая запись указывает файл path или переменную name и mode: deny скрывает учётные данные внутри песочницы, а mask показывает изолированным командам заполнитель, в то время как sandbox proxy подставляет реальное значение в исходящих запросах. Claude Code защищает только перечисленные вами записи; встроенного списка запрещённых учётных данных нет.
- Scope:
Any file. Claude Code учитывает записиmask,allowPlaintextInject,awsPairsиsigv4только из пользовательских настроек, управляемых настроек и флага--settings. - Type: object с
files,envVars,allowPlaintextInject,awsPairsиsigv4 - Default: не установлено, поэтому никакие учётные данные не защищены
Это скрывает файл учётных данных AWS и удаляет GITHUB_TOKEN из изолированных команд:
{
"sandbox": {
"credentials": {
"files": [{ "path": "~/.aws/credentials", "mode": "deny" }],
"envVars": [{ "name": "GITHUB_TOKEN", "mode": "deny" }]
}
}
}
Защита файла deny является частью слоя файловой системы, поэтому она не действует, когда вы disable filesystem isolation; защита переменных окружения по-прежнему действует.
Недействительные записи учётных данных в управляемых настройках
Когда запись sandbox.credentials в управляемых настройках не проходит проверку, Claude Code продолжает защищать учётные данные, где это возможно:
- Запись в
filesилиenvVars, у которой по-прежнему действительныйpathилиnameиmodeсо значениемmaskилиdeny, например запись, шаблонextractкоторой не содержит группы захвата, понижается доmode: "deny"с предупреждением, поэтому учётные данные остаются заблокированными, а не замаскированными, пока вы не исправите запись. Пониженная записьfilesзакрепляетfilesystem.disabledтак же, как явная записьdeny, а предупреждение отмечает, что её блокировка чтения не применяется, если управляемые настройки отключают изоляцию файловой системы. - Запись с неизвестным
modeили недействительнымpathилиnameудаляется. - В каждом случае выводится предупреждение; независимо от того, понижена запись или удалена, остальные действительные записи по-прежнему применяются.
Действует в v2.1.191 и более поздних версиях; до v2.1.221 каждая недействительная запись удалялась. Для других управляемых ключей с обработкой на уровне отдельных полей см. Invalid entries in managed settings.
sandbox.credentials.files
Защитите файлы или каталоги учётных данных от изолированных команд. С "mode": "deny" Claude Code блокирует чтение пути внутри песочницы — та же блокировка чтения, что и у sandbox.filesystem.denyRead. С "mode": "mask" изолированные команды на Linux и WSL2 читают копию файла с сигнальным значением, а прокси песочницы подставляет реальное значение в исходящих запросах к injectHosts этой записи; на macOS файл вместо этого недоступен для чтения внутри песочницы. "mode": "mask" требует Claude Code v2.1.221 или более поздней версии.
- Scope:
Any file. Claude Code отбрасывает записиmaskиз проектного.claude/settings.jsonи локального.claude/settings.local.json. - Type: array of objects, each with
pathand amodeof"deny"or"mask", plus the optional mask fields for files - Default: не установлено, поэтому никакие файлы учётных данных не защищены
Это скрывает файл учётных данных AWS и маскирует файл хостов gh, подставляя реальное значение только в запросах к api.github.com:
{
"sandbox": {
"credentials": {
"files": [
{ "path": "~/.aws/credentials", "mode": "deny" },
{ "path": "~/.config/gh/hosts.yml", "mode": "mask", "injectHosts": ["api.github.com"] }
]
}
}
}
Пути используют те же prefixes, что и настройки sandbox.filesystem.*, и Claude Code объединяет массивы из всех областей действия настроек, которые загружает сессия. Protect credentials описывает, что по-прежнему применяется из источников, которые вы исключаете с помощью --setting-sources. Записи mask требуют Claude Code v2.1.221 или более поздней версии.
Подстановка mask работает только через прокси песочницы, поэтому установите sandbox.network.tlsTerminate или allowPlaintextInject для тестовых сетей с обычным HTTP. mask применяется к одному файлу, поэтому перечислите каждый файл учётных данных отдельно. Claude Code принимает, но игнорирует поля mask в записи deny. Mask credentials описывает, какие источники настроек учитываются, а Mask credential files — когда запись откатывается к deny.
Поля маски для файлов
Запись mask принимает эти необязательные поля. Без extract или decode Claude Code заменяет всё содержимое файла одним сигнальным значением. На macOS с включённой изоляцией файловой системы Claude Code применяет запись mask как deny до запуска extract или decode; см. Mask credential files.
| Field | Type | What it does |
|---|---|---|
extract |
string, a regular expression with at least one capturing group | Маскирует только текст, захваченный группой 1 каждого совпадения, чтобы остальная часть файла оставалась пригодной для разбора. Если также установлен decode, Claude Code проверяет каждый захват как возможный JWT вместо прямой замены. Требует v2.1.221 или более поздней версии |
onExtractNoMatch |
"warn", "deny" или "error"; default "warn" |
Что происходит, когда extract или decode не находит ничего для маскирования. warn оставляет файл доступным для чтения как есть внутри песочницы, deny делает его недоступным для чтения, а error останавливает настройку песочницы, пока вы не исправите конфигурацию. Claude Code рассматривает deny как error, когда блокировка чтения не будет применяться, потому что вы disable filesystem isolation или запись sandbox.filesystem.allowRead повторно открывает путь. Требует v2.1.221 или более поздней версии; случай decode требует v2.1.224 или более поздней версии |
decode |
the string "jwt" |
Находит JSON Web Tokens (JWT) в файле с помощью встроенного шаблона или с помощью extract, если он установлен, проверяет каждого кандидата и заменяет его структурно корректным поддельным токеном, чтобы код внутри песочницы, который декодирует токен, продолжал работать. Когда ни один кандидат не проходит проверку, результат определяет onExtractNoMatch. Требует v2.1.224 или более поздней версии |
maskClaims |
array of strings, at least one claim name; requires decode |
Маскирует только указанные утверждения (claims) верхнего уровня полезной нагрузки внутри каждого проверенного JWT и пересобирает токен вокруг изменённой полезной нагрузки, чтобы другие утверждения оставались доступными для чтения. Когда ни одно из указанных утверждений не совпадает, результат определяет onExtractNoMatch. Требует v2.1.224 или более поздней версии |
maskDuplicates |
Boolean, default false |
Также заменяет дословные копии каждого замаскированного значения в других местах файла, например секрет, вставленный в комментарий. Claude Code сопоставляет необработанные подстроки, поэтому используйте это только для длинных секретов с высокой энтропией. Учитывается, только когда установлен extract или decode. Требует v2.1.221 или более поздней версии |
injectHosts |
array of strings, each a host that sandbox.network.allowedDomains also admits |
Сужает набор хостов, для которых прокси песочницы подставляет реальное значение. Если не установлено, прокси подставляет его в запросах к каждому хосту в sandbox.network.allowedDomains. Требует v2.1.221 или более поздней версии |
Это маскирует только значение oauth_token в файле хостов gh, заменяет все другие его копии в файле, делает файл недоступным для чтения, если шаблон ничего не находит, и подставляет реальный токен только в запросах к api.github.com:
{
"sandbox": {
"credentials": {
"files": [
{
"path": "~/.config/gh/hosts.yml",
"mode": "mask",
"extract": "oauth_token:\\s*(\\S+)",
"maskDuplicates": true,
"onExtractNoMatch": "deny",
"injectHosts": ["api.github.com"]
}
]
}
}
}
sandbox.credentials.envVars
Защитите переменные окружения от изолированных команд. С "mode": "deny" Claude Code удаляет переменную из окружения изолированных команд. С "mode": "mask" изолированные команды видят сигнальное значение, уникальное для сессии, а прокси песочницы подставляет реальное значение в исходящих запросах к injectHosts этой записи, поэтому такие инструменты, как gh и npm, продолжают проходить аутентификацию, никогда не получая реальных учётных данных.
- Scope:
Any file. Claude Code отбрасывает записиmaskиз проектного.claude/settings.jsonи локального.claude/settings.local.json. - Type: array of objects, each with
nameand amodeof"deny"or"mask", plus the optional mask fields for environment variables - Default: не установлено, поэтому никакие переменные окружения не защищены
Это удаляет NPM_TOKEN из изолированных команд и маскирует GITHUB_TOKEN, подставляя реальное значение только в запросах к api.github.com:
{
"sandbox": {
"credentials": {
"envVars": [
{ "name": "NPM_TOKEN", "mode": "deny" },
{ "name": "GITHUB_TOKEN", "mode": "mask", "injectHosts": ["api.github.com"] }
]
}
}
}
name должно начинаться с буквы или подчёркивания и содержать только буквы, цифры и подчёркивания. Claude Code объединяет массивы из всех областей действия настроек, которые загружает сессия, и применяет deny, когда одна и та же переменная встречается с обоими режимами. Protect credentials описывает, что по-прежнему применяется из источников, которые вы исключаете с помощью --setting-sources.
Подстановка mask работает только через прокси песочницы, поэтому установите sandbox.network.tlsTerminate или allowPlaintextInject для тестовых сетей с обычным HTTP; см. Mask credentials. Claude Code принимает, но игнорирует поля mask в записи deny.
Поля маски для переменных окружения
Запись mask принимает эти необязательные поля. Без extract или decode Claude Code заменяет всё значение одним сигнальным значением. extract и decode нельзя комбинировать в одной записи.
| Field | Type | What it does |
|---|---|---|
extract |
string, a regular expression with at least one capturing group | Маскирует только текст, захваченный группой 1 каждого совпадения, например пароль внутри строки подключения DATABASE_URL, чтобы остальная часть значения оставалась пригодной для разбора. Требует v2.1.224 или более поздней версии |
onExtractNoMatch |
"warn", "deny" или "error"; default "warn". В записи с decode принимается только "warn" |
Что происходит, когда extract ничего не находит. warn передаёт переменную без маскирования, deny удаляет её внутри песочницы, а error останавливает настройку песочницы, пока вы не исправите конфигурацию. Требует v2.1.224 или более поздней версии |
decode |
the string "jwt" |
Проверяет, что всё значение является JWT, и заменяет его структурно корректным поддельным токеном, чтобы код внутри песочницы, который декодирует токен, продолжал работать; прокси подставляет весь реальный токен в исходящем трафике. Значение, не прошедшее проверку, передаётся без маскирования с предупреждением. Требует v2.1.224 или более поздней версии |
maskClaims |
array of strings, at least one claim name; requires decode |
Маскирует только указанные утверждения (claims) верхнего уровня полезной нагрузки внутри декодированного JWT и пересобирает токен вокруг изменённой полезной нагрузки, чтобы другие утверждения оставались доступными для чтения. Когда ни одно из указанных утверждений не совпадает, переменная передаётся без маскирования с предупреждением. Требует v2.1.224 или более поздней версии |
injectHosts |
array of strings, each a host that sandbox.network.allowedDomains also admits |
Сужает набор хостов, для которых прокси песочницы подставляет реальное значение. Если не установлено, прокси подставляет его в запросах к каждому хосту в sandbox.network.allowedDomains. Указывайте IPv6-адрес назначения как сжатый адрес без скобок, например "::1", а не в форме со скобками; см. IPv6 destinations in injectHosts |
Это маскирует только пароль внутри DATABASE_URL, удаляет переменную, если шаблон ничего не находит, и маскирует JWT в SERVICE_JWT, оставляя доступными для чтения все утверждения, кроме api_key:
{
"sandbox": {
"credentials": {
"envVars": [
{
"name": "DATABASE_URL",
"mode": "mask",
"extract": "://[^:]+:([^@]+)@",
"onExtractNoMatch": "deny"
},
{
"name": "SERVICE_JWT",
"mode": "mask",
"decode": "jwt",
"maskClaims": ["api_key"]
}
]
}
}
}
sandbox.credentials.allowPlaintextInject
Разрешите подстановку mask в обычных HTTP-запросах, а также в HTTPS с терминированием TLS. При обычном HTTP подлинность вышестоящего сервера не проверяется, а учётные данные передаются в открытом виде, поэтому оставляйте это отключённым за пределами доверенных тестовых сетей.
- Scope:
User or managed - Type: Boolean
true: Claude Code разрешает подстановкуmaskв обычных HTTP-запросах, а также в HTTPS с терминированием TLSfalse: Claude Code разрешает подстановкуmaskтолько в HTTPS с терминированием TLS
- Default:
false
{
"sandbox": {
"credentials": {
"allowPlaintextInject": true
}
}
}
sandbox.credentials.awsPairs
Сгруппируйте замаскированные переменные окружения, которые образуют один набор учётных данных AWS, для SigV4 re-signing, когда ваши учётные данные хранятся в переменных с нестандартными именами. Claude Code автоматически связывает стандартную тройку AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY и AWS_SESSION_TOKEN, когда вы маскируете их значения целиком, поэтому этот ключ нужен только для других имён. Требует Claude Code v2.1.224 или более поздней версии.
- Scope:
User or managed - Type: array of objects, each with
accessKeyIdVar,secretAccessKeyVar, and optionallysessionTokenVar, namingsandbox.credentials.envVarsentries - Default: не установлено, поэтому связывается только стандартная тройка
Это связывает три переменные с пользовательскими именами в один набор учётных данных AWS для повторного подписания:
{
"sandbox": {
"credentials": {
"awsPairs": [
{
"accessKeyIdVar": "MY_KEY_ID",
"secretAccessKeyVar": "MY_SECRET_KEY",
"sessionTokenVar": "MY_SESSION_TOKEN"
}
]
}
}
}
Каждая указанная переменная должна быть записью mask со значением целиком в sandbox.credentials.envVars, без extract или decode, и может занимать только один слот среди всех пар. Также действуют следующие правила:
- Прокси повторно подписывает запросы к хостам, перечисленным в
injectHostsзаписи идентификатора ключа доступа - Когда установлен
sessionTokenVar, прокси отправляет реальный токен какx-amz-security-tokenв повторно подписанных запросах - Указание любой из стандартных переменных в паре заменяет автоматическое связывание
sandbox.credentials.sigv4
Выберите, что прокси песочницы делает с формами запросов AWS, которые он не может повторно подписать: streaming — для потоковых загрузок aws-chunked, presigned — для предварительно подписанных URL-адресов и sigv4a — для асимметричных подписей SigV4A. Это применяется только к запросам, подписанным с помощью заполнителя идентификатора ключа доступа замаскированной пары. Требует Claude Code v2.1.224 или более поздней версии.
- Scope:
User or managed - Type: object с
streaming,presignedиsigv4a, каждый из которых имеет одно из значений:"deny": прокси завершает запрос с ошибкой"passthrough": прокси пересылает запрос, подписанный замаскированным заполнителем, поэтому инструмент получает собственный отказ AWS
- Default: не установлено, поэтому каждая форма имеет значение
"deny"
Это пересылает потоковые загрузки вместо того, чтобы завершать их с ошибкой на прокси:
{
"sandbox": {
"credentials": {
"sigv4": {
"streaming": "passthrough"
}
}
}
}
С deny прокси завершает запрос с ошибкой. С passthrough прокси пересылает запрос с подписью, вычисленной из замаскированного заполнителя, поэтому AWS его отклоняет, и вызывающий инструмент получает собственный ответ AWS вместо ошибки прокси.
sandbox.network
Управляйте тем, к каким хостам, портам и сокетам могут обращаться изолированные команды. Песочница направляет исходящий трафик через прокси, который применяет эти списки; см. Network isolation, чтобы узнать, как прокси принимает решения и когда он запрашивает разрешение.
- Scope:
Any file.strictAllowlist,allowManagedDomainsOnlyиtlsTerminateчитаются из меньшего числа источников, как указано в их описаниях. - Type: object с подключами ниже
- Default: не установлено, поэтому никакие домены не разрешены заранее, и ваш режим разрешений определяет, что происходит с каждым новым хостом
Это заранее разрешает GitHub и npm, блокирует uploads.github.com и позволяет командам привязываться к localhost:
{
"sandbox": {
"network": {
"allowedDomains": ["github.com", "*.npmjs.org"],
"deniedDomains": ["uploads.github.com"],
"allowLocalBinding": true
}
}
}
Claude Code объединяет подключи-массивы во всех областях действия настроек, поэтому проект может добавлять домены к вашему пользовательскому списку, если не действует блокировка репозитория. Правила разрешений WebFetch(domain:...) allow и deny пополняют те же списки разрешённых и запрещённых доменов.
sandbox.network.allowUnixSockets
Перечислите пути Unix-сокетов, к которым изолированные команды могут подключаться на macOS. Claude Code игнорирует этот список на Linux и WSL2, где фильтр seccomp не может проверять пути сокетов; там используйте вместо этого allowAllUnixSockets.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Type: array of strings, each a socket path
- Default: не установлено, поэтому песочница macOS блокирует все Unix-сокеты
{
"sandbox": {
"network": {
"allowUnixSockets": ["~/.ssh/agent-socket"]
}
}
}
Путь сокета может предоставлять широкий доступ: например, разрешение /var/run/docker.sock позволяет изолированной команде управлять демоном Docker. См. Security limitations.
sandbox.network.allowAllUnixSockets
Позвольте изолированным командам подключаться к любым Unix-сокетам. На Linux и WSL2 seccomp filter песочницы блокирует вызовы socket(AF_UNIX, ...), поэтому это единственный способ разрешить там Unix-сокеты. Когда фильтр отсутствует, о чём /sandbox сообщает на вкладке Dependencies, песочница не блокирует вызовы Unix-сокетов. См. Set up Linux and WSL2, чтобы узнать, откуда берётся фильтр.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Тип: логический
true: команды в песочнице могут подключаться к любому Unix-сокету. В Linux и WSL2 они также могут подключаться к сокетам виртуальных машин — семейству адресовAF_VSOCKfalse: песочница блокирует подключения к Unix-сокетам: в macOS — кроме путей изallowUnixSockets, а в Linux и WSL2 — через фильтр seccomp, если он присутствует
- Default:
false
{
"sandbox": {
"network": {
"allowAllUnixSockets": true
}
}
}
На WSL2 true также снова открывает сокет interop, который запускает двоичные файлы Windows, такие как cmd.exe и powershell.exe.
sandbox.network.allowLocalBinding
Позвольте изолированным командам на macOS прослушивать сетевые порты, например для запуска сервера разработки, и подключаться к любому порту на localhost. Команда, которая прослушивает адрес, отличный от loopback, принимает подключения с других машин. Ключ не действует на Linux и WSL2, где у каждой изолированной команды есть собственный интерфейс loopback. Чтобы обратиться к серверу на хосте из Linux или WSL2, см. A command fails to reach a server on localhost.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Type: Boolean
true: изолированные команды на macOS могут прослушивать любой локальный адрес и подключаться к любому порту на localhostfalse: изолированные команды на macOS не могут прослушивать порт или напрямую подключаться к серверам на localhost
- Default:
false
{
"sandbox": {
"network": {
"allowLocalBinding": true
}
}
}
sandbox.network.allowMachLookup
Перечислите дополнительные имена служб XPC и Mach, которые может искать песочница macOS. Инструментам, взаимодействующим через XPC, таким как iOS Simulator или Playwright, нужно, чтобы их службы были перечислены здесь.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек - Type: array of strings, each a service name; a single trailing
*matches a prefix, and"*"alone matches every service - Default: не установлено
Эта конфигурация разрешает все службы с префиксом com.apple.CoreSimulator.:
{
"sandbox": {
"network": {
"allowMachLookup": ["com.apple.CoreSimulator.*"]
}
}
}
sandbox.network.allowedDomains
Заранее разрешите домены для исходящего трафика изолированных команд, чтобы песочница не запрашивала для них разрешение. Подстановки, такие как *.example.com, совпадают с поддоменами, а необязательный суффикс :port ограничивает запись одним портом; запись без порта совпадает с любым портом.
- Scope:
Any file, с ограничениями для настроек проекта и локальных настроек. Только управляемые настройки, когда установленallowManagedDomainsOnly. - Type: array of strings, each a domain, wildcard pattern, or IP literal, with an optional
:portsuffix - Default: не установлено, поэтому ваш режим разрешений определяет, что происходит с каждым новым хостом
Это заранее разрешает GitHub на любом порту, все поддомены npm и один хост API только на порту 443:
{
"sandbox": {
"network": {
"allowedDomains": ["github.com", "*.npmjs.org", "api.example.com:443"]
}
}
}
Записывайте IPv6-литералы в скобках, с необязательным портом: "[::1]" разрешает любой порт, а "[::1]:443" — один порт. Форма со скобками требует Claude Code v2.1.229 или более поздней версии. См. IPv6 addresses in domain lists.
sandbox.network.deniedDomains
Заблокируйте домены для исходящего трафика изолированных команд, используя тот же синтаксис подстановок, портов и IPv6, что и allowedDomains. Запрещённый домен остаётся заблокированным, даже когда с ним также совпадает запись allowedDomains.
- Scope:
Any file - Type: array of strings, each a domain, wildcard pattern, or IP literal, with an optional
:portsuffix - Default: не установлено
{
"sandbox": {
"network": {
"deniedDomains": ["sensitive.cloud.example.com"]
}
}
}
Claude Code объединяет этот список из всех источников настроек, которые загружает сессия, даже когда установлен allowManagedDomainsOnly, поэтому разработчик всегда может ужесточить список запрещённых доменов. Для IPv6-литералов см. IPv6 addresses in domain lists.
Запись с конечной точкой, которая обозначает полностью определённое доменное имя, например example.com., блокирует те же подключения, что и example.com.
sandbox.network.strictAllowlist
Запретите изолированным командам доступ к хостам вне списка разрешённых доменов вместо запроса подтверждения. Список разрешённых доменов — это allowedDomains плюс домены из правил WebFetch(domain:...) allow, или только записи управляемых настроек, когда установлен allowManagedDomainsOnly. Locks that apply without an admin-required sandbox описывает записи репозитория. Требует Claude Code v2.1.219 или более поздней версии.
- Scope:
User or managed. Репозиторий не может его включить или отключить. - Type: Boolean
true: Claude Code запрещает изолированным командам доступ к хостам вне списка разрешённых доменовfalse: если другой доверенный файл настроек не устанавливаетtrue, Claude Code решает судьбу хоста вне списка разрешённых доменов в зависимости от режима разрешений, а не отказывает сразу: в авторежиме он проверяет хост по per-command allowed domains команды, в режимеdontAskотказывает, в режимеbypassPermissionsи в интерактивных терминальных сессиях режима планирования, где доступен обход, разрешает, а в остальных случаях спрашивает вас
- Default:
false
{
"sandbox": {
"network": {
"strictAllowlist": true
}
}
}
Claude Code применяет это только к изолированным командам; внутрипроцессные инструменты, такие как WebFetch, по-прежнему следуют своим permission rules. Когда любой из учитываемых источников устанавливает значение true, оно остаётся включённым. См. Network isolation. Требует Claude Code v2.1.219 или более поздней версии.
sandbox.network.allowManagedDomainsOnly
Ограничьте сетевой список разрешённых доменов тем, что определяют управляемые настройки. Тогда Claude Code учитывает только allowedDomains и правила WebFetch(domain:...) allow из управляемых настроек, игнорирует домены из пользовательских, проектных, локальных настроек и --settings и автоматически блокирует неразрешённый домен вместо запроса.
- Scope:
Managed - Type: Boolean
true: Claude Code учитывает толькоallowedDomainsи правилаWebFetch(domain:...)allow из управляемых настроек и блокирует неразрешённый домен вместо запросаfalse: домены из других файлов настроек могут объединяться в список разрешённых доменов
- Default:
false
Это ограничивает список разрешённых доменов GitHub и npm и игнорирует любые домены, которые добавляют разработчики:
{
"sandbox": {
"network": {
"allowManagedDomainsOnly": true,
"allowedDomains": ["github.com", "*.npmjs.org"]
}
}
}
Пока ключ имеет значение true, песочница является обязательной по требованию администратора, и только управляемые настройки могут задать порт прокси.
Запрещённые домены по-прежнему объединяются из всех источников, которые загружает сессия. См. Keep developers from widening the policy.
sandbox.network.httpProxyPort
Укажите песочнице ваш собственный HTTP-прокси вместо того, который запускает Claude Code. Организации делают это, чтобы проверять HTTPS-трафик, применять собственные правила фильтрации или записывать запросы в лог. Ваш прокси берёт на себя фильтрацию, и Claude Code перестаёт применять свои списки доменов и сетевые запросы разрешений к трафику, отправляемому туда. Если не установлено, Claude Code запускает собственный прокси для HTTP-трафика.
- Scope:
Any file, если другие настройки песочницы не ограничивают, какие файлы могут задавать порт - Type: number, a local TCP port
- Default: не установлено, поэтому Claude Code запускает собственный прокси
{
"sandbox": {
"network": {
"httpProxyPort": 8080
}
}
}
Также установите socksProxyPort, если ваш прокси должен обрабатывать и SOCKS-трафик; если установлен только один из двух, Claude Code по-прежнему запускает собственный прокси для другого протокола. См. Custom proxy configuration.
sandbox.network.socksProxyPort
Укажите песочнице ваш собственный SOCKS5-прокси вместо того, который запускает Claude Code. Ваш прокси берёт на себя фильтрацию, и Claude Code перестаёт применять свои списки доменов и сетевые запросы разрешений к трафику, отправляемому туда. Если не установлено, Claude Code запускает собственный прокси для SOCKS-трафика.
- Scope:
Any file, если другие настройки песочницы не ограничивают, какие файлы могут задавать порт - Type: number, a local TCP port
- Default: не установлено, поэтому Claude Code запускает собственный прокси
{
"sandbox": {
"network": {
"socksProxyPort": 8081
}
}
}
См. Custom proxy configuration.
sandbox.network.tlsTerminate
Заставьте прокси песочницы терминировать TLS, чтобы он мог читать содержимое HTTPS-запросов. Это экспериментальная функция, и она необходима для credential substitution mask. Установите {}, чтобы создать эфемерный центр сертификации для сессии, или установите caCertPath и caKeyPath, чтобы использовать собственный.
- Scope:
User or managed. Репозиторий не может её включить или предоставить центр сертификации. - Type: object с необязательными строками
caCertPathиcaKeyPath, каждая из которых — путь к файлу - Default: не установлено, поэтому прокси не терминирует и не проверяет TLS
{
"sandbox": {
"network": {
"tlsTerminate": {}
}
}
}
Когда её устанавливают несколько учитываемых источников, Claude Code использует значение из источника с наивысшим приоритетом: управляемые настройки, затем флаг --settings, затем пользовательские настройки.
Память и контекст
Контролируйте, что Claude Code загружает в контекст, как он выполняет компактизацию и где хранит память и планы. См. Управление контекстом и Память.
autoCompactEnabled
Позвольте Claude Code автоматически компактизировать беседу при приближении контекста к лимиту. Отображается в /config как Auto-compact, и переключение его там записывает этот ключ в ваши пользовательские параметры.
- Scope:
Any file - Type: Boolean
true: Claude Code автоматически компактизирует беседу при приближении контекста к лимитуfalse: Claude Code не выполняет автоматическую компактизацию
- Default:
true - Per-session overrides:
DISABLE_AUTO_COMPACTотключает автоматическую компактизацию на одну сессию; какой бы из двух параметров её ни отключил, другой не может её включить обратно
{
"autoCompactEnabled": false
}
Ручная команда /compact продолжает работать, пока автосжатие отключено. Если вы отключите автосжатие, сжатие в режиме простоя тоже отключится.
autoCompactWindow
Установите, насколько полным становится окно контекста перед тем, как Claude Code автоматически выполняет компактизацию.
- Scope:
Any file - Type: количество токенов от
100000до1000000. Claude Code ограничивает значение окном контекста вашей модели; обзор моделей перечисляет окно каждой модели - Default: не установлено, поэтому Claude Code выбирает окно, оптимизированное для вашей модели
- Per-session overrides:
--autocompactимеет приоритет над этим ключом на одну сессию, аCLAUDE_CODE_AUTO_COMPACT_WINDOWимеет приоритет над обоими, если только Claude Code не игнорирует значение переменной
{
"autoCompactWindow": 500000
}
Команда /autocompact сохраняет окно для текущей модели в modelSettings, и это значение имеет приоритет над этим ключом в том же файле для этой модели. Установка окна автосжатия описывает, как взаимодействуют команда, флаг, переменная и настройка.
autoMemoryDirectory
Сохраняйте автоматическую память в выбранном вами каталоге вместо стандартного каталога для каждого проекта.
- Scope:
Any file - Type: строка, абсолютный путь каталога или путь с префиксом
~/ - Default: не установлено, поэтому Claude Code использует
~/.claude/projects/<project>/memory/
{
"autoMemoryDirectory": "~/my-memory-dir"
}
Из параметров проекта или локальных параметров Claude Code соблюдает этот ключ в соответствии с тем же правилом доверия рабочей области, что и для hooks, поскольку клонированный репозиторий может предоставить эти файлы.
autoMemoryEnabled
Включите или отключите автоматическую память. Когда false, Claude не читает и не записывает в каталог автоматической памяти. Вы также можете переключить её с помощью /memory во время сессии, что записывает этот ключ в ваши пользовательские параметры.
- Scope:
Any file - Type: Boolean
true: то же самое, что и не установлено; автоматическая память остаётся включённой, если что-то, имеющее приоритет над этим ключом, не отключит её на сессию, например--bare, безопасный режим илиCLAUDE_CODE_DISABLE_AUTO_MEMORYfalse: Claude не читает и не записывает в каталог автоматической памяти
- Default:
true - Per-session overrides:
CLAUDE_CODE_DISABLE_AUTO_MEMORYимеет приоритет над этим ключом на одну сессию в любом направлении
{
"autoMemoryEnabled": false
}
bashOutputMaxChars
Установите, сколько символов вывода успешной команды Bash или PowerShell Claude получает встроенным образом. Когда вывод превышает лимит, Claude Code сохраняет его в файл, и Claude получает краткий предпросмотр плюс путь к файлу. Увеличьте лимит, когда вывод команды, такой как подробная сборка или полный журнал набора тестов, регулярно превышает значение по умолчанию и вы хотите, чтобы Claude прочитал его без открытия файла. Требуется Claude Code v2.1.261 или позже.
- Scope:
Any file - Type: количество символов, положительное целое число. Claude Code ограничивает значение диапазоном
4000на128000 - Default: не установлено, поэтому Claude получает до 30 000 символов встроенным образом
{
"bashOutputMaxChars": 100000
}
Когда вы устанавливаете этот ключ, Claude Code игнорирует переменную окружения BASH_MAX_OUTPUT_LENGTH.
claudeMd
Внедрите инструкции в стиле CLAUDE.md как управляемую организацией память без развёртывания отдельного файла. Claude Code загружает текст как запись управляемой памяти перед файлами CLAUDE.md пользователя и проекта.
- Scope:
Managed - Type: строка, текст файла CLAUDE.md; напишите его так, как вы бы написали файл, включая Markdown, с разрывами строк как
\n - Default: не установлено
Этот пример развёртывает два правила как короткий список Markdown:
{
"claudeMd": "# Engineering rules\n\n- Always run make lint before committing.\n- Never push directly to main."
}
См. Развёртывание CLAUDE.md на уровне организации.
claudeMdExcludes
Пропускайте определённые файлы CLAUDE.md при загрузке Claude Code памяти. В большом монорепозитории используйте его для пропуска файлов CLAUDE.md из других команд, которые не относятся к вашей работе; Исключение нерелевантных файлов CLAUDE.md в руководстве по большим кодовым базам проходит через этот случай. Шаблоны совпадают с абсолютными путями файлов.
- Scope:
Any file - Type: массив строк, каждая из которых является шаблоном glob или абсолютным путём
- Default: не установлено, поэтому Claude Code загружает каждый найденный файл CLAUDE.md
{
"claudeMdExcludes": ["**/vendor/**/CLAUDE.md"]
}
Исключения применяются только к файлам памяти пользователя, проекта и локальной памяти; файлы CLAUDE.md управляемой политики не могут быть исключены.
env
Установите переменные окружения для каждой сессии и для подпроцессов, которые Claude Code запускает из неё. Большинство переменных в справочнике переменных окружения могут быть здесь, что позволяет применить одну к каждой сессии или развернуть её в вашей команде. Параметры проекта и локальные параметры не могут устанавливать некоторые из них.
- Scope:
Any file - Type: объект, отображающий имена переменных на строковые значения
- Default: не установлено
Этот пример отключает автоматическую компактизацию и маршрутизирует запросы API через прокси:
{
"env": {
"DISABLE_AUTO_COMPACT": "1",
"ANTHROPIC_BASE_URL": "https://proxy.example.com"
}
}
Как значения env взаимодействуют с вашей оболочкой
- Значение здесь перезаписывает ту же переменную, экспортированную в вашей оболочке, и когда более одного файла параметров устанавливает переменную, применяется наиболее приоритетный. Переменные, которые Claude Code игнорирует в
envперечисляет исключения для параметров проекта и локальных параметров. - Когда приложение Claude Desktop или самостоятельно размещённая среда запускает сессию, среда запуска, которую оно создаёт, имеет приоритет вместо этого: Claude Code игнорирует значение
envиз любого файла параметров для переменной, которую среда запуска уже устанавливает. Журнал отладки называет каждую игнорируемую переменную. - Чтобы отменить экспорт оболочки, установите переменную на
"". Claude Code рассматривает пустое значение как не установленное для выбора поставщика, и подпроцессы наследуют пустое значение. NO_COLORиFORCE_COLOR, установленные здесь, достигают только подпроцессов. Чтобы изменить цвета собственного интерфейса Claude Code, установите их в вашей оболочке перед запускомclaude.- Значения здесь представляют собой простой текст в файле параметров и достигают каждого подпроцесса, который запускает Claude Code. Для токена OTLP, который ротируется, используйте
otelHeadersHelper; для учётных данных API используйтеapiKeyHelper.
Когда Claude Code применяет значения env
- Из пользовательских параметров,
--settingsи управляемых параметров: при запуске и снова в работающей сессии, когда сохранённое изменение изменяет объединённыйenv. - Из параметров проекта и локальных параметров: после того, как вы доверяете рабочей области, или при запуске в режиме
-p, который никогда не показывает диалог доверия, и снова, когда сохранённое изменение изменяет объединённыйenv. - Переменные, которые Claude Code классифицирует как безопасные, такие как выбор модели, тайм-ауты и лимиты, и переключатели функций: при запуске из каждого файла параметров, кроме переменных, которые параметры проекта и локальные параметры не могут устанавливать.
- После того, как вы переместите сессию с помощью
/cdна v2.1.246 или позже: значенияenvнового каталога проекта и локальные, поверх предыдущего каталога.
Переменные, которые Claude Code игнорирует в env
-
Настройки проекта и локальные настройки не могут задавать переменные, которые не должен контролировать извлечённый репозиторий; задавайте их вместо этого в оболочке, пользовательских настройках или управляемых настройках. Claude Code отбрасывает каждую такую переменную, за исключением нескольких значений, отключающих телеметрию, и записывает в лог предупреждение, которое можно увидеть с помощью
claude --debug. К ним относятся:-
Переменные, определяющие, где Claude Code хранит или записывает собственные файлы:
CLAUDE_CONFIG_DIR,CLAUDE_CODE_TMPDIRи переменные каталогов операционной системы, такие какHOME,TMPDIR,TMP,TEMPи семействоXDG_*. -
Переменные Windows, определяющие программы и общесистемную конфигурацию для процессов, которые запускает Claude Code, такие как
SystemRoot,ComSpec,ProgramData,LOCALAPPDATA,PATHEXT,PSModulePathи семействоProgramFiles. -
Переменные, экспортирующие содержимое сессии:
OTEL_LOG_RAW_API_BODIESи пара переменных подробной бета-трассировкиENABLE_BETA_TRACING_DETAILEDиBETA_TRACING_ENDPOINT. -
Переменные экспортера OpenTelemetry, которые включают телеметрию, определяют, куда она отправляется, или определяют, какое содержимое она собирает:
CLAUDE_CODE_ENABLE_TELEMETRY, а также пара переменных бета-версии расширенной телеметрииCLAUDE_CODE_ENHANCED_TELEMETRY_BETAиENABLE_ENHANCED_TELEMETRY_BETA- Селекторы экспортеров
OTEL_LOGS_EXPORTER,OTEL_METRICS_EXPORTERиOTEL_TRACES_EXPORTER - Переменные содержимого
OTEL_LOG_USER_PROMPTS,OTEL_LOG_ASSISTANT_RESPONSES,OTEL_LOG_TOOL_CONTENTиOTEL_LOG_TOOL_DETAILS - Переменные
OTEL_EXPORTER_OTLP_*, имена которых заканчиваются на_ENDPOINT,_HEADERS,_PROTOCOL,_CERTIFICATE,_CLIENT_KEYили_INSECURE, в общей форме и в формах для отдельных сигналов, напримерOTEL_EXPORTER_OTLP_ENDPOINTиOTEL_EXPORTER_OTLP_METRICS_HEADERS OTEL_EXPORTER_PROMETHEUS_HOSTиOTEL_EXPORTER_PROMETHEUS_PORT
Только эти значения всё ещё применяются из параметров проекта и локальных параметров, потому что они отключают что-то:
noneдля трёх селекторов exporter и значение off, такое как0дляOTEL_LOG_USER_PROMPTS,OTEL_LOG_TOOL_CONTENTиOTEL_LOG_TOOL_DETAILS. Такое значение переопределяет ту же переменную в ваших пользовательских параметрах, но не ту, которую среда, из которой вы запускаете Claude Code, файл--settingsили управляемые параметры устанавливают.Когда файл параметров проекта или локальных параметров устанавливает переменную в этой группе, локальная интерактивная сессия показывает уведомление при запуске. Запустите
/statusилиclaude doctor, чтобы увидеть, какие из них Claude Code игнорировал и какие отключили телеметрию; оба перечисляют имена, никогда значения. Неинтерактивный запуск с-pили сессия Agent SDK не показывает уведомление, поэтому проверьте, что ваш сборщик всё ещё получает данные после обновления. Если нет, установите переменные в ваши пользовательские параметры, управляемые параметры, среду задания или файл, который вы передаёте с помощью--settings.Игнорирование этой группы в настройках проекта и локальных настройках требует Claude Code v2.1.282 или новее.
-
Переменные, которые изменяют способ запуска или синхронизации Claude Code, такие как
CLAUDE_CODE_PROCESS_WRAPPER,CLAUDE_CODE_SYNC_SKILLS,CLAUDE_CODE_SYNC_PLUGINS,CLAUDE_CODE_PLUGIN_CACHE_DIRиCLAUDE_CODE_PLUGIN_SEED_DIR. -
Переменная режима экранного диктора
CLAUDE_AX_SCREEN_READERи другие переменные, имена которых начинаются сCLAUDE_AX_, напримерCLAUDE_AX_STARTUP_QUIET_MS. -
CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS, которая задаёт таймер для диалогового окна, оставшегося без ответа. -
CLAUDE_CODE_DISABLE_ATTACHMENTS, которая отключает обработку вложений. -
CLAUDE_CODE_DISABLE_FILE_MENTIONS, которая не даёт Claude Code раскрывать упоминания файлов и каталогов через@.
До v2.1.251 параметры проекта и локальные параметры могли также устанавливать переменные в этом списке, которые выбирают, где Claude Code записывает свои файлы или которые экспортируют содержимое сессии, кроме
HOMEиXDG_CONFIG_HOME. До v2.1.290 они также могли устанавливать переменные таймеров диалоговых окон иCLAUDE_CODE_DISABLE_ATTACHMENTS. -
-
Переменные идентификации, которыми владеют среды хостинга Claude Code, такие как
CLAUDE_CODE_REMOTEиCLAUDE_CODE_ACCOUNT_UUID, игнорируются из каждого файла. -
CLAUDE_CODE_MESSAGING_SOCKETиCLAUDE_CODE_MESSAGING_TOKEN, которые Claude Code экспортирует сам, игнорируются из каждого файла. Игнорирование переменной сокета требует Claude Code v2.1.224 или позже, а игнорирование токена требует v2.1.228 или позже. -
CLAUDE_CODE_PROJECT_DIR_NAME, которую Claude Code читает только из среды запуска, игнорируется из каждого файла; требует v2.1.234 или позже. -
CLAUDE_CODE_RESTRICTED, которую Claude Code читает только из среды запуска, игнорируется из каждого файла. -
CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY, которую Claude Code читает только из среды запуска, игнорируется из каждого файла. Переменная требует Claude Code v2.1.283 или позже. -
CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT,CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT,CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPTиCLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT, которые Claude Code читает только из среды запуска, игнорируются в любом файле. -
CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS, которую Claude Code читает только из среды запуска, игнорируется в любом файле. -
CLAUDE_CODE_WARN_DISK_FREE_GIBиCLAUDE_CODE_WARN_MEMORY_FREE_GIB, которые Claude Code читает только из среды запуска, игнорируются в любом файле. Эти переменные требуют Claude Code v2.1.304 или новее.
fileCheckpointingEnabled
Позвольте Claude Code создавать снимки файлов перед каждым редактированием, чтобы /rewind мог их восстановить. Отображается в /config как Rewind code (checkpoints), и переключение его там записывает этот ключ в ваши пользовательские параметры.
- Scope:
Any file - Type: Boolean
true: Claude Code создаёт снимки файлов перед каждым редактированием, чтобы/rewindмог их восстановитьfalse: Claude Code не создаёт снимки файлов, поэтому/rewindне может их восстановить
- Default:
true - Per-session overrides:
CLAUDE_CODE_DISABLE_FILE_CHECKPOINTINGотключает checkpointing на одну сессию; какой бы из двух параметров его ни отключил, другой не может его включить обратно
{
"fileCheckpointingEnabled": false
}
В запуске -p или сессии Agent SDK Claude Code игнорирует этот ключ. SDK включает checkpointing с помощью своей опции enableFileCheckpointing, и простой запуск -p требует CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true. См. File checkpointing в Agent SDK.
idleCompaction
Сжатие в режиме простоя сжимает длинный диалог, от которого вы отошли. Тогда ваше следующее сообщение отправляет сводку вместо всего диалога. После сжатия в диалоге отображается уведомление:
- Терминал: строка, начинающаяся с
Compacted while idle, before the prompt cache expired - Панель чата VS Code: уведомление, содержащее
a summary written while you were away - Настольное приложение: то же уведомление внутри строки, метка которой содержит
Claude Code notice. Если вы не видите эту строку или её текст, переключитесь в режим просмотра Verbose.
Сжатие в режиме простоя включено по умолчанию для диалогов, которые соответствуют всем следующим условиям:
- Сессия: вы находитесь в интерактивной сессии терминала либо в панели чата расширения VS Code или на вкладке Code настольного приложения с учётной записью, которую выбирает Anthropic
- Автосжатие:
autoCompactEnabledвключён - Кэш промптов: диалог использует часовой TTL кэша промптов
- Флаги функций: Claude Code может получать флаги функций от Anthropic
- Размер: контекст диалога достиг порога токенов, который вы можете изменить со значения по умолчанию 200 000
- Время простоя: с момента последнего запроса прошло около 54 минут, и в этот момент ваш компьютер не находится в спящем режиме
Чтобы отключить сжатие в режиме простоя, установите этот ключ в false.
- Scope:
Any file - Type: Boolean
true: Claude Code сжимает простаивающие диалоги, которые соответствуют условиямfalse: Claude Code не выполняет сжатие, пока ваша сессия простаивает
- Default:
true - Per-session overrides:
DISABLE_AUTO_COMPACTотключает сжатие в режиме простоя вместе с автосжатием
{
"idleCompaction": false
}
Чтобы отключить или включить сжатие в режиме простоя прямо в сессии терминала, запустите /config и измените строку Idle compaction. Ваш выбор сохраняется в пользовательских настройках и применяется сразу. Эта строка требует Claude Code v2.1.302 или позже. Если вы используете одну из этих версий, а /config не показывает эту строку, проверьте следующие причины:
- Ключ задан в другом источнике настроек: значение в управляемых настройках, флаге
--settingsили файле настроек проекта или локальных настроек переопределяет ваши пользовательские настройки. Измените ключ в этом источнике - Флаги функций недоступны: там, где Claude Code не может получать флаги функций от Anthropic, сжатие в режиме простоя не выполняется, поэтому отключать нечего
Ключ требует Claude Code v2.1.290 или позже. В более ранней версии, которая игнорирует этот ключ, отключите autoCompactEnabled, чтобы остановить сжатие в режиме простоя.
Изменение порога сжатия в режиме простоя
Установите в CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS количество токенов, которого должен достичь контекст диалога, чтобы к нему применялось сжатие в режиме простоя. Используйте положительное целое число. Значения ниже 100000 повышаются до 100000 — минимального порога.
При значении по умолчанию диалог с контекстным окном 200K автоматически сжимается до того, как достигнет 200 000 токенов. Этот пример снижает порог до 150 000, чтобы такие диалоги соответствовали условию:
{
"env": {
"CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS": "150000"
}
}
Сжатие в режиме простоя в VS Code и настольном приложении
Подобное уведомление означает, что Claude Code заменил ваш предыдущий диалог сводкой, с которой теперь работает Claude:
Compacted using a summary written while you were away · turn off with "idleCompaction": false in settings.json
Вам не нужно ничего делать. Чтобы отключить сжатие в режиме простоя, установите idleCompaction в false в ~/.claude/settings.json или другом файле настроек.
В панели чата расширения VS Code и на вкладке Code настольного приложения сжатие в режиме простоя выполняется для учётных записей, которые выбирает Anthropic. Claude Code составляет сводку, пока вас нет, а затем выполняет с её помощью сжатие, только если ваше следующее сообщение приходит через час или более после последнего запроса.
plansDirectory
Выберите, где Claude Code хранит файлы плана, которые он записывает в режиме планирования. Claude Code разрешает путь относительно корня проекта.
- Scope:
Any file - Type: строка, путь относительно корня проекта
- Default: не установлено, поэтому Claude Code использует
~/.claude/plans
{
"plansDirectory": "./plans"
}
Claude Code хранит планы в ~/.claude/plans вместо заданного вами каталога, например, в следующих случаях:
- Вне корня проекта: путь разрешается за пределами корня проекта, как в случае
"../plans". - Обратная косая черта в macOS, Linux и WSL: разрешённый путь содержит обратную косую черту, как в пути в стиле Windows
"docs\\plans". Пишите"docs/plans"— такой путь работает и в Windows.
skillListingBudgetFraction
Каждый ход Claude видит список ваших skills с их описаниями, и Claude Code ограничивает этот список долей окна контекста. Когда список превышает лимит, Claude Code сохраняет имя каждого skill, но отбрасывает описания наименее используемых skills, поэтому Claude всё ещё может вызывать эти skills, но менее вероятно выбрать один самостоятельно. Увеличьте этот ключ, чтобы сохранить больше описаний видимыми за счёт большего контекста за ход.
- Scope:
Any file - Type: число, доля больше
0и не более1 - Default:
0.01, что резервирует 1% окна контекста
{
"skillListingBudgetFraction": 0.02
}
Чтобы увидеть, сколько контекста использует список и какие skills вносят наибольший вклад, запустите /doctor.
skillListingMaxDescChars
Каждый ход Claude видит список ваших skills, который показывает текст description и when_to_use каждого skill. Этот ключ ограничивает, сколько символов этого текста Claude Code показывает для каждого skill; более длинный текст обрезается на лимите.
- Scope:
Any file - Type: количество символов, положительное целое число
- Default:
1536
{
"skillListingMaxDescChars": 2048
}
Увеличьте его, чтобы сохранить длинные описания нетронутыми за счёт большего контекста за ход; уменьшите его, чтобы вместить больше skills под skillListingBudgetFraction.
taskOutputMaxChars
[!WARNING]
Удалено в v2.1.277 вместе с инструментом
TaskOutput, который он определял. Установка этого параметра не влияет на текущие версии. Claude читает файл вывода фонового задания с помощьюReadвместо этого.
До v2.1.276 вы устанавливали этот ключ на количество символов вывода фонового задания, которое Claude получал встроенным образом, когда читал задание с помощью инструмента TaskOutput.
Интерфейс и терминал
Изменяйте внешний вид и поведение Claude Code в терминале: тему, режим редактора, строку состояния, спиннер, уведомления внутри сессии и специальные возможности. См. Настройка терминала.
askUserQuestionTimeout
Позволяет диалоговому окну AskUserQuestion, оставшемуся без ответа, автоматически продолжить работу после периода бездействия, отправив те варианты, которые вы уже выбрали. Задайте этот параметр, если вы отходите и хотите, чтобы Claude продолжал без вас. При значении по умолчанию вопросы ждут, пока вы на них не ответите. О том, когда таймер приостанавливается или вообще не запускается, см. Таймаут автопродолжения вопроса.
- Область действия:
User or managed - Тип: строка, одно из значений
"60s","5m","10m"или"never" - По умолчанию:
"never"
{
"askUserQuestionTimeout": "5m"
}
Отображается в /config как Question auto-continue timeout и записывает этот ключ в пользовательские настройки; Claude Code скрывает эту строку, когда ключ задан управляемыми настройками или флагом --settings.
autoContinueAtUsageLimit
После того как лимит использования claude.ai останавливает вашу сессию, Claude Code ожидает в открытой сессии и автоматически продолжает задачу после сброса лимита. См. Отключение автоматического продолжения. Требуется Claude Code v2.1.234 или новее.
- Область действия:
User or managed. Считывается только из пользовательских настроек,--settingsи управляемых настроек. Если ни один из этих источников не задаёт ключ, файл настроек проекта или локальный файл настроек, задающий его, отключает функцию, а не игнорируется. - Тип: Boolean
true: после того как лимит использования claude.ai останавливает вашу сессию, Claude Code ожидает в открытой сессии и автоматически продолжает задачу после сброса лимитаfalse: Claude Code не начинает ожидание самостоятельно. Вы по-прежнему можете запустить ожидание сами из меню вариантов, связанных с лимитом использования
- По умолчанию:
true
{
"autoContinueAtUsageLimit": false
}
Отображается в /config как Continue automatically at usage limit и записывает этот ключ в пользовательские настройки; Claude Code скрывает эту строку, когда ключ задан управляемыми настройками или флагом --settings.
autoScrollEnabled
Следовать за новым выводом к нижней части диалога в полноэкранном режиме отображения. Отключите, чтобы оставаться в том месте, куда вы прокрутили, пока Claude продолжает работать; запросы разрешений по-прежнему прокручиваются в область видимости.
- Область действия:
Any file - Тип: Boolean
true: диалог следует за новым выводом к нижней частиfalse: вы остаётесь там, куда прокрутили, пока Claude продолжает работать; запросы разрешений по-прежнему появляются под транскриптом
- По умолчанию:
true
{
"autoScrollEnabled": false
}
Отображается в /config как Auto-scroll, когда включён полноэкранный режим отображения, и записывает этот ключ в пользовательские настройки.
axScreenReader
Выводить текст, удобный для программ экранного доступа: простой текст без декоративных рамок и анимаций. Режим экранного доступа использует классический рендерер, поэтому настройка tui не действует, пока он активен; подключённые фоновые сессии по-прежнему отображаются в полноэкранном режиме.
- Область действия:
User or managed. Ключ также можно задать в файле, передаваемом через--settings. Claude Code игнорирует ключ в настройках проекта и локальных настройках, поэтому ни репозиторий, ни ваш собственный.claude/settings.local.jsonне могут включить или отключить режим экранного доступа. - Тип: Boolean
true: Claude Code выводит простой текст без декоративных рамок и анимаций, используя классический рендерерfalse: Claude Code отображает интерфейс обычным образом
- По умолчанию: не задано, поэтому режим экранного доступа отключён
- Переопределения для отдельной сессии:
--ax-screen-readerимеет приоритет надCLAUDE_AX_SCREEN_READER, и оба имеют приоритет над этим ключом в рамках одной сессии
{
"axScreenReader": true
}
bashEditDiffEnabled
Определяет, будет ли Claude Code фиксировать, какие файлы в Git-репозитории изменились во время выполнения команды Bash. Когда он их фиксирует, вы видите их diff в терминале после команды, а ваши хуки PostToolUse для Bash получают список изменённых файлов.
Файл в списке не всегда изменён именно этой командой. Там также может оказаться изменение, внесённое другой программой или другим вызовом Bash во время выполнения команды.
Установите ключ в true, чтобы фиксировать их во всех режимах разрешений. Требуется Claude Code v2.1.269 или новее.
- Область действия:
User or managed. Значениеtrueучитывается только из ваших пользовательских настроек, JSON, переданного через--settings, или управляемых настроек, поэтомуtrueв файлах репозитория.claude/settings.jsonили.claude/settings.local.jsonне может включить фиксацию. Значениеfalseв любом из этих файлов репозитория всё же отключает её, если только файл с более высоким приоритетом не задаётtrue. - Тип: Boolean
- По умолчанию: не задано, поэтому Claude Code фиксирует изменения в авторежиме и режиме
bypassPermissions, когда направляет Claude редактировать файлы через Bash - Переопределения для отдельной сессии:
CLAUDE_CODE_BASH_EDIT_DIFFимеет приоритет над этим ключом в рамках одной сессии
{
"bashEditDiffEnabled": true
}
companyAnnouncements
Показывать пользователям объявления вашей организации при запуске. Если вы укажете больше одного, Claude Code выбирает одно случайным образом для каждой сессии; при самом первом запуске у человека показывается первая запись.
- Область действия:
Any file - Тип: массив строк
- По умолчанию: не задано, поэтому объявления не показываются
{
"companyAnnouncements": [
"Welcome to Acme Corp! Review our code guidelines at docs.example.com"
]
}
defaultShell
Определяет, будет ли Bash или PowerShell выполнять shell-команды, которые вы вводите с префиксом ! в поле ввода, — те, которые Claude Code выполняет напрямую и добавляет в сессию.
"powershell" работает, только пока включён инструмент PowerShell. Инструмент включён по умолчанию в Windows без Git Bash, а также в Windows с Git Bash для учётных записей claude.ai и Console. В сессиях Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, а также в macOS, Linux и WSL установите CLAUDE_CODE_USE_POWERSHELL_TOOL=1, чтобы включить инструмент. Установите эту переменную в 0, чтобы отключить инструмент.
- Область действия:
Any file - Тип: строка, одно из значений:
"bash": Claude Code выполняет ваши команды!в Bash"powershell": Claude Code выполняет ваши команды!в PowerShell
- По умолчанию:
"bash"или"powershell"в Windows, когда Bash недоступен
{
"defaultShell": "powershell"
}
Если указанная оболочка недоступна, Claude Code использует другую: "powershell" переключается на Bash, когда инструмент PowerShell отключён, а "bash" переключается на PowerShell, когда Bash не установлен.
dialogExpiry
Задаёт крайний срок для диалоговых окон, которые Claude Code перенаправляет удалённому клиенту, например хосту Remote Control или SDK, а также для диалогового окна подтверждения задержанного межсессионного сообщения. В Claude Code v2.1.236 или новее тот же крайний срок ограничивает запрос согласия на кредиты использования Fable, появляющийся посреди сессии, в которой у терминала может никого не быть. Если ответ не поступает до истечения срока, Claude Code закрывает диалоговое окно и продолжает с вариантом по умолчанию, не предполагающим действий. Требуется Claude Code v2.1.224 или новее.
- Область действия:
User or managed - Тип: строка, одно из значений
"60s","5m","10m"или"never", которое отключает крайний срок - По умолчанию:
"5m" - Переопределения для отдельной сессии:
CLAUDE_CODE_USER_DIALOG_TIMEOUT_MSимеет приоритет над этим ключом в рамках одной сессии
{
"dialogExpiry": "10m"
}
Запросы разрешений и вопросы AskUserQuestion используют собственные механизмы и не подчиняются этому крайнему сроку. Отображается в /config как Dialog expiry и записывает этот ключ в пользовательские настройки; для этой строки требуется Claude Code v2.1.232 или новее, и Claude Code скрывает её, когда ключ задан управляемыми настройками или флагом --settings.
editorMode
Выбор режима сочетаний клавиш для поля ввода промпта.
- Область действия:
Any file - Тип: строка, одно из значений:
"normal": стандартные сочетания клавиш в поле ввода промпта"vim": редактирование в стиле vim с режимами NORMAL, INSERT и VISUAL
- По умолчанию:
"normal"
{
"editorMode": "vim"
}
Отображается в /config как Editor mode и записывает этот ключ в пользовательские настройки.
emojiCompletionEnabled
Показывать подсказки эмодзи, когда вы вводите : и короткий код в поле ввода промпта, и заменять завершённый короткий код, например :heart:, на соответствующий эмодзи. Установите false, чтобы отключить и то, и другое.
- Область действия:
Any file - Тип: Boolean
true: Claude Code показывает подсказки эмодзи после:и заменяет завершённый короткий код на эмодзиfalse: Claude Code не предлагает эмодзи и не заменяет короткие коды
- По умолчанию:
true
{
"emojiCompletionEnabled": false
}
См. Короткие коды эмодзи.
fileSuggestion
Запускать собственную команду для автодополнения путей к файлам после @ вместо встроенных подсказок файлов. Встроенные подсказки используют быстрый обход файловой системы; для большого монорепозитория может подойти лучше индексация под конкретный проект, например заранее построенный индекс файлов.
- Область действия:
Any file. При действии ограничений для строки состояния и подсказок файлов Claude Code отключает команду или выполняет только управляемое значение и без предупреждения пропускает ваше. - Тип: объект с полями
type, всегда"command", иcommand— shell-командой для запуска - По умолчанию: не задано, поэтому Claude Code использует встроенные подсказки файлов
{
"fileSuggestion": {
"type": "command",
"command": "~/.claude/file-suggestion.sh"
}
}
После сохранения введите в промпте @, а затем часть пути: подсказки будут браться из вывода вашей команды.
Ввод и вывод команды
Claude Code запускает команду с теми же переменными окружения, что и хуки, включая CLAUDE_PROJECT_DIR, и перестаёт ждать через пять секунд. Команда получает JSON через stdin с полем query, содержащим то, что вы уже ввели:
{"query": "src/comp"}
Выводите в stdout пути к файлам, разделённые переводом строки. Claude Code показывает не более 15:
src/components/Button.tsx
src/components/Modal.tsx
src/components/Form.tsx
Следующий скрипт считывает запрос и передаёт его индексу файлов репозитория:
#!/bin/bash
query=$(cat | jq -r '.query')
# Replace your-repo-file-index with your own file search command
your-repo-file-index --query "$query" | head -20
footerLinksRegexes
Отображать дополнительные кликабельные значки в нижней панели под полем ввода, когда регулярное выражение совпадает с выводом хода: результатами инструментов, включая содержимое файлов и загруженные страницы, и собственными ответами Claude. Используйте это, чтобы превращать идентификаторы, которые выводят CLI проекта, например инструменты ревью и трекеры задач, в ссылки в сессии.
- Область действия:
User or managed - Тип: массив объектов, в каждом из которых
typeимеет значение"regex", есть регулярное выражениеpattern, шаблонurlи необязательное полеlabel; плейсхолдеры{name}вurlиlabelзаполняются из именованных групп захвата вpattern - По умолчанию: не задано, поэтому значки не отображаются
Этот пример находит ключи задач, такие как PROJ-1234, и строит каждую ссылку из захваченного ключа:
{
"footerLinksRegexes": [
{
"type": "regex",
"pattern": "\\b(?<key>PROJ-\\d+)\\b",
"url": "https://issues.example.com/browse/{key}",
"label": "{key}"
}
]
}
С такой конфигурацией, когда PROJ-1234 появляется в результате инструмента или в ответе Claude, в нижней панели появляется значок PROJ-1234, ссылающийся на https://issues.example.com/browse/PROJ-1234.
Ограничения значков
URL, метка и количество значков для каждой записи ограничены следующим образом:
| Ограничение | Поведение |
|---|---|
| Источник URL | Захваченные значения кодируются для URL, и построенный URL должен иметь тот же буквальный источник (origin), что и шаблон. Захват может заполнить сегмент пути или значение параметра запроса, но не может изменить, куда ведёт ссылка |
| Длина URL | Построенные URL длиннее 2048 символов отбрасываются |
| Схема URL | Должна быть https, http или распознаваемой схемой глубоких ссылок редактора или рабочего пространства: vscode, vscode-insiders, cursor, windsurf, zed, jetbrains, idea, slack, linear, notion, figma |
| Метка | По умолчанию — совпавший текст; усекается до 28 экранных столбцов |
| Количество значков | Отображается не более 5 значков. Самый старый вытесняется новыми совпадениями, а /clear удаляет их |
Когда ход завершается, Claude Code сопоставляет регулярное выражение pattern каждой записи с выводом хода в основном потоке, поэтому медленное регулярное выражение блокирует интерфейс, пока не завершится. Вложенные квантификаторы, такие как (a+)+$, на определённых входных данных могут выполняться экспоненциально долго и зависать сессию, поэтому делайте каждый pattern линейным и избегайте вложенных + или *.
Значки нижней панели отображаются вместе с пользовательской строкой состояния, если она настроена; ни одно не заменяет другое. Используйте строку состояния для строки, управляемой скриптом, которая вычисляет собственное содержимое на основе данных сессии, а значки нижней панели — чтобы превращать идентификаторы из диалога в ссылки без скрипта.
keybindingFlavor
[!WARNING]
Объявлен устаревшим начиная с v2.1.261 и ни на что не влияет. Клавиши редактирования слов в промпте всегда следуют соглашениям readline, как в Bash. Claude Code по-прежнему принимает
keybindingFlavor, поэтому файл настроек, задающий его, остаётся валидным.
В версиях с v2.1.238 по v2.1.260 значение "readline" заставляло Ctrl+W удалять текст до предыдущего пробельного символа, а не только предыдущее слово.
- Область действия:
Any file - Тип: строка,
"classic"или"readline" - По умолчанию: не задано
maxProseWidth
Ограничивает ширину текста в ответах Claude, чтобы строки оставались удобочитаемыми в широком терминале. Абзацы, заголовки, списки и цитаты переносятся в пределах этого числа столбцов, а таблицы и блоки кода сохраняют полную ширину терминала. Требуется Claude Code v2.1.282 или новее.
- Область действия:
Any file - Тип: число столбцов терминала, целое число, минимум
40. Claude Code игнорирует любые другие значения - По умолчанию: не задано, поэтому текст переносится по краю терминала
{
"maxProseWidth": 80
}
prefersReducedMotion
Уменьшить или отключить анимации интерфейса, такие как спиннер, мерцание и эффекты вспышки. Отображается в /config как Reduce motion.
- Область действия:
Any file - Тип: Boolean
true: Claude Code уменьшает или отключает анимации интерфейса, такие как спиннер, мерцание и эффекты вспышкиfalse: то же, что и отсутствие значения; Claude Code показывает свои анимации
- По умолчанию:
false
{
"prefersReducedMotion": true
}
promptSuggestionEnabled
Показывать или скрывать подсказки промптов — серые предсказания, которые появляются в поле ввода промпта. Установите false или отключите Prompt suggestions в /config, чтобы скрыть их.
- Область действия:
Any file - Тип: Boolean
true: вы видите подсказки промптов в поле ввода промптаfalse: Claude Code скрывает подсказки промптов
- По умолчанию:
true - Переопределения для отдельной сессии:
CLAUDE_CODE_ENABLE_PROMPT_SUGGESTIONимеет приоритет над этим ключом в рамках одной сессии
{
"promptSuggestionEnabled": false
}
Для подсказок промптов нужна учётная запись claude.ai или Console с включённой телеметрией. В Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, а также при отключённой телеметрии, например через DISABLE_TELEMETRY, этот ключ не действует, и включить подсказки может только CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=1.
respectGitignore
Определяет, исключает ли средство выбора файлов @ файлы, соответствующие шаблонам .gitignore. Отображается в /config как Respect .gitignore in file picker.
- Область действия:
Any file. Если ни один файл настроек не задаёт этот ключ, Claude Code используетrespectGitignoreиз~/.claude.json, куда его записывает переключатель в/config. - Тип: Boolean
true: средство выбора файлов@исключает файлы, соответствующие шаблонам.gitignorefalse: средство выбора файлов@включает файлы, соответствующие шаблонам.gitignore
- По умолчанию:
true
{
"respectGitignore": false
}
respondToBashCommands
Определяет, отвечает ли Claude после того, как вы выполните shell-команду с префиксом ! в поле ввода. По умолчанию Claude Code добавляет вывод команды в диалог, и Claude на него отвечает. Установите этот ключ в false, чтобы добавлять вывод в контекст без ответа — так вы сможете выполнить несколько команд и спросить о них вместе.
- Область действия:
Any file - Тип: Boolean
true: Claude Code добавляет вывод команды в диалог, и Claude на него отвечаетfalse: Claude Code добавляет вывод в контекст без ответа
- По умолчанию:
true
{
"respondToBashCommands": false
}
См. Режим оболочки с префиксом !.
showClearContextOnPlanAccept
Когда Claude завершает план в режиме планирования, он показывает меню подтверждения. Планирование может использовать много контекста, поэтому этот ключ добавляет в это меню первый вариант, Yes, clear context and …, который утверждает план, очищает контекст диалога и начинает реализацию, опираясь только на план. Оставшаяся часть метки называет режим разрешений, в котором продолжится сессия, и показывает, какую часть контекста использовало планирование.
- Область действия:
Any file - Тип: Boolean
true: меню подтверждения плана получает первый вариант, Yes, clear context and …, который утверждает план и очищает контекст диалогаfalse: меню подтверждения плана не показывает вариант очистки контекста
- По умолчанию:
false
{
"showClearContextOnPlanAccept": true
}
showTurnDuration
Показывать или скрывать сообщение о длительности хода после каждого ответа, например «Cooked for 1m 6s · done 6:05 PM». Время после «done» показывает, когда ход завершился; timeFormat и timeZone управляют его форматом и часовым поясом. Отображается в /config как Show turn duration.
- Область действия:
Any file. Значение в~/.claude.jsonиз более старой версии применяется, если ни один файл настроек не задаёт этот ключ. - Тип: Boolean
true: вы видите сообщение о длительности хода после каждого ответаfalse: Claude Code скрывает сообщение о длительности хода
- По умолчанию:
true
{
"showTurnDuration": false
}
spellcheck
Подчёркивать слова с ошибками в поле ввода промпта по мере ввода, используя установленную вами программу проверки орфографии. Claude Code проверяет только текст в поле ввода. В разделе Проверка орфографии по мере ввода описаны установка aspell, hunspell или ispell и то, что проверяет программа проверки. Требуется Claude Code v2.1.235 или новее.
- Область действия:
User or managed. Блок из уровня с наивысшим приоритетом, который его задаёт, применяется целиком. - Тип: объект с полями
enabled(Boolean),checker("aspell","hunspell","ispell"или"auto"),language(строка, передаётся программе проверки как имя словаря) иcolor(строка: название цвета терминала,#rrggbb,rgb(r,g,b),ansi256(n)илиansi:<name>) - По умолчанию: не задано, поэтому проверка орфографии отключена;
checkerпо умолчанию"auto"— первая из трёх программ, найденная вPATH;languageпо умолчанию — собственный словарь программы проверки;colorпо умолчанию — цвет ошибок из темы
{
"spellcheck": { "enabled": true, "language": "en_GB" }
}
spinnerTipsEnabled
Пока Claude работает, строка спиннера поочерёдно показывает короткие советы о возможностях Claude Code, например «Use Plan Mode to prepare for a complex request before making changes. Press Shift+Tab twice to enable.» Установите этот ключ в false, чтобы скрыть их. Отображается в /config как Show tips.
- Область действия:
Any file - Тип: Boolean
true: вы видите советы в спиннере, пока Claude работаетfalse: Claude Code скрывает советы в спиннере
- По умолчанию:
true
{
"spinnerTipsEnabled": false
}
spinnerTipsOverride
Добавить собственные советы к советам в спиннере, которые Claude Code показывает, пока Claude работает, или заменить встроенные советы своими. Claude Code включает ваши советы в ту же ротацию, что и встроенные.
Если вы установите spinnerTipsEnabled в false, Claude Code скроет все советы, включая ваши.
- Область действия:
Any file. Claude Code учитывает объекты советов,tipsFile,labelиexcludeDefaultиз пользовательских настроек, флага--settingsи управляемых настроек; из настроек проекта и локальных настроек он считывает только простые строковые советы. - Тип: объект с полями
tips,tipsFile,labelиexcludeDefault, каждое необязательное - По умолчанию: не задано, поэтому Claude Code показывает только встроенные советы
Для объектов советов, tipsFile, label и правила из строки «Область действия» о том, что настройки проекта и локальные настройки добавляют только простые строки, требуется Claude Code v2.1.247 или новее.
Каждая запись tips — это простая строка или объект со следующими полями:
| Поле | Обязательное | Описание |
|---|---|---|
id |
Да | До 64 букв, цифр, ., _ или -. Claude Code привязывает к нему историю показов совета, поэтому период ожидания совета сохраняется при изменении порядка списка. Из двух записей с одинаковым id Claude Code использует первую |
text |
Да | Совет — одна строка длиной до 500 символов. Claude Code удаляет escape-последовательности ANSI и управляющие символы и сжимает пробельные символы |
cooldownSessions |
Нет | Количество сессий, которое Claude Code ждёт перед повторным показом совета, от 0 до 1000, по умолчанию 0 |
priority |
Нет | Порядок среди советов, которые не показывались одинаково долго; больший приоритет идёт первым, от -10 до 10, по умолчанию 0 |
Claude Code считывает простую строку как совет с этими значениями по умолчанию и id на основе позиции, поэтому её история показов сбрасывается при изменении порядка списка. Задайте совету id, чтобы сохранять его историю при правках.
Claude Code считывает не более 200 советов из tips и tipsFile в сумме и отбрасывает недопустимую запись с отладочным предупреждением вместо того, чтобы отклонять файл настроек.
Используйте оставшиеся поля, чтобы указать файл советов, задать префикс и скрыть встроенные советы:
tipsFile: абсолютный путь или путь вида~/к локальному JSON-файлу, содержащему массив таких же записей или объект с массивомtips, размером до 256 KB. Claude Code считывает файл один раз за процесс, поэтому ваши правки загружаются при следующем запуске. Его нельзя задать через серверные управляемые настройки; разворачивайте там встроенныеtipsили разверните путь в файлеmanaged-settings.jsonна диске.label: префикс, который Claude Code показывает перед советами из пользовательских настроек,--settingsи управляемых настроек, до 40 символов. По умолчанию —Tip, тот же префикс, что и у встроенных советов; советы из настроек проекта и локальных настроек всегда используют его.excludeDefault: установитеtrue, чтобы скрыть встроенные советы и показывать только ваши. Если Claude Code не может загрузить ни одного вашего совета, например потому чтоtipsFileне существует или все записи недопустимы, он сохраняет встроенную ротацию вместо пустого спиннера.
Если ключ задан в нескольких файлах настроек, Claude Code показывает советы из всех них, а tipsFile, label и excludeDefault берёт из того источника — управляемых настроек, флага --settings или пользовательских настроек, — который имеет наивысший приоритет среди задающих каждое из этих полей.
Этот пример в ваших пользовательских настройках добавляет в ротацию простой строковый совет и совет-объект с префиксом Acme tip:
{
"spinnerTipsOverride": {
"label": "Acme tip",
"tips": [
"Run /review before opening a PR",
{
"id": "gateway-errors",
"text": "Seeing 5xx errors? Check the gateway status page first",
"cooldownSessions": 5,
"priority": 2
}
]
}
}
Каждое поле в примере меняет одну особенность того, как Claude Code показывает советы:
label: Claude Code показывает оба совета какAcme tip: ...вместоTip: ....- Простая строка: Claude Code присваивает ей значения по умолчанию, поэтому она может появиться снова уже в следующей сессии.
id: Claude Code привязывает историю показов второго совета кgateway-errors, поэтому его период ожидания сохраняется после добавления или изменения порядка советов.cooldownSessions: после того как Claude Code покажет советgateway-errors, он не покажет его снова в течение пяти сессий.priority: когда советgateway-errorsи другой совет не показывались одинаковое число сессий, например когда ни один из них ещё не был показан, Claude Code сначала показываетgateway-errors. Простая строка имеет приоритет по умолчанию,0.
Пока Claude работает, Claude Code показывает ваши советы в спиннере с вашим префиксом, например Acme tip: Run /review before opening a PR.
spinnerVerbs
Пока ход выполняется, спиннер показывает сменяющийся глагол, например «Accomplishing», «Architecting» или «Baking». Используйте этот ключ, чтобы добавить в эту ротацию собственные глаголы или заменить встроенный список своим.
- Область действия:
Any file - Тип: объект с массивом строк
verbsи полемmode, одно из значений:"append": Claude Code добавляет ваши глаголы к встроенному набору"replace": Claude Code показывает только ваши глаголы
- По умолчанию: не задано, поэтому Claude Code использует встроенные глаголы
Этот пример добавляет два глагола к встроенному набору:
{
"spinnerVerbs": {
"mode": "append",
"verbs": ["Pondering", "Crafting"]
}
}
В режиме "replace" с пустым массивом verbs Claude Code сохраняет встроенные глаголы.
statusLine
Запускать собственную команду для отображения строки состояния под промптом с контекстной информацией, такой как модель, стоимость или ветка git. Необязательные поля настраивают отступы, добавляют периодический перезапуск и скрывают встроенный индикатор режима vim, когда ваш скрипт сам отображает vim.mode.
- Область действия:
Any file. Когда включёнallowManagedHooksOnlyилиdisableAllHooksзадан вне управляемых настроек, выполняется только значение из управляемых настроек. - Тип: объект, где
typeимеет значение"command"и есть строкаcommand, а также необязательныеpadding— число символов,refreshInterval— число секунд, минимум1, иhideVimModeIndicator— Boolean - По умолчанию: не задано, поэтому строки состояния нет
Этот пример выводит название модели и использование контекста и добавляет два символа горизонтального отступа:
{
"statusLine": {
"type": "command",
"command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",
"padding": 2
}
}
Для примера требуется установленный jq, и он выполняется в оболочке. Аналоги для PowerShell и Git Bash см. в разделе Настройка в Windows; полную настройку см. в разделе Ручная настройка строки состояния.
subagentStatusLine
Когда Claude запускает субагентов, Claude Code перечисляет их в области задач под промптом — по одной строке на субагента в формате name · description · token count. Этот ключ позволяет запускать собственную команду, чтобы переписывать эти строки, например чтобы показывать использование контекста каждым субагентом в процентах. При каждом обновлении Claude Code отправляет видимые строки в виде одного JSON-объекта через stdin, с массивом tasks, содержащим для каждого субагента id, name, status, model, tokenCount и другие поля, и заменяет строку для каждого id, который вы возвращаете в виде строки {"id", "content"}. Строки, которые вы не возвращаете, сохраняют отображение по умолчанию.
- Область действия:
Any file. Когда включёнallowManagedHooksOnlyилиdisableAllHooksзадан вне управляемых настроек, выполняется только значение из управляемых настроек. - Тип: объект, где
typeимеет значение"command"и есть строкаcommand - По умолчанию: не задано, поэтому Claude Code отображает строки по умолчанию
{
"subagentStatusLine": {
"type": "command",
"command": "jq -c '.tasks[] | {id, content: \"\\(.name): \\(.tokenCount) tokens\"}'"
}
}
См. Строки состояния субагентов.
syntaxHighlightingDisabled
Claude Code раскрашивает код в соответствии с языком в diff, блоках кода и предпросмотрах файлов, которые он показывает в терминале, с помощью встроенного средства подсветки; плагины и языковые серверы при этом не используются. Установите этот ключ в true, чтобы показывать их как простой текст, например если цвета конфликтуют с темой вашего терминала или замедляют программу экранного доступа.
- Область действия:
Any file - Тип: Boolean
true: Claude Code отключает подсветку синтаксиса в diff, блоках кода и предпросмотрах файловfalse: Claude Code подсвечивает синтаксис
- По умолчанию:
false
{
"syntaxHighlightingDisabled": true
}
terminalProgressBarEnabled
Некоторые терминалы могут показывать индикатор прогресса на вкладке или на панели задач для запущенной в них программы. Пока Claude работает, Claude Code сообщает терминалу состояние «в процессе», поэтому из другой вкладки или окна видно, занята ли ещё сессия. Индикатор остаётся видимым после окончания хода, пока ещё выполняются фоновые субагенты или динамические рабочие процессы, и исчезает, когда сессия простаивает.
Claude Code сообщает это состояние только в терминалах, поддерживающих индикатор: ConEmu, Ghostty 1.2.0 или новее и iTerm2 3.6.6 или новее. Установите этот ключ в false, чтобы Claude Code перестал его сообщать. Отображается в /config как Terminal progress bar.
- Область действия:
Any file. Значение в~/.claude.jsonиз более старой версии применяется, если ни один файл настроек не задаёт этот ключ. - Тип: Boolean
true: вы видите индикатор прогресса в терминалах, которые его поддерживаютfalse: Claude Code скрывает индикатор прогресса в терминале
- По умолчанию:
true
{
"terminalProgressBarEnabled": false
}
terminalTitleFromRename
Claude Code задаёт заголовок вкладки вашего терминала. По умолчанию он использует заголовок, сгенерированный на основе диалога, а как только вы дадите сессии имя с помощью /rename или --name, вкладка вместо этого показывает это имя. Установите этот ключ в false, чтобы сохранять на вкладке сгенерированный заголовок даже после того, как вы назовёте сессию. Само имя при этом всё равно применяется, поэтому /resume <name> и средство выбора сессий находят её.
- Область действия:
Any file - Тип: Boolean
true: заголовок вкладки терминала показывает заданное вами имя сессииfalse: вкладка сохраняет заголовок, который Claude Code генерирует на основе вашего диалога
- По умолчанию:
true
{
"terminalTitleFromRename": false
}
Чтобы Claude Code вообще не обновлял заголовок терминала, установите вместо этого CLAUDE_CODE_DISABLE_TERMINAL_TITLE в 1.
theme
Выбор цветовой темы интерфейса. Отображается в /config как Theme.
- Область действия:
Any file. Значение в~/.claude.jsonиз более старой версии применяется, если ни один файл настроек не задаёт этот ключ. - Тип: строка, одно из значений:
"auto": соответствует светлому или тёмному фону вашего терминала"dark": тёмная тема"light": светлая тема"dark-daltonized": тёмная тема с цветами, подходящими для людей с нарушениями цветового зрения"light-daltonized": светлая тема с цветами, подходящими для людей с нарушениями цветового зрения"dark-ansi": тёмная тема, использующая только палитру цветов ANSI вашего терминала"light-ansi": светлая тема, использующая только палитру цветов ANSI вашего терминала"custom:<slug>"или"custom:<plugin-name>:<slug>": пользовательская тема из~/.claude/themes/или из плагина
- По умолчанию:
"dark"
{
"theme": "light-daltonized"
}
См. Создание пользовательской темы.
timeFormat
Определяет, как Claude Code записывает время, которое он показывает в интерфейсе, например done 6:05 PM в конце каждого сообщения о длительности хода и метки времени в средстве просмотра транскрипта. Чтобы выбрать готовый вариант, выполните /config и задайте Time format. Требуется Claude Code v2.1.257 или новее.
- Область действия:
Any file - Тип: строка, одно из значений:
"auto": то же, что и отсутствие значения; каждое время сохраняет свой встроенный формат, который в сообщении о длительности хода следует вашей локали"12-hour": 12-часовой формат"24-hour": 24-часовой формат"24-hour-utc": 24-часовой формат в UTC сZпосле минут, например18:05Z; для этого варианта Claude Code игнорируетtimeZone- Шаблон strftime, например
"%H:%M": Claude Code записывает каждое время по шаблону. Любое значение, содержащее%, является шаблоном, а любое другое значение вне готовых вариантов считается"auto"
- По умолчанию:
"auto"
{
"timeFormat": "24-hour"
}
/config предлагает только готовые варианты, поэтому чтобы использовать шаблон strftime, добавьте ключ в файл настроек. Этот пример показывает каждое время в двузначном 24-часовом формате:
{
"timeFormat": "%H:%M"
}
После этого сообщение о длительности хода и средство просмотра транскрипта показывают время, например 18:05. В средстве просмотра транскрипта шаблон задаёт всю метку времени целиком, поэтому добавьте директивы даты, если хотите видеть там дату. Этот пример ставит дату перед временем:
{
"timeFormat": "%Y-%m-%d %H:%M"
}
После этого в тех же местах показывается время, например 2026-09-01 18:05.
timeZone
Показывать время в интерфейсе в часовом поясе, отличном от системного. Задайте имя часового пояса IANA, например "UTC" или "Europe/Dublin". Время, которым управляет timeFormat, тогда показывается в этом поясе. Если timeFormat имеет значение "24-hour-utc", время остаётся в UTC, и Claude Code игнорирует этот ключ. В /config нет строки для этого ключа, поэтому задайте его в файле настроек. Требуется Claude Code v2.1.257 или новее.
- Область действия:
Any file - Тип: строка, имя часового пояса IANA. Если Claude Code не распознаёт имя, он использует системный часовой пояс
- По умолчанию: не задано, поэтому время показывается в системном часовом поясе
{
"timeZone": "Europe/Dublin"
}
tui
Выбор рендерера пользовательского интерфейса терминала. Используйте "fullscreen" для рендерера альтернативного экрана без мерцания с виртуализированной прокруткой или "default" для классического рендерера основного экрана. Выполнение /tui fullscreen или /tui default записывает этот ключ за вас.
- Область действия:
Any file - Тип: строка, одно из значений:
"default": классический рендерер основного экрана"fullscreen": рендерер альтернативного экрана без мерцания с виртуализированной прокруткой
- По умолчанию: не задано, поэтому Claude Code выбирает рендерер за вас
- Переопределения для отдельной сессии:
CLAUDE_CODE_NO_FLICKERиCLAUDE_CODE_DISABLE_ALTERNATE_SCREENимеют приоритет над этим ключом в рамках одной сессии:CLAUDE_CODE_NO_FLICKER=1включает полноэкранный режим, аCLAUDE_CODE_NO_FLICKER=0илиCLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1отключает его; если заданы обе переменные, Claude Code отключает его
{
"tui": "fullscreen"
}
В tmux -CC или при подключении по SSH к Windows Claude Code сохраняет классический рендерер, если вы не установите CLAUDE_CODE_NO_FLICKER=1. Фоновые сессии, открытые из представления агентов, всегда используют полноэкранный рендерер независимо от этой настройки.
verbose
По умолчанию транскрипт сворачивает каждый вызов инструмента в краткую сводку, например команду, которую выполнил Claude, и количество строк её вывода, а чтобы увидеть подробности, вы нажимаете Ctrl+O и переключаете весь транскрипт в развёрнутый вид. Установите этот ключ в true, чтобы показывать полные входные и выходные данные каждого вызова инструмента прямо по ходу выполнения, что полезно при отладке хука, MCP-сервера или длинной shell-команды. Отображается в /config как Verbose output.
- Область действия:
Any file. Значение в~/.claude.jsonиз более старой версии применяется, если ни один файл настроек не задаёт этот ключ. - Тип: Boolean
true: вы видите полный вывод инструментовfalse: вы видите сокращённые сводки вывода инструментов
- По умолчанию:
false - Переопределения для отдельной сессии:
--verboseимеет приоритет над этим ключом в рамках одной сессии
{
"verbose": true
}
Значение viewMode или сохранённый выбор /focus переопределяет этот ключ в каждой сессии.
viewMode
Задаёт вид транскрипта, в котором запускается Claude Code: "default", "verbose" или "focus". Если значение задано, оно переопределяет как сохранённый выбор /focus, так и настройку verbose.
- Область действия:
Any file - Тип: строка, одно из значений:
"default": обычный транскрипт с сокращённым выводом инструментов"verbose": транскрипт с полным выводом инструментов"focus": только ваш последний промпт, однострочная сводка вызовов инструментов со статистикой изменений и итоговый ответ. Для режима фокуса нужен полноэкранный рендерер
- По умолчанию: не задано, поэтому применяются настройка
verboseи ваш последний выбор/focus - Переопределения для отдельной сессии:
--verboseимеет приоритет над этим ключом в рамках одной сессии
{
"viewMode": "focus"
}
vimInsertModeRemaps
Сопоставляет двухклавишные последовательности режима INSERT с клавишей Escape в режиме редактора vim. Каждый ключ — это ровно два печатаемых символа, набираемых последовательно, и "<Esc>" — единственная поддерживаемая цель; Claude Code игнорирует другие записи.
- Область действия:
User or managed. Репозиторий не может переназначать ваши нажатия клавиш. - Тип: объект, сопоставляющий двухсимвольную последовательность с
"<Esc>" - По умолчанию: не задано
{
"vimInsertModeRemaps": {
"jj": "<Esc>"
}
}
Не действует, если editorMode не равен "vim". См. Переназначение последовательностей клавиш в режиме INSERT.
voice
Включает голосовой ввод и определяет поведение клавиши диктовки. Claude Code записывает этот объект за вас, когда вы выполняете /voice.
- Область действия:
Any file - Тип: объект с полем
enabledтипа Boolean,autoSubmitтипа Boolean, которое применяется только в режиме удержания, иmode, одно из значений:"hold": вы удерживаете клавишу диктовки во время речи и отпускаете её, чтобы остановить"tap": вы нажимаете клавишу один раз, чтобы начать запись, и ещё раз, чтобы отправить
- По умолчанию: не задано, поэтому диктовка отключена; если
enabledравноtrue, аmodeне задан, Claude Code использует"hold"
Этот пример включает диктовку и настраивает клавишу так, чтобы одно нажатие начинало запись, а повторное — отправляло:
{
"voice": {
"enabled": true,
"mode": "tap"
}
}
autoSubmit отправляет промпт, когда вы отпускаете клавишу в режиме удержания. Для голосового ввода требуется учётная запись claude.ai.
voiceEnabled
[!WARNING]
Объявлен устаревшим начиная с v2.1.92, когда его заменил объект
voice. Claude Code по-прежнему считывает его, чтобы старые файлы настроек продолжали работать, но в новых конфигурациях следует задаватьvoice.enabled.
Включает голосовой ввод с помощью единственного значения Boolean — формы, существовавшей до объекта voice. Если заданы оба, применяется voice.enabled.
- Область действия:
Any file - Тип: Boolean
true: голосовой ввод включён, если вы вошли с учётной записью claude.ai и политика вашей организации разрешает голосовой ввод, если только не заданоvoice.enabledfalse: голосовой ввод отключён, если только не заданоvoice.enabled
- По умолчанию: не задано
{
"voiceEnabled": true
}
wheelScrollAccelerationEnabled
Ускорять прокрутку колёсиком мыши при быстрой прокрутке в полноэкранном режиме отображения. Установите false для постоянной скорости прокрутки на каждый щелчок колёсика.
- Область действия:
Any file - Тип: Boolean
true: Claude Code ускоряет прокрутку колёсиком мыши при быстрой прокруткеfalse: Claude Code прокручивает с постоянной скоростью на каждый щелчок колёсика
- По умолчанию:
true
{
"wheelScrollAccelerationEnabled": false
}
Git и атрибуция
Управляйте атрибуцией, которую Claude Code добавляет к коммитам и pull request'ам, и тем, как она работает с git.
attribution
Настройте атрибуцию, которую Claude Code добавляет к git коммитам и pull request'ам. По умолчанию коммиты получают git trailer такой как Co-Authored-By; описания pull request'ов получают простой текст. Установите каждую часть отдельно с помощью подключей ниже.
- Область действия:
Any file - Тип: объект со строками
commitиprи логическим значениемsessionUrl, илиfalseдля скрытия всей атрибуции. Значениеfalseтребует Claude Code v2.1.281 или позже; более ранние версии его отклоняют и пропускают весь файл пользователя, проекта или локальных параметров, который его содержит - По умолчанию: не установлено, поэтому Claude Code использует стандартную атрибуцию, показанную под каждым подключом
Чтобы скрыть всю атрибуцию, установите attribution в false. В файле параметров, который также читают более ранние версии, установите commit и pr в пустые строки и sessionUrl в false вместо этого.
Этот пример заменяет атрибуцию коммита, удаляет атрибуцию pull request'а и убирает ссылку на сеанс:
{
"attribution": {
"commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>",
"pr": "",
"sessionUrl": false
}
}
После того как вы установите commit или pr, Claude Code игнорирует устаревший параметр includeCoAuthoredBy и использует текст по умолчанию для того из двух, который вы оставили без установки.
Claude Code сообщает Claude, что ваши собственные инструкции об атрибуции, такие как CLAUDE.md или правило memory, имеют приоритет над этими строками коммита и PR, если только строка не установлена в управляемых параметрах.
includeCoAuthoredBy
[!WARNING]
Устарело с версии v2.0.62, когда
attributionего заменила. Claude Code по-прежнему его читает, но новые конфигурации должны устанавливатьattribution.
Используйте attribution вместо этого, который заменяет этот ключ и позволяет вам изменять или скрывать trailer коммита, текст pull request'а и ссылку на сеанс отдельно. Claude Code по-прежнему соблюдает includeCoAuthoredBy: false из файлов параметров, которые предшествуют attribution, но игнорирует его после того как вы установите attribution.commit или attribution.pr.
- Область действия:
Any file - Тип: логическое значение
true: то же самое, что и не установлено; Claude Code добавляет trailer коммита и текст атрибуции pull request'аfalse: Claude Code опускает как trailer коммита, так и текст атрибуции pull request'а, если толькоattributionне устанавливаетcommitилиpr, в этом случае применяются правилаattribution
- По умолчанию:
true
{
"includeCoAuthoredBy": false
}
Чтобы скрыть всю атрибуцию, см. attribution.
includeGitInstructions
Claude Code предоставляет Claude две связанные с git части контекста: встроенные инструкции по написанию коммитов и pull request'ов в описании инструмента Bash и снимок состояния git вашего репозитория. Снимок содержит текущую ветку, основную ветку, вывод git status и недавние коммиты. Claude Code читает его при запуске разговора.
Установите этот ключ в false, чтобы исключить оба, например когда вы используете свои собственные skills рабочего процесса git.
- Область действия:
Any file - Тип: логическое значение
true: Claude Code включает встроенные инструкции рабочего процесса коммита и pull request'а и снимок состояния git. Облачные сеансы никогда не включают снимокfalse: Claude Code исключает оба
- По умолчанию:
true - Переопределения для каждого сеанса:
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONSимеет приоритет над этим ключом для одного сеанса
{
"includeGitInstructions": false
}
Если вы заменяете системный промпт в неинтерактивном режиме или в Agent SDK, сессия запускается без снимка, даже если этот ключ имеет значение true:
- Запуски с
-p: вы заменяете промпт, когда передаёте--system-promptили--system-prompt-file. Вы также заменяете его, когда запускаете пользовательского агента с собственным промптом, выбранного с помощью--agentили настройкиagent. Вне режима bare, чтобы сохранить снимок, запускайте без пользовательского агента и добавляйте свои инструкции с помощью--append-system-promptвместо замены промпта. - Agent SDK: вы заменяете промпт пользовательским системным промптом или пользовательским агентом основного потока. Если вы не задаёте системный промпт, SDK использует свой минимальный промпт по умолчанию, и сессия также запускается без снимка. Вне режима bare, чтобы сохранить снимок, используйте пресет
claude_codeбез пользовательскогоagent.
prUrlTemplate
Направьте ссылки PR, которые Claude Code отображает, в значке нижнего колонтитула и в сводках результатов инструментов, на внутренний инструмент проверки кода вместо github.com. Claude Code подставляет {host}, {owner}, {repo}, {number} и {url} из URL PR. Ссылки на GitLab merge request на обеих поверхностях сохраняют свой URL GitLab.
- Область действия:
Any file - Тип: строка, шаблон URL с использованием любого из пяти заполнителей
- По умолчанию: не установлено
{
"prUrlTemplate": "https://reviews.example.com/{owner}/{repo}/pull/{number}"
}
Claude Code применяет шаблон только к ссылкам, которые он отображает сам; номер PR, который Claude пишет в сообщении, такой как #123, остается таким, как его написал Claude. URL, который не имеет формы /pull/<number>, остается без изменений.
attribution.commit
Установите текст атрибуции, который Claude Code добавляет к git коммитам, включая любые trailers. Установите его в пустую строку, чтобы скрыть атрибуцию коммита.
- Область действия:
Any file - Тип: строка
- По умолчанию: не установлено, поэтому Claude Code добавляет
Co-Authored-By: <name> <noreply@anthropic.com>. Имя — это модель в использовании при создании коммита, такая какClaude Sonnet 5. Когда subagent создает коммит, trailer указывает модель subagent'а.- Когда Claude Code распознает модель как модель Claude, но не может подтвердить её точную версию, он пишет только
Claude. - Когда он не может сопоставить ID модели с какой-либо моделью Claude, такой как модель третьей стороны, обслуживаемая через пользовательский
ANTHROPIC_BASE_URL, он пишетClaude Code.
- Когда Claude Code распознает модель как модель Claude, но не может подтвердить её точную версию, он пишет только
Этот пример заменяет trailer по умолчанию пользовательской строкой и пользовательским trailer'ом Co-Authored-By:
{
"attribution": {
"commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>"
}
}
attribution.pr
Установите текст атрибуции, который Claude Code добавляет к описаниям pull request'ов. Установите его в пустую строку, чтобы скрыть атрибуцию pull request'а.
- Область действия:
Any file - Тип: строка
- По умолчанию: не установлено, поэтому Claude Code добавляет
🤖 Generated with [Claude Code](https://claude.com/claude-code)
{
"attribution": {
"pr": ""
}
}
attribution.sessionUrl
Выберите, добавляет ли Claude Code ссылку на сеанс claude.ai при коммите или открытии pull request'а из облачного или Remote Control сеанса. Claude Code добавляет ссылку как trailer Claude-Session на коммитах и как ссылку в описаниях pull request'ов. Установите его в false, чтобы опустить ссылку.
- Область действия:
Any file - Тип: логическое значение
true: Claude Code добавляет ссылку на сеанс claude.ai при коммите или открытии pull request'а из облачного или Remote Control сеансаfalse: Claude Code опускает ссылку
- По умолчанию:
true
{
"attribution": {
"sessionUrl": false
}
}
Хуки и автоматизация
Регистрируйте хуки, ограничивайте, какие хуки запускаются, и управляйте рабочими процессами. События хуков и их данные описаны в справочнике хуков.
allowedHttpHookUrls
Ограничьте, какие URL-адреса могут быть целью HTTP-хуков. Когда вы определяете этот ключ, Claude Code запускает HTTP-хук, только если его URL соответствует одному из шаблонов, а остальные блокирует без запуска; пустой массив блокирует каждый HTTP-хук.
- Область действия:
Any file. Массивы объединяются между файлами настроек. - Тип: массив шаблонов URL-адресов с
*в качестве подстановочного символа - По умолчанию: не установлено, поэтому разрешены любые URL-адреса
Этот пример разрешает любой URL-адрес под https://hooks.example.com/ и любой URL-адрес http://localhost:
{
"allowedHttpHookUrls": ["https://hooks.example.com/*", "http://localhost:*"]
}
Сопоставление имён хостов не зависит от регистра и рассматривает hooks.example.com. с конечной точкой, которая обозначает полное доменное имя, так же, как hooks.example.com, что соответствует тому, как это делает DNS. Список разрешённых URL-адресов применяется к хукам из каждого источника, включая управляемые настройки.
В параметре managedSettings Agent SDK Claude Code игнорирует список, содержащий записи, поэтому вместо этого передавайте его в параметре settings SDK. См. что делает пустой список в родительских настройках.
allowManagedHooksOnly
Ограничьте выполнение хуков только хуками, которые развёртывает ваша организация.
- Область действия:
Managed - Тип: Boolean
true: запускаются только управляемые хуки, а также хуки Agent SDK и хуки из плагинов, которые ваши управляемые настройки принудительно включают. См. Что запускается приallowManagedHooksOnlyfalse: запускаются хуки из всех областей действия настроек и всех плагинов
- По умолчанию: не установлено, поэтому запускаются хуки из всех областей действия настроек и всех плагинов
{
"allowManagedHooksOnly": true
}
Что запускается при allowManagedHooksOnly
Когда вы устанавливаете это значение в true, Claude Code изменяет, какие хуки и похожие на хуки команды загружаются:
- Запускаются управляемые хуки и хуки SDK: хуки из управляемых настроек и хуки, которые Agent SDK регистрирует в процессе
- Запускаются хуки принудительно включённых плагинов: хуки из плагинов, которые ваши управляемые настройки принудительно включают через
enabledPlugins. Claude Code сопоставляет полный IDplugin@marketplace, поэтому плагин с тем же именем из другого маркетплейса остаётся заблокированным. Это позволяет вам распространять проверенные хуки через маркетплейс организации, блокируя всё остальное. Mod в таком плагине загружается, только если он считается модом вашей организации - Мониторы из других плагинов блокируются: мониторы плагина не запускаются, если плагин не включён принудительно. Требуется Claude Code v2.1.310 или новее
- Всё остальное блокируется: пользовательские, проектные и локальные хуки, хуки и mods из других установленных плагинов, а также хуки, объявленные во frontmatter агента. Mods, встроенные в Claude Code, продолжают работать. Чтобы блокировать только mods пользователей, установите вместо этого
allowManagedModsOnly. - Плагины с источником-командой отключаются: Claude Code также отключает плагины с источником
command, включая плагины, принудительно включённые в управляемыхenabledPlugins, если вы явно не установитеdisableCommandPluginSourcesвfalse - Команды
headersHelperмаркетплейсов блокируются: Claude Code также блокирует командыheadersHelperмаркетплейсов, еслиdisableCommandPluginSourcesявно не установлен вfalse, за исключением маркетплейса, который объявлен в самих управляемых настройках. Требуется Claude Code v2.1.238 или новее - Строка состояния и предложение файлов ограничиваются управляемыми настройками: Claude Code читает
statusLine,fileSuggestionиsubagentStatusLineтолько из управляемых настроек, следуя правилам для строки состояния и предложения файлов
Команда /goal не может запуститься, пока этот ключ установлен, потому что она зависит от хуков.
disableAllHooks
Отключите хуки, любую пользовательскую строку состояния и любую пользовательскую команду предложения файлов. Используйте это, чтобы временно отключить всё это, не удаляя из ваших настроек.
- Область действия:
Any file. Только управляемые настройки могут отключать управляемые хуки. - Тип: Boolean
true: Claude Code отключает хуки, любую пользовательскую строку состояния и любую пользовательскую команду предложения файловfalse: хуки, строка состояния и команда предложения файлов запускаются
- По умолчанию: не установлено, поэтому хуки запускаются
{
"disableAllHooks": true
}
Охват зависит от того, в каком файле находится ключ:
- В управляемых настройках: Claude Code отключает каждый настроенный хук, включая управляемые, и продолжает запускать хуки, которые Agent SDK регистрирует в процессе
- В параметре
managedSettingsAgent SDK: на компьютере, где администратор развёртывает управляемые настройки, Claude Code игнорирует этот ключ, если только администратор не разрешит встраивающему хосту добавлять политику. Там, где ключ действует, останавливаются пользовательские, проектные, локальные хуки и хуки плагинов, а также все хуки в параметреsettingsSDK. Управляемые хуки администратора, хуки принудительно включённых плагинов и ваши функции обратного вызова хуков SDK продолжают запускаться. Требуется Claude Code v2.1.309 или новее. - В любом другом файле настроек: Claude Code отключает пользовательские, проектные, локальные хуки и хуки плагинов; управляемые хуки, хуки Agent SDK и хуки из плагинов, принудительно включённых в управляемых
enabledPlugins, продолжают запускаться
Ключ также останавливает mods — плагины, код которых регистрирует хуки:
- В управляемых настройках: останавливаются mods во всех установленных плагинах, включая mods вашей организации
- В любом другом файле настроек: останавливаются установленные вами mods, а mods вашей организации продолжают работать
Mods, встроенные в Claude Code, продолжают работать в обоих случаях. У каждого из них есть собственный переключатель.
Чтобы хуки Agent SDK продолжали запускаться, когда этот ключ задан в управляемых настройках, требуется Claude Code v2.1.242 или новее.
Команда /goal не может запуститься, пока хуки отключены, а меню /hooks показывает уведомление вместо ваших хуков.
Правила для строки состояния и предложения файлов
Claude Code принимает два решения для statusLine, fileSuggestion и subagentStatusLine в следующем порядке:
- Полностью отключено: когда управляемые настройки устанавливают
disableAllHooksили когда папка не является доверенной согласно тому же правилу доверия рабочему пространству, что и для хуков в файлах настроек - Ограничено управляемыми настройками: когда установлен
allowManagedHooksOnly, когдаdisableAllHooksимеет значениеtrueвне управляемых настроек после применения приоритета настроек или когда вы запускаете Claude Code с--safe-mode
При ограничении Claude Code использует управляемое значение, если оно развёрнуто. В противном случае он без предупреждения пропускает ваше значение: строка состояния отключается, а автодополнение @ возвращается к встроенному предложению файлов.
disableWorkflows
Отключите динамические рабочие процессы и встроенные команды рабочих процессов для всех, на кого распространяются ваши настройки, например для организации через управляемые настройки. Чтобы включить или отключить рабочие процессы только для себя, используйте вместо этого enableWorkflows, который переключатель Dynamic workflows в /config записывает в ваши пользовательские настройки.
- Область действия:
Any file - Тип: Boolean
true: Claude Code отключает динамические рабочие процессы и встроенные команды рабочих процессов для всех, на кого распространяются ваши настройкиfalse: то же, что и отсутствие значения; включены ли рабочие процессы, тогда определяетсяenableWorkflowsи значением по умолчанию вашего плана
- По умолчанию:
false - Переопределения для отдельной сессии:
CLAUDE_CODE_DISABLE_WORKFLOWSотключает рабочие процессы на одну сессию; какой бы из двух механизмов их ни отключил, другой не может включить их обратно
{
"disableWorkflows": true
}
enableWorkflows
Включите или отключите динамические рабочие процессы для себя, когда значение по умолчанию вашего плана вам не подходит. Отображается в /config как Dynamic workflows; этот переключатель записывает ключ в ваши пользовательские настройки и снова удаляет его, когда вы возвращаетесь к значению по умолчанию вашего плана. Чтобы отключить рабочие процессы для всех через управляемые настройки, используйте вместо этого disableWorkflows.
- Область действия:
Any file - Тип: Boolean
true: Claude Code включает для вас динамические рабочие процессыfalse: Claude Code отключает для вас динамические рабочие процессы
- По умолчанию: не установлено, поэтому рабочие процессы включены, если только вы не на плане Pro, где они отключены
- Переопределения для отдельной сессии:
CLAUDE_CODE_DISABLE_WORKFLOWSотключает рабочие процессы на одну сессию, и значениеtrueздесь не может включить их обратно, пока эта переменная установлена
{
"enableWorkflows": true
}
disableWorkflows и политика рабочих процессов вашей организации также имеют приоритет: enableWorkflows: true не может включить рабочие процессы обратно, пока какой-либо источник их отключает. Claude Code скрывает строку в /config, пока источник, отличный от ваших пользовательских настроек, устанавливает enableWorkflows или устанавливает disableWorkflows в true.
hooks
Запускайте собственные команды, промпты, агентов, HTTP-запросы или инструменты MCP в качестве хуков в определённых точках жизненного цикла Claude Code, например перед вызовом инструмента или при запуске сессии; в справочнике хуков перечислены все события, их данные и коды выхода. Каждое событие сопоставляется со списком групп matcher, и каждая группа перечисляет обработчики, которые запускаются, когда matcher срабатывает.
- Область действия:
Any file. Хуки из разных файлов объединяются, а не заменяют друг друга, и хуки из управляемых настроек нельзя удалить из других файлов. - Тип: объект, ключами которого являются события хуков; каждое значение — массив групп
{ "matcher", "hooks" }, записиhooksкоторых имеютtypeсо значением"command","prompt","agent","http"или"mcp_tool" - По умолчанию: не установлено, поэтому хуки не запускаются
Этот пример запускает скрипт перед каждым вызовом инструмента Bash:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{ "type": "command", "command": "~/.claude/hooks/check-bash.sh" }
]
}
]
}
}
Описание всех событий, шаблонов matcher и полей обработчиков см. в справочнике хуков. Чтобы отключить хуки, см. disableAllHooks; чтобы ограничить хуки только теми, которые развёртывает ваша организация, см. allowManagedHooksOnly.
httpHookAllowedEnvVars
HTTP-хук может подставить значение переменной окружения в заголовок запроса, например в заголовок Authorization: Bearer $HOOK_TOKEN, но только для переменных, которые хук перечисляет в собственном allowedEnvVars. Этот ключ задаёт внешнее ограничение этого списка для каждого HTTP-хука: хук может использовать переменную, только если её называют и его собственный allowedEnvVars, и этот ключ. Используйте его, чтобы не дать хуку прочитать секрет, к которому у него не должно быть доступа, даже если определение хука его запрашивает.
- Область действия:
Any file. Массивы объединяются между файлами настроек. - Тип: массив имён переменных окружения
- По умолчанию: не установлено, поэтому применяется собственный список
allowedEnvVarsкаждого хука
Этот пример ограничивает подстановку в заголовки переменными MY_TOKEN и HOOK_SECRET:
{
"httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]
}
Список разрешённых переменных применяется к хукам из каждого источника, включая управляемые настройки.
В параметре managedSettings Agent SDK Claude Code игнорирует список, содержащий записи, поэтому вместо этого передавайте его в параметре settings SDK. См. что делает пустой список в родительских настройках.
workflowKeywordTriggerEnabled
Выберите, запускает ли ввод ключевого слова ultracode в промпте динамический рабочий процесс. Установите false, чтобы вводить это слово, не запуская рабочий процесс.
- Область действия:
Any file. Отображается в/configкак Ultracode keyword trigger. - Тип: Boolean
true: вводultracodeв промпте запускает динамический рабочий процессfalse: вы можете вводить это слово, не запуская рабочий процесс
- По умолчанию:
true
{
"workflowKeywordTriggerEnabled": false
}
Настройка усилия ultracode, /workflows и сохранённые команды рабочих процессов не затрагиваются.
workflowSizeGuideline
Задайте количество агентов, к которому стремится Claude в создаваемых им динамических рабочих процессах. Claude Code передаёт значение Claude как рекомендацию, а не как жёсткий предел: "small" запрашивает менее 5 агентов, "medium" — менее 10, а "large" — менее 50. Выберите "small", если хотите ограничить расходы рабочего процесса.
- Область действия:
Any file. Значение из файла настроек имеет приоритет над выбором Dynamic workflow size в/config, который Claude Code хранит в~/.claude.json, и Claude Code скрывает эту строку, пока ключ задан в файле настроек. - Тип: строка, одно из значений:
"unrestricted": рекомендации нет, поэтому Claude подбирает размер рабочего процесса под задачу"small": Claude стремится использовать менее 5 агентов"medium": Claude стремится использовать менее 10 агентов"large": Claude стремится использовать менее 50 агентов
- По умолчанию:
"medium"или"small", если вы вошли с планом Pro и используете Claude Code v2.1.271 или новее
{
"workflowSizeGuideline": "small"
}
Plugins and skills
Включайте плагины, регистрируйте маркетплейсы, ограничивайте источники плагинов, которые разрешены в вашей организации, и контролируйте, какие skills загружаются. Для установки и создания плагинов см. Plugins.
disableBundledSkills
Отключите skills и рабочие процессы, включённые в Claude Code. Claude Code полностью удаляет встроенные skills и рабочие процессы, в то время как встроенные команды, такие как /init, остаются доступными для ввода, но скрыты от модели.
- Scope:
Any file - Type: Boolean
true: Claude Code удаляет встроенные skills и рабочие процессы и скрывает встроенные команды, такие как/init, от моделиfalse: встроенные skills загружаются
- Default: не установлено, поэтому встроенные skills загружаются
- Per-session overrides:
CLAUDE_CODE_DISABLE_BUNDLED_SKILLSустановлено на1отключает встроенные skills на одну сессию; какой бы из двух способов их ни отключил, другой не сможет их включить обратно
{
"disableBundledSkills": true
}
Skills из плагинов, .claude/skills/ и .claude/commands/ не затрагиваются. /doctor остаётся доступным для ввода, как встроенные команды; чтобы скрыть его, установите DISABLE_DOCTOR_COMMAND вместо этого.
disableSkillShellExecution
Отключите встроенное выполнение shell для !`...` и ```! блоков в skills и пользовательских команд из источников пользователя, проекта, плагина или дополнительного каталога. Claude Code заменяет каждую команду на [shell command execution disabled by policy] вместо её выполнения.
- Scope:
Any file.trueв управляемых параметрах не может быть переопределён наfalseв другом месте. - Type: Boolean
true: Claude Code заменяет каждую встроенную shell команду на[shell command execution disabled by policy]вместо её выполненияfalse: встроенный shell выполняется
- Default: не установлено, поэтому встроенный shell выполняется
{
"disableSkillShellExecution": true
}
Встроенные skills и skills, развёрнутые через управляемые параметры, не затрагиваются.
skillOverrides
Скройте или свёрните skill без редактирования его SKILL.md. Claude Code применяет значение под именем каждого skill к списку skills, который видит Claude, и к вашему автодополнению /.
- Scope:
Any file. Меню/skillsзаписывает в.claude/settings.local.json. - Type: объект, отображающий имя skill на одно из:
"on": Claude видит skill и вы можете ввести/name"name-only": Claude видит skill по имени без его описания"user-invocable-only": Claude не видит skill, но вы всё ещё можете ввести/name"off": Claude не видит skill и/nameскрыт из автодополнения
- Default: не установлено, поэтому каждый skill имеет значение
"on"
Этот пример перечисляет legacy-context для Claude только по имени и скрывает deploy от Claude и из автодополнения /:
{
"skillOverrides": {
"legacy-context": "name-only",
"deploy": "off"
}
}
Переопределения не применяются к skills плагинов, которыми вы управляете через /plugin.
В управляемых параметрах и файлах, переданных с --settings, ключ на псевдониме встроенного skill, такой как checkup для /doctor, также применяется к skill; см. как ключи псевдонимов объединяются с ключами на собственном имени skill.
syncClaudeAiSkills
Отключите загрузку skills, включённых для вашей учётной записи claude.ai. Claude Code загружает их в ~/.claude/skills/synced/ в сеансах терминала, где вы входите с вашей учётной записью claude.ai, интерактивных или неинтерактивных, а также в сеансах Cowork и облачных сеансах. Установите false, чтобы остановить эту загрузку и остановить загрузку skills, которые она уже синхронизировала. Claude Code учитывает только false: true то же самое, что и не установлено, и не включает синхронизацию там, где она иначе отключена.
- Scope:
User, local, or managed, и файлы, переданные с--settings. Репозиторий не может отключить её для вас. - Type: Boolean
false: Claude Code прекращает загрузку синхронизированных skills и прекращает загрузку тех, которые уже находятся в~/.claude/skills/synced/. В пользовательских или управляемых параметрах он также перемещает их в~/.claude/skills/.trash/true: то же самое, что и не установлено
- Default: не установлено, поэтому сеансы, в которых вы входите с вашей учётной записью claude.ai, синхронизируют ваши skills
Этот пример предотвращает загрузку skills учётной записи машиной в любом сеансе:
{
"syncClaudeAiSkills": false
}
syncClaudeAiPlugins
Отключите загрузку плагинов, включённых для вашей учётной записи claude.ai. Claude Code загружает их в ~/.claude/plugins/synced/ в начале сеансов терминала, где вы входите с вашей учётной записью claude.ai, и в сеансах Cowork, и загружает каждый как <name>@synced. Установите false, чтобы остановить эту загрузку и остановить загрузку плагинов, которые она уже синхронизировала. Claude Code учитывает только false: true то же самое, что и не установлено, и не включает синхронизацию там, где она иначе отключена. Требуется Claude Code v2.1.273 или позже.
- Scope:
User, local, or managed, и файлы, переданные с--settings. Репозиторий не может отключить её для вас. - Type: Boolean
false: Claude Code прекращает загрузку синхронизированных плагинов и прекращает загрузку тех, которые уже находятся в~/.claude/plugins/synced/. В пользовательских или управляемых параметрах он также перемещает их в~/.claude/plugins/.trash/true: то же самое, что и не установлено
- Default: не установлено, поэтому сеансы, в которых вы входите с вашей учётной записью claude.ai, синхронизируют ваши плагины
Чтобы отключить один синхронизированный плагин вместо всех, установите "<name>@synced": false в enabledPlugins.
Этот пример предотвращает загрузку плагинов учётной записи машиной в любом сеансе:
{
"syncClaudeAiPlugins": false
}
allowedChannelPlugins
Выберите, какие channel плагины могут отправлять сообщения в сеансы в вашей организации. Когда вы это установите, Claude Code использует ваш список вместо списка разрешений Anthropic по умолчанию; каждая запись называет плагин и маркетплейс, из которого он поступает.
- Scope:
Managed - Type: массив объектов, каждый с строками
marketplaceиplugin. Запись может быть вместо этого строкой"plugin@marketplace", такой как"telegram@claude-plugins-official", которую Claude Code рассматривает как эквивалентный объект. Форма строки требует Claude Code v2.1.267 или позже; более ранние версии отклоняют всё значениеallowedChannelPlugins, когда оно содержит одну - Default: не установлено, поэтому Claude Code использует список разрешений Anthropic по умолчанию
Этот пример включает channels и разрешает только плагин Telegram из официального маркетплейса Anthropic:
{
"channelsEnabled": true,
"allowedChannelPlugins": [
{ "marketplace": "claude-plugins-official", "plugin": "telegram" }
]
}
Пустой массив блокирует каждый channel плагин.
Этот ключ вступает в силу после того, как channels пройдут ворота channelsEnabled для учётной записи: на планах Team и Enterprise, а также на учётных записях Console с управляемыми параметрами, это означает channelsEnabled: true. См. Ограничьте, какие channel плагины могут работать.
blockedMarketplaces
Заблокируйте источники маркетплейсов плагинов для вашей организации. Claude Code проверяет список блокировки при добавлении маркетплейса и при установке, обновлении, обновлении и автоматическом обновлении плагина, поэтому маркетплейс, который кто-то добавил до того, как вы установили политику, не может быть использован для получения плагинов. Заблокированные источники проверяются перед загрузкой, поэтому они никогда не касаются файловой системы.
Если вы установите этот ключ в консоли администратора claude.ai, claude.ai также применит его, когда кто-либо в вашей организации добавит маркетплейс из репозитория git на claude.ai, как описано в Как работают ограничения.
- Scope:
Managed - Type: массив объектов источника маркетплейса в тех же формах, что и
strictKnownMarketplaces - Default: не установлено, поэтому ни один маркетплейс не заблокирован
Этот пример блокирует один репозиторий GitHub как источник маркетплейса:
{
"blockedMarketplaces": [
{ "source": "github", "repo": "untrusted/plugins" }
]
}
Запись github может использовать форму с подстановочным знаком владельца "owner/*" для блокировки каждого репозитория под этим владельцем GitHub, что требует Claude Code v2.1.223 или позже. Добавьте { "source": "skills-dir" }, чтобы остановить загрузку Claude Code @skills-dir плагинов как из ~/.claude/skills/, так и из .claude/skills/ проекта без ограничения какого-либо маркетплейса. См. Управляемые ограничения маркетплейса.
channelsEnabled
Разрешите channels для вашей организации. На планах claude.ai Team и Enterprise Claude Code блокирует channels до тех пор, пока вы не установите это на true. Для учётных записей Anthropic Console, которые аутентифицируются с помощью ключа API, channels разрешены по умолчанию. Если ваша организация развёртывает управляемые параметры, Claude Code блокирует channels на этих учётных записях до тех пор, пока вы не установите этот ключ на true.
- Scope:
Managed - Type: Boolean
true: Claude Code разрешает channels для вашей организацииfalse: то же самое, что и не установлено; блокируются ли channels, зависит от вашего плана, как указано в Default
- Default: не установлено; channels блокируются на планах Team и Enterprise и на учётных записях Console с управляемыми параметрами, и разрешены на планах Pro и Max и на учётных записях Console без управляемых параметров
{
"channelsEnabled": true
}
Чтобы ограничить, какие плагины могут регистрироваться как channels после их включения, установите allowedChannelPlugins. См. Элементы управления Enterprise.
disableCommandPluginSources
Заблокируйте источник плагина command, который устанавливает плагин, запуская объявленную маркетплейсом команду на машине пользователя. Когда вы установите это на true, Claude Code никогда не запускает команду, не устанавливает и не обновляет плагины, полученные из command, и прекращает загрузку уже установленных. Установите на false, чтобы явно разрешить их. Всякий раз, когда он блокирует command источники, независимо от того, установили ли вы это на true или оставили не установленным под allowManagedHooksOnly, он также блокирует маркетплейс headersHelper команды, за исключением маркетплейса, который сами управляемые параметры объявляют. Требуется Claude Code v2.1.229 или позже, и блокировка headersHelper требует v2.1.238 или позже.
- Scope:
Managed - Type: Boolean
true: Claude Code никогда не запускает объявленную маркетплейсом команду, не устанавливает и не обновляет плагины, полученные из command, и прекращает загрузку уже установленныхfalse: Claude Code явно разрешает плагины, полученные из command
- Default: не установлено, поэтому Claude Code следует
allowManagedHooksOnly: у организации, которая ограничивает выполнение хуков только управляемыми настройками, источники command тоже отключены. Приложение, которое передаётdisableAllHooks: trueв параметреmanagedSettingsAgent SDK, само по себе не отключает источники command.
{
"disableCommandPluginSources": true
}
Требуется Claude Code v2.1.229 или позже.
pluginSuggestionMarketplaces
Назовите маркетплейсы, чьи плагины могут появляться как контекстные предложения по установке, в советах спиннера и закреплённые в верхней части вкладки /plugin Discover. Встроенное предложение первой стороны по дизайну фронтенда не затрагивается. Предложения поступают из объявления relevance каждого плагина в его записи маркетплейса.
- Scope:
Managed - Type: массив имён маркетплейсов
- Default: не установлено, поэтому никакие объявленные маркетплейсом предложения не появляются
{
"pluginSuggestionMarketplaces": ["acme-corp-plugins"]
}
Имя вступает в силу только когда маркетплейс зарегистрирован на машине и его зарегистрированный источник также объявлен в тех же управляемых параметрах, либо как запись extraKnownMarketplaces для этого имени, либо как запись strictKnownMarketplaces. Claude Code игнорирует маркетплейс, зарегистрированный из другого источника под разрешённым именем. Официальный маркетплейс освобождён от требования источника: разрешение только его имени достаточно, так как это имя может регистрироваться только из официального источника Anthropic. См. Предложите плагины по контексту.
pluginTrustMessage
Добавьте собственный текст вашей организации к предупреждению о доверии плагину, которое Claude Code показывает перед установкой, например, чтобы подтвердить, что плагины из вашего внутреннего маркетплейса проверены.
- Scope:
Managed - Type: string
- Default: не установлено, поэтому Claude Code показывает только стандартное предупреждение
{
"pluginTrustMessage": "All plugins from our marketplace are approved by IT"
}
strictKnownMarketplaces
Ограничьте, какие источники маркетплейсов плагинов люди в вашей организации могут добавлять и устанавливать плагины из. Claude Code применяет список разрешений при добавлении маркетплейса и при установке, обновлении, обновлении и автоматическом обновлении плагина, перед любой сетевой или файловой операцией, поэтому маркетплейс, который кто-то добавил до того, как вы установили политику, не может быть использован для получения плагинов после того, как его источник больше не совпадает. Заблокированные пользователи видят ошибку, называющую управляемую политику.
Если вы установите этот ключ в консоли администратора claude.ai, claude.ai также применит его, когда кто-либо в вашей организации добавит маркетплейс из репозитория git на claude.ai, как описано в Как работают ограничения.
- Scope:
Managed - Type: массив объектов источника маркетплейса; см. Разрешённые типы источников
- Default: не установлено, поэтому пользователи могут добавлять любой маркетплейс. Пустой массив — это полная блокировка, которая блокирует каждый источник маркетплейса, включая официальный маркетплейс Anthropic
Этот пример разрешает два репозитория GitHub, один закреплённый на ref v2.0, и один размещённый URL маркетплейса marketplace.json:
{
"strictKnownMarketplaces": [
{ "source": "github", "repo": "acme-corp/approved-plugins" },
{ "source": "github", "repo": "acme-corp/security-tools", "ref": "v2.0" },
{ "source": "url", "url": "https://plugins.example.com/marketplace.json" }
]
}
Вы также можете написать этот ключ как allowedMarketplaces; Псевдонимы ключей маркетплейса описывает, как Claude Code рассматривает псевдоним и какая версия его принимает. Этот ключ — это ворота политики: он контролирует, что пользователи могут добавлять, но ничего не регистрирует. Чтобы ограничить и предварительно зарегистрировать в одном файле, см. Объедините с extraKnownMarketplaces. Для представления, обращённого к пользователю, см. Управляемые ограничения маркетплейса.
Allowed source types
Каждая запись ниже показывает одну запись списка разрешений на тип источника и поля, которые она принимает. Большинство типов совпадают точно; hostPattern и pathPattern совпадают по регулярному выражению, и записи github могут использовать подстановочный знак владельца.
| Source | Example entry | Fields |
|---|---|---|
github |
{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" } |
repo обязателен; ref — это ветка или тег; path — это подкаталог |
git |
{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" } |
url обязателен; ref и path как для github |
url |
{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } } |
url обязателен; headers добавляет HTTP заголовки для аутентифицированного доступа |
file |
{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" } |
path обязателен, абсолютный путь к файлу marketplace.json |
directory |
{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" } |
path обязателен, абсолютный путь к каталогу, содержащему .claude-plugin/marketplace.json |
hostPattern |
{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" } |
hostPattern обязателен, регулярное выражение, совпадающее в любом месте хоста маркетплейса; закрепите его с помощью ^ и $, чтобы совпадать со всем хостом |
pathPattern |
{ "source": "pathPattern", "pathPattern": "^/opt/approved/" } |
pathPattern обязателен, регулярное выражение, совпадающее в любом месте path источников file и directory; начните его с ^, чтобы закрепить префикс |
skills-dir |
{ "source": "skills-dir" } |
Нет полей |
Некоторые типы источников имеют правила, выходящие за рамки таблицы:
-
url: маркетплейс URL загружает только файлmarketplace.json, и Claude Code не получает файлы плагинов по относительному пути с этого сервера, поэтому его плагины должны использовать источник плагина, отличный от относительного пути, такой как URL архива, который может быть на том же хосте. Для плагинов с относительными путями используйте маркетплейс на основе Git. См. Плагины с относительными путями не работают в маркетплейсах на основе URL. -
hostPattern: используйте его, чтобы разрешить каждый маркетплейс на внутреннем GitHub Enterprise или GitLab сервере без перечисления каждого репозитория. Claude Code совпадает с источникамиgithubпротивgithub.com, берёт имя хоста из источниковurlи берёт его из источниковgitв зависимости от формы git URL:- URL со схемой, такой как
https://илиssh://: имя хоста в URL. - SSH адрес без схемы, в форме
user@host:pathgit, такой какgit@git.example.com:tools/plugins.git: хост между@и:, который является хостом, к которому подключается git. - Любая другая форма без схемы: нет хоста, поэтому ни одна запись
strictKnownMarketplaceshostPatternне совпадает с ней. ДляblockedMarketplaceshostPattern, Claude Code берёт хост из более широкого набора форм, поэтому запись списка блокировки всё ещё может совпадать с такой формой. До v2.1.234,strictKnownMarketplaceshostPatternтакже совпадала с некоторыми формами, которые git не рассматривает как SSH адреса.
Источники
fileиdirectoryне имеют хоста и никогда не совпадают с записьюhostPattern. - URL со схемой, такой как
-
pathPattern: используйте его, чтобы разрешить маркетплейсы файловой системы наряду с записямиhostPatternдля сетевых источников.".*"разрешает каждый локальный путь; более узкий паттерн, такой как"^/opt/approved/", ограничивает каталогом. -
skills-dir: любой список разрешённых источников, даже пустой, останавливает загрузку Claude Code плагинов@skills-dirкак из~/.claude/skills/, так и из.claude/skills/проекта. Чтобы продолжить их загрузку, добавьте запись{ "source": "skills-dir" }и оставьтеstrictPluginOnlyCustomizationне установленным. Вне этого ключа иblockedMarketplacesэта запись не имеет значения.
Owner wildcards
Запись github, чьё значение repo — это "<owner>/*", совпадает с каждым репозиторием под этим владельцем GitHub. Подстановочные знаки владельца требуют Claude Code v2.1.223 или позже и работают только в strictKnownMarketplaces и blockedMarketplaces. Везде, где источник github появляется, такой как extraKnownMarketplaces или /plugin marketplace add, значение repo должно называть один репозиторий. До v2.1.223, Claude Code сравнивал запись буквально, поэтому запись списка разрешений не совпадала ни с одним репозиторием и запись списка блокировки ничего не блокировала; записи с одним репозиторием применяются на каждой версии.
Эта запись разрешает любой маркетплейс репозитория в организации acme-corp:
{
"strictKnownMarketplaces": [
{ "source": "github", "repo": "acme-corp/*" }
]
}
Только вся позиция имени репозитория может быть подстановочным знаком. Claude Code игнорирует записи, такие как *, */plugins или acme-corp/tools-*, как недействительные, поэтому они не совпадают ни с одним репозиторием.
Правила сопоставления различаются между двумя параметрами:
| Rule | strictKnownMarketplaces |
blockedMarketplaces |
|---|---|---|
| Matching source spellings | Только форма owner/repo. Git URL, который клонирует тот же репозиторий, не совпадает |
Любое написание, включая git URL, которые разрешаются в тот же репозиторий github.com |
| Owner case | С учётом регистра | Без учёта регистра |
ref |
Следует правилам точного сопоставления: запись с ref совпадает только с источниками с этим точным ref, и запись без одного совпадает только с источниками, которые не указывают ref |
Запись без ref блокирует все ref репозиториев, которые она совпадает |
path |
Более свободно, чем правила точного сопоставления: запись с path требует это точное значение, в то время как запись без одного совпадает с любым путём внутри репозитория |
Запись без path блокирует все пути репозиториев, которые она совпадает |
Exact matching
Для каждого типа источника, кроме записей github с подстановочным знаком владельца и записей hostPattern и pathPattern, совпадающих по регулярному выражению, Claude Code разрешает добавление пользователя только когда источник маркетплейса точно совпадает с записью. Для источников на основе git github и git, точное сопоставление включает необязательные поля:
repoилиurlдолжны совпадать точно- Поле
refдолжно совпадать точно, или оба должны быть не определены - Поле
pathдолжно совпадать точно, или оба должны быть не определены
Например, Claude Code рассматривает каждую пару ниже как два разных источника:
{ "source": "github", "repo": "acme-corp/plugins" }и{ "source": "github", "repo": "acme-corp/plugins", "ref": "main" }{ "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" }и{ "source": "github", "repo": "acme-corp/plugins" }
Allow only the official marketplace
Чтобы разрешить только официальный маркетплейс Anthropic, перечислите его репозиторий:
{
"strictKnownMarketplaces": [
{ "source": "github", "repo": "anthropics/claude-plugins-official" }
]
}
С этой записью Claude Code сохраняет уже зарегистрированный официальный маркетплейс доступным и, на свежей машине, регистрирует маркетплейс автоматически при первом запуске интерактивного сеанса терминала. Автоматическая регистрация наиболее часто пропускает:
- Неинтерактивные среды, которые работают до первого интерактивного сеанса терминала машины.
- Машины, где Claude Code работал только через расширение VS Code.
- Машины, где Claude Code уже запустил интерактивный сеанс терминала под политикой, которая блокировала маркетплейс, такой как блокировка пустого массива. Claude Code записывает заблокированную попытку и не повторяет попытку после изменения политики.
На этих машинах добавьте маркетплейс в extraKnownMarketplaces в том же managed-settings.json, чтобы Claude Code зарегистрировал его автоматически, или запустите claude plugin marketplace add anthropics/claude-plugins-official.
Combine with extraKnownMarketplaces
Два ключа выполняют разные работы. Эта таблица их сравнивает:
| Aspect | strictKnownMarketplaces |
extraKnownMarketplaces |
|---|---|---|
| Purpose | Применение организационной политики | Удобство команды |
| Settings file | Только управляемые параметры | Любой файл параметров |
| Behavior | Блокирует добавления, не входящие в список разрешений | Регистрирует отсутствующие маркетплейсы |
| When enforced | Перед сетевыми и файловыми операциями | Сразу из пользовательских или управляемых параметров; после диалога доверия рабочей области для файлов репозитория |
| Can be overridden | Нет, наивысший приоритет | Да, параметрами с более высоким приоритетом |
| Source format | Прямой объект источника | Именованный маркетплейс с вложенным объектом source |
Чтобы ограничить и предварительно зарегистрировать маркетплейс для всех пользователей, установите оба в managed-settings.json:
{
"strictKnownMarketplaces": [
{ "source": "github", "repo": "acme-corp/plugins" }
],
"extraKnownMarketplaces": {
"acme-tools": {
"source": { "source": "github", "repo": "acme-corp/plugins" }
}
}
}
Только с установленным strictKnownMarketplaces, пользователи всё ещё могут добавить разрешённый маркетплейс сами с помощью /plugin marketplace add. Официальный маркетплейс Anthropic — единственный, который Claude Code регистрирует автоматически, и только когда список разрешений его разрешает. Разрешите только официальный маркетплейс перечисляет машины, которые он пропускает.
strictPluginOnlyCustomization
Заблокируйте skills, agents, hooks и MCP серверы из источников пользователя и проекта, чтобы они могли поступать только из плагинов или управляемых параметров. Объедините его с strictKnownMarketplaces, чтобы контролировать полную цепочку поставок настройки: список разрешений маркетплейса контролирует, какие плагины пользователи могут устанавливать.
- Scope:
Managed - Type:
trueдля блокировки всех четырёх видов настройки, или массив, называющий виды для блокировки, из"skills","agents","hooks"и"mcp" - Default: не установлено, поэтому ничего не заблокировано
Этот пример блокирует skills и hooks и оставляет agents и MCP серверы разблокированными:
{
"strictPluginOnlyCustomization": ["skills", "hooks"]
}
Если вы блокируете любой интерфейс, Claude Code также прекращает загрузку плагинов из каталога skills — папок плагинов, которые пользователи хранят в ~/.claude/skills/ или .claude/skills/. Пользователи размещают эти папки сами, а не устанавливают их из маркетплейса, поэтому при этой настройке Claude Code рассматривает их как пользовательские настройки.
Четыре записи подключей ниже перечисляют, что ещё блокирует каждый интерфейс и что по-прежнему загружается. Claude Code игнорирует имена интерфейсов, которые он не распознаёт, вместо того чтобы отклонять файл настроек, поэтому вы можете добавлять новые имена интерфейсов до того, как обновится каждый клиент.
strictPluginOnlyCustomization.skills
Заблокируйте интерфейс skills. Claude Code прекращает загрузку skills из ~/.claude/skills/ и .claude/skills/, пользовательских команд из ~/.claude/commands/ и .claude/commands/, skills и команд в каталогах --add-dir и skills, синхронизированных из вашей учётной записи claude.ai. Он продолжает загружать встроенные skills, skills в каталоге управляемой политики и skills из плагинов, кроме плагинов из каталога skills.
- Scope:
Managed - Type: строка
"skills"в массивеstrictPluginOnlyCustomization - Default: не заблокировано
{
"strictPluginOnlyCustomization": ["skills"]
}
strictPluginOnlyCustomization.agents
Заблокируйте интерфейс agents. Claude Code прекращает загрузку агентов из ~/.claude/agents/, .claude/agents/ и каталогов --add-dir. Он продолжает загружать встроенных агентов, агентов в каталоге управляемой политики и агентов из плагинов, кроме плагинов из каталога skills.
- Scope:
Managed - Type: строка
"agents"в массивеstrictPluginOnlyCustomization - Default: не заблокировано
{
"strictPluginOnlyCustomization": ["agents"]
}
strictPluginOnlyCustomization.hooks
Заблокируйте интерфейс hooks:
- Перестают запускаться:
- Продолжают запускаться: хуки в управляемых настройках и хуки из плагинов, кроме плагинов из каталога skills
Skills, пользовательские команды и агенты, хуки во frontmatter которых перестают запускаться, по-прежнему загружаются, пока их собственный интерфейс не заблокирован.
Личный или проектный skill, который объявляет hooks в своём frontmatter, также теряет предварительное одобрение allowed-tools, поэтому ваши пользователи будут получать запросы разрешения для инструментов, перечисленных в этом поле. Когда такой skill запускается в субагенте через context: fork, он сохраняет предварительное одобрение. Skill, который не объявляет hooks, также сохраняет своё предварительное одобрение.
- Scope:
Managed - Type: строка
"hooks"в массивеstrictPluginOnlyCustomization - Default: не заблокировано
{
"strictPluginOnlyCustomization": ["hooks"]
}
strictPluginOnlyCustomization.mcp
Заблокируйте интерфейс mcp. Claude Code прекращает загрузку MCP-серверов из ~/.claude.json и .mcp.json. Он продолжает загружать серверы managed-mcp.json, серверы из managedMcpServers и MCP-серверы из плагинов, кроме плагинов из каталога skills.
- Scope:
Managed - Type: строка
"mcp"в массивеstrictPluginOnlyCustomization - Default: не заблокировано
{
"strictPluginOnlyCustomization": ["mcp"]
}
enabledPlugins
Включайте или отключайте отдельные plugins, обозначенные как plugin-name@marketplace-name. Плагин без записи в любой области возвращается к его значению defaultEnabled. Когда вы включаете или отключаете плагин с помощью /plugin или claude plugin enable, Claude Code записывает этот ключ для вас.
- Scope:
Any file - Type: объект, отображающий
plugin-name@marketplace-nameна Boolean - Default: не установлено, поэтому каждый плагин следует его значению
defaultEnabled
Этот пример включает два плагина из маркетплейса team-tools и отключает один из personal:
{
"enabledPlugins": {
"code-formatter@team-tools": true,
"deployment-tools@team-tools": true,
"experimental-features@personal": false
}
}
Каждая область служит разной цели:
- User settings: ваши личные предпочтения плагинов
- Project settings: плагины, общие со всеми в репозитории
- Local settings: переопределения для каждой машины, игнорируемые, когда Claude Code сохраняет параметр там
- Managed settings: организационная политика. Плагин, установленный на
falseздесь, заблокирован от установки в каждой области и скрыт из маркетплейса
Параметры проекта имеют приоритет над параметрами пользователя, поэтому установка плагина на false в ~/.claude/settings.json не отключает плагин, который .claude/settings.json проекта включает. Чтобы отказаться от плагина, включённого проектом, на вашей машине, установите его на false в .claude/settings.local.json вместо этого. Плагины, принудительно включённые управляемыми параметрами, не могут быть отключены таким образом, так как управляемые параметры переопределяют локальные параметры.
Включение плагина из внешнего источника, такого как репозиторий GitHub или пакет npm, в .claude/settings.json проекта не устанавливает его для других людей. На каждом пути, который загружает плагины, Claude Code сообщает о плагине как не установленном до тех пор, пока каждый пользователь не установит его сам.
extraKnownMarketplaces
Регистрируйте дополнительные маркетплейсы плагинов по имени, чтобы люди, которые открывают репозиторий, или все, кого достигают ваши управляемые параметры, получали маркетплейс без добавления его самостоятельно. Claude Code регистрирует каждый маркетплейс, который он ещё не знает. Устанавливается ли плагин, который enabledPlugins называет из него, зависит от источника плагина и какой файл его включает; эта запись имеет правила.
- Scope:
Any file. Claude Code учитывает записи в.claude/settings.jsonили.claude/settings.local.jsonрепозитория только после того, как вы примете диалог доверия рабочей области для этой папки; в папке, которую вы не доверяете, включая запуск-pтам, он игнорирует их без сообщения. - Type: объект, отображающий имя маркетплейса на объект с объектом
sourceи необязательным BooleanautoUpdate - Default: не установлено
Этот пример регистрирует маркетплейс GitHub и маркетплейс из самостоятельно размещённого git URL:
{
"extraKnownMarketplaces": {
"acme-tools": {
"source": {
"source": "github",
"repo": "acme-corp/claude-plugins"
}
},
"security-plugins": {
"source": {
"source": "git",
"url": "https://git.example.com/security/plugins.git"
}
}
}
}
Что работает перед тем, как вы доверяете папке, сравнивает ворота доверия с другим содержимым, которое репозиторий может предоставить. Вы также можете написать этот ключ как additionalMarketplaces; см. Псевдонимы ключей маркетплейса.
Установите "autoUpdate": true рядом с source, чтобы Claude Code обновлял этот маркетплейс и обновлял его установленные плагины в фоне после запуска. Если опущено, claude-plugins-official и большинство других официальных маркетплейсов Anthropic по умолчанию имеют true, а маркетплейсы третьих сторон по умолчанию имеют false. См. Настройте автоматические обновления.
Когда более одного файла параметров определяет запись маркетплейса под одним и тем же именем, Claude Code использует запись из файла с наивысшим приоритетом целиком. Эта запись заменяет запись с более низким приоритетом и не наследует ни одно из её полей, поэтому переопределение не может объединить source.headers учётные данные одного файла с URL, который контролирует другой файл. До v2.1.228, Claude Code объединял записи с одним и тем же именем поле за полем, поэтому запись в файле с более высоким приоритетом могла наследовать поля, которые она не установила, включая headers другого файла.
Marketplace source types
Объект source принимает одну из этих форм:
github: репозиторий GitHub, сrepogit: любой git URL, сurlurl: прямой URL к файлуmarketplace.json, сurlи необязательнымиheadersиheadersHelperдля аутентифицированного доступа.headersHelperназывает команду, которая печатает заголовки, чьи значения слишком недолговечны для перечисления вheaders, и требует Claude Code v2.1.238 или позжеfile: локальный путь к файлуmarketplace.json, сpathdirectory: локальный путь файловой системы, сpath. Используйте его для разработки или для маркетплейса, который ваша организация развёртывает на каждой машине.settings: встроенный маркетплейс, объявленный непосредственно в файле параметров без размещённого репозитория, сnameиplugins
Тип источника git работает с любым сервисом размещения git, включая самостоятельно размещённые GitLab и Bitbucket. Claude Code клонирует репозиторий с той же аутентификацией, которую использовал бы git clone на этой машине: настроенные помощники учётных данных или ключи SSH. Токен поставщика, такой как GITHUB_TOKEN, вступает в силу через помощника учётных данных, который его читает. См. Приватные репозитории для деталей настройки.
Для источников github и git, Claude Code никогда не загружает содержимое Git LFS при клонировании репозитория маркетплейса для добавления или обновления. Файлы, отслеживаемые LFS, проверяются как файлы указателей, и вывод добавления или обновления сообщает, сколько их.
Поле skipLfs внутри объекта source принимается и не имеет эффекта. До v2.1.274, Claude Code загружал содержимое LFS, если вы не установили "skipLfs": true.
Для источника url, установите headersHelper внутри объекта source, когда учётные данные в headers истекают и команда должна произвести свежие. Требуется Claude Code v2.1.238 или позже. Для того, что команда должна печатать и где Claude Code её запускает, см. Напишите команду headersHelper, и для случаев, когда Claude Code её не запускает, см. Когда Claude Code пропускает команду headersHelper. Как только вы установите headersHelper на URL маркетплейса https://, Claude Code запускает команду в двух точках, повторно используя вывод одного запуска в течение до 60 секунд:
- Перед каждой выборкой
marketplace.jsonэтого маркетплейса, включая более позднее обновление. Claude Code отправляет напечатанные заголовки с этой выборкой. - Перед каждой загрузкой архива плагина на происхождение URL маркетплейса, означая ту же схему, хост и порт. Claude Code отправляет вывод с этой загрузкой, и никакая другая загрузка не получает заголовки.
Claude Code игнорирует любой headersHelper, установленный в .claude/settings.json или .claude/settings.local.json каталога, который вы добавляете с --add-dir, на источнике url и на встроенной записи плагина, и отправляет только фиксированные headers, установленные в этом файле. Как пользователи принимают команду headersHelper охватывает другие файлы параметров.
Плагины, перечисленные в источнике settings, должны ссылаться на внешние источники, такие как GitHub или npm, и name должен совпадать с ключом маркетплейса. Вы всё ещё включаете каждый плагин отдельно в enabledPlugins. Этот пример объявляет один плагин встроенным:
{
"extraKnownMarketplaces": {
"team-tools": {
"source": {
"source": "settings",
"name": "team-tools",
"plugins": [
{
"name": "code-formatter",
"source": {
"source": "github",
"repo": "acme-corp/code-formatter"
}
}
]
}
}
}
}
Запись плагина под source: 'settings', чей собственный source — это archive, может установить headers для загрузки архива. Если значение, которое вы поместили бы в headers, недолговечно, такое как токен, который ваш реестр чеканит по запросу, установите вместо этого команду headersHelper. Запись может установить оба. Оба поля требуют Claude Code v2.1.238 или позже.
Claude Code отправляет headers записи и всё, что печатает команда, с загрузкой архива этого плагина и ни с какой другой загрузкой. Claude Code запускает команду только когда пользователь устанавливает или обновляет только этот один плагин. Три дополнительных правила зависят от того, какой файл содержит запись:
strict: в отличие от записи вmarketplace.jsonмаркетплейса, запись в параметрах не нуждается в"strict": false, потому что файл параметров не содержит полей манифеста для встраивания. См. Strict mode.- Folder trust: для записи в
.claude/settings.jsonили.claude/settings.local.jsonпроекта, Claude Code запускает команду только после того, как пользователь также доверил эту папку. - Header filter: Claude Code удаляет имена заголовков маршрутизации запросов и идентификации клиента из записи в
.claude/settings.jsonили.claude/settings.local.jsonпроекта, потому что репозиторий может предоставить эти файлы. Claude Code применяет тот же фильтр к записи каталога и к записи в каталоге--add-dir, и никакой фильтр к записи в ваши пользовательские параметры, файл--settingsили управляемые параметры.
Marketplace key aliases
На Claude Code v2.1.232 или позже, вы можете написать extraKnownMarketplaces как additionalMarketplaces и strictKnownMarketplaces как allowedMarketplaces. Claude Code рассматривает каждый псевдоним следующим образом:
- Более ранние версии игнорируют псевдоним, поэтому сохраняйте каноническое написание в файле, который также читают более старые версии, такой как файл управляемых параметров для флота со смешанными версиями Claude Code.
- В любом файле параметров, который принимает канонический ключ, Claude Code читает псевдоним точно так же, как читает канонический ключ.
- Claude Code может переписать
additionalMarketplacesнаextraKnownMarketplacesпри обновлении файла. - Если вы установите оба написания в одном файле, Claude Code использует каноническое значение и игнорирует псевдоним.
pluginConfigs
Сохраняйте нечувствительные ответы, которые вы даёте диалогу конфигурации userConfig плагина, обозначенные по ID плагина. Claude Code записывает этот ключ в ваши пользовательские параметры при заполнении диалога, поэтому вам не нужно редактировать его вручную. Claude Code сохраняет чувствительные параметры в macOS Keychain вместо этого, возвращаясь к ~/.claude/.credentials.json, когда Keychain отклоняет запись; на платформах без поддерживаемого keychain, он сохраняет их в ~/.claude/.credentials.json.
- Scope:
User or managed - Type: объект, отображающий ID плагина на объект с полем
options, отображающим каждое имя параметра на строку, число, Boolean или массив строк, и необязательное полеmcpServers, содержащее значения конфигурации пользователя для каждого сервера в той же форме - Default: не установлено
Этот пример сохраняет параметр api_endpoint для плагина deployer из acme-tools:
{
"pluginConfigs": {
"deployer@acme-tools": {
"options": {
"api_endpoint": "https://api.example.com"
}
}
}
}
Встроенные плагины хранят свои параметры в том же ключе с суффиксом @builtin. Например, настройка Project instructions, которая определяет, читает ли Claude Code файлы AGENTS.md, — это pluginConfigs["cc-plugin-agents-md@builtin"].options.instructionFiles. До v2.1.285 ID этого плагина был agents-md@builtin. Более поздние версии читают запись под любым из этих ID.
Claude Code игнорирует записи проекта и локальные записи, потому что подставляет эти значения в конфигурации хуков, MCP и LSP плагина, а клонированный репозиторий не должен иметь возможности их предоставить.
prependPlugins
Перечислите управляемые плагины, чьи mods запускаются перед каждым mod, который устанавливает пользователь, в указанном порядке. Когда вы установите этот ключ в управляемых параметрах, назовите sec-default@builtin в списке, чтобы сохранить встроенную защиту. В управляемых параметрах Claude Code пропускает id, чей плагин не считается плагином вашей организации. См. Установка модов вашей организации и установка порядка для этих условий и для того, как два ключа упорядочения работают вместе.
- Scope:
User or managed. Claude Code читает ключ из управляемых настроек. Из пользовательских настроек он читает ключ только на машине без управляемых настроек и в сессии, учётные данные которой получены не через/loginс планом Team или Enterprise. Он игнорирует ключ в настройках проекта, локальных настройках и в файле--settings. - Type: массив строк
plugin-name@marketplace-name - Default: не установлено
{
"extraKnownMarketplaces": {
"acme-tools": {
"source": { "source": "directory", "path": "/opt/acme/claude-plugins" }
}
},
"enabledPlugins": { "acme-guard@acme-tools": true },
"prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"]
}
appendPlugins
Перечислите управляемые плагины, чьи mods запускаются после каждого mod, который устанавливает пользователь, в указанном порядке. Id, перечисленный в обоих prependPlugins и appendPlugins, добавляется в начало. В управляемых параметрах Claude Code пропускает id, чей плагин не считается плагином вашей организации.
- Scope:
User or managed. Claude Code читает ключ из управляемых настроек. Из пользовательских настроек он читает ключ только на машине без управляемых настроек и в сессии, учётные данные которой получены не через/loginс планом Team или Enterprise. Он игнорирует ключ в настройках проекта, локальных настройках и в файле--settings. - Type: массив строк
plugin-name@marketplace-name - Default: не установлено
{
"extraKnownMarketplaces": {
"acme-tools": {
"source": { "source": "directory", "path": "/opt/acme/claude-plugins" }
}
},
"enabledPlugins": { "acme-audit@acme-tools": true },
"appendPlugins": ["acme-audit@acme-tools"]
}
MCP
Контролируйте, к каким серверам MCP подключается Claude Code и какие разрешает организация. См. Подключение к внешним инструментам с помощью MCP и Управляемая конфигурация MCP.
allowAllClaudeAiMcps
Загружайте соединители claude.ai, которые Claude Code получает сам, наряду с развёрнутым managed-mcp.json. Без этого ключа managed-mcp.json получает исключительный контроль над серверами MCP и подавляет эти соединители.
- Scope:
Managed. Пользователи не могут повторно включить соединители, которые исключительный контроль подавил. - Type: Boolean
true: Claude Code загружает соединители claude.ai наряду с развёрнутымmanaged-mcp.jsonfalse: развёрнутыйmanaged-mcp.jsonполучает исключительный контроль над серверами MCP и подавляет соединители claude.ai, которые Claude Code получает сам
- Default:
false, поэтому развёрнутыйmanaged-mcp.jsonподавляет соединители claude.ai, которые Claude Code получает сам
{
"allowAllClaudeAiMcps": true
}
allowedMcpServers и deniedMcpServers по-прежнему применяются к соединителям, которые загружает этот ключ. Соединители, доставленные в облачный сеанс, хост которого содержит managed-mcp.json, например самостоятельно размещённый runner, остаются подавленными. См. Разрешить соединители claude.ai наряду с управляемым набором.
allowClaudeInChromeWithManagedMcp
Позволяйте встроенному серверу Claude в Chrome работать наряду с развёрнутым managed-mcp.json. Без этого ключа развёрнутый managed-mcp.json блокирует Claude в Chrome в сеансах терминала. Требует Claude Code версии 2.1.282 или позже.
- Scope:
Managed, только из собственных управляемых параметров устройства: развёрнутого MDM plist или ключа реестра HKLM, или системного файлаmanaged-settings.json. Claude Code игнорирует его в управляемых параметрах сервера, в пользовательском реестре HKCU и в пользовательских или проектных параметрах. - Type: Boolean
true: встроенный сервер Claude в Chrome может работать наряду с развёрнутымmanaged-mcp.jsonfalse: развёрнутыйmanaged-mcp.jsonблокирует Claude в Chrome в сеансах терминала
- Default:
false, поэтому развёрнутыйmanaged-mcp.jsonблокирует Claude в Chrome в сеансах терминала
{
"allowClaudeInChromeWithManagedMcp": true
}
Запись deniedMcpServers для claude-in-chrome по-прежнему блокирует сервер с этим ключом включённым. См. Разрешить Claude в Chrome наряду с управляемым набором.
allowedMcpServers
Создайте список разрешённых серверов MCP, которые люди могут добавлять. Claude Code блокирует любой сервер, который не соответствует записи, где бы он ни был определён, включая серверы плагинов, серверы, переданные с --mcp-config, и серверы из claude.ai.
Встроенные серверы, такие как Claude в Chrome, сервер ide, к которому Claude Code подключается в работающей IDE VS Code или JetBrains, и серверы, которые сам CLI настраивает, освобождены от списка разрешений, и список запретов по-прежнему применяется к ним. На Claude Code версии 2.1.268 или позже, инструменты Slack сеанса Claude Tag также освобождены от списка разрешений, и список запретов по-прежнему применяется к ним. Внутрипроцессные серверы type: "sdk" освобождены от обоих списков; приложение, которое запустило сеанс, регистрирует их.
Серверы, которые доставляет ваша организация, также освобождены от списка разрешённых серверов, но список запрещённых серверов к ним по-прежнему применяется. Освобождение охватывает каждую запись managedMcpServers и любую запись managed-mcp.json, значения которой не используют расширение ${VAR} за пределами env. Полный порядок проверки см. в разделе Как оценивается сервер. До версии 2.1.259 серверы из managed-mcp.json также должны были соответствовать списку.
- Scope:
Any file. Записи из каждого файла объединяются в один список разрешений, если не установленallowManagedMcpServersOnly. Разверните его в управляемых параметрах, чтобы обеспечить его. - Type: массив объектов, каждый ровно с одним ключом. Используйте
serverName— строку, ограниченную буквами, цифрами, дефисами и подчёркиваниями;serverCommand— массив из команды и её аргументов, сопоставляемый точно; илиserverUrl— шаблон URL с подстановочными знаками* - Default: не установлено, поэтому каждый сервер разрешён; пустой массив блокирует каждый сервер, который добавляют пользователи
Этот пример разрешает только сервер stdio, который запускает указанная команда npx:
{
"allowedMcpServers": [
{ "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"] }
]
}
Запись deniedMcpServers имеет приоритет, поэтому сервер в обоих списках блокируется. Как только список содержит любую запись serverCommand, сервер stdio должен совпадать с записью serverCommand, и как только он содержит любую запись serverUrl, удалённый сервер должен совпадать с записью serverUrl: совпадение serverName больше не допускает этот вид сервера. См. Управление на основе политики со списками разрешений и запретов.
allowManagedMcpServersOnly
Сделайте управляемый список разрешений единственным применяемым. Claude Code затем читает allowedMcpServers только из управляемых параметров и игнорирует списки разрешений в пользовательских, проектных и локальных параметрах; deniedMcpServers по-прежнему объединяется из каждой области параметров, поэтому пользователи могут по-прежнему блокировать серверы для себя. Администраторы устанавливают это так, чтобы собственные параметры пользователя не могли расширить то, что разрешает управляемый список разрешений.
- Scope:
Managed - Type: Boolean
true: Claude Code читаетallowedMcpServersтолько из управляемых параметров и игнорирует списки разрешений в пользовательских, проектных и локальных параметрахfalse: списки разрешений из каждой области параметров объединяются
- Default:
false, поэтому списки разрешений из каждой области параметров объединяются
Этот пример блокирует список разрешений для управляемых параметров и разрешает только сервер с именем github:
{
"allowManagedMcpServersOnly": true,
"allowedMcpServers": [
{ "serverName": "github" }
]
}
Пользователи могут по-прежнему добавлять серверы MCP самостоятельно; загружаются только серверы, которые совпадают с управляемым списком разрешений. См. Ограничить список разрешений только управляемыми параметрами.
deniedMcpServers
Блокируйте определённые серверы MCP. Claude Code отказывается загружать совпадающий сервер, где бы он ни был определён, включая серверы плагинов, серверы, переданные с --mcp-config, серверы из managed-mcp.json, серверы из managedMcpServers и соединители claude.ai, которые он получает сам. Внутрипроцессные серверы type: "sdk" освобождены; приложение, которое запустило сеанс, регистрирует их.
- Scope:
Any file. Записи из каждого файла объединяются в один список запретов, иallowManagedMcpServersOnlyэто не меняет. Разверните его в управляемых параметрах, чтобы обеспечить его. - Type: массив объектов, каждый с ровно одним ключом:
serverName, строка, поэтому отображаемое имя соединителя claude.ai, такое как"claude.ai Slack", работает;serverCommand, массив команды и её аргументов, совпадающих точно; илиserverUrl, шаблон URL с подстановочными знаками* - Default: не установлено, поэтому ни один сервер не блокируется; пустой массив также ничего не блокирует
{
"deniedMcpServers": [
{ "serverName": "filesystem" }
]
}
Список запретов имеет приоритет над allowedMcpServers, поэтому сервер в обоих списках блокируется. См. Управление на основе политики со списками разрешений и запретов.
disableClaudeAiConnectors
Отключите соединители MCP claude.ai, которые Claude Code получает сам, чтобы он ни получал, ни подключал их. true в любом файле параметров применяется: проверенный в репозитории проект .claude/settings.json может отказать репозиторию в этих соединителях, но проектный уровень false не может переопределить пользовательский или управляемый уровень true.
- Scope:
Any file - Type: Boolean
true: Claude Code ни получает, ни подключает эти соединителиfalse: то же самое, что и не установлено; Claude Code получает ваши соединители, если другой файл параметров илиENABLE_CLAUDEAI_MCP_SERVERSих не отключает
- Default:
false, поэтому Claude Code получает ваши соединители - Per-session overrides:
ENABLE_CLAUDEAI_MCP_SERVERS, установленный наfalse, отключает соединители на один сеанс; какой бы из двух их ни отключил, другой не может их включить обратно
{
"disableClaudeAiConnectors": true
}
Серверы, которые вы явно передаёте с --mcp-config, не затрагиваются. Чтобы блокировать отдельные соединители вместо всех, используйте deniedMcpServers. См. Отключить соединители claude.ai.
disabledMcpjsonServers
Отклоняйте определённые серверы, определённые в файле .mcp.json проекта, чтобы Claude Code никогда их не подключал и не просил вас их одобрить. Отклонение в любом файле параметров применяется, включая проект .claude/settings.json, проверенный в репозитории.
- Scope:
Any file - Type: массив строк, имена серверов, как они появляются в
.mcp.json - Default: не установлено
{
"disabledMcpjsonServers": ["filesystem"]
}
Claude Code записывает этот ключ в .claude/settings.local.json, когда вы отклоняете сервер в диалоговом окне одобрения. claude mcp get <name> показывает отклонённый сервер как ✘ Rejected (see disabledMcpjsonServers in settings). Отклонение имеет приоритет над enabledMcpjsonServers и enableAllProjectMcpServers.
enableAllProjectMcpServers
Одобряйте каждый сервер MCP, определённый в файлах проекта .mcp.json, без подсказки. Claude Code записывает этот ключ в .claude/settings.local.json, когда вы выбираете одобрение всех серверов в диалоговом окне одобрения.
- Scope:
Any file. В папке, диалоговое окно доверия которой вы не приняли, Claude Code соблюдает его из пользовательских параметров, управляемых параметров и--settingsи игнорирует его в общем файле проекта, как в сеансе, так и дляclaude mcp listиclaude mcp get; Одобрения серверов проекта и доверие рабочей области говорит, когда неотслеживаемый.claude/settings.local.jsonтакже считается. - Type: Boolean
true: Claude Code одобряет каждый сервер MCP, определённый в файлах проекта.mcp.json, без подсказкиfalse: Claude Code просит вас одобрить каждый сервер. В доверенной папкеfalseв файле с более высоким приоритетом переопределяетtrueв файле с более низким приоритетом; в папке, которой вы не доверяете,trueв любом соблюдаемом файле достаточно
- Default: не установлено, поэтому Claude Code просит вас одобрить каждый сервер
{
"enableAllProjectMcpServers": true
}
Запись disabledMcpjsonServers по-прежнему отклоняет сервер.
enabledMcpjsonServers
Одобряйте определённые серверы, определённые в файлах проекта .mcp.json, чтобы Claude Code подключал их без вопросов. Claude Code записывает этот ключ в .claude/settings.local.json, когда вы одобряете сервер в диалоговом окне одобрения.
- Scope:
Any file. В папке, диалоговое окно доверия которой вы не приняли, Claude Code соблюдает его из пользовательских параметров, управляемых параметров и--settingsи игнорирует его в общем файле проекта, как в сеансе, так и дляclaude mcp listиclaude mcp get; Одобрения серверов проекта и доверие рабочей области говорит, когда неотслеживаемый.claude/settings.local.jsonтакже считается. - Type: массив строк, имена серверов, как они появляются в
.mcp.json - Default: не установлено
Этот пример одобряет серверы memory и github из .mcp.json проекта:
{
"enabledMcpjsonServers": ["memory", "github"]
}
Запись disabledMcpjsonServers по-прежнему отклоняет сервер.
managedMcpServers
Предоставляйте удалённые серверы MCP каждому пользователю из управляемых параметров. Пользователи сохраняют серверы, которые они добавляют сами, и не могут редактировать или удалять те, которые вы предоставляете. Требует Claude Code версии 2.1.259 или позже.
- Scope:
Managed. Claude Code удаляет ключ с предупреждением в пользовательских, проектных и локальных параметрах и не читает его в вкладке Code приложения Claude Desktop при развёртывании третьей стороной или в сеансах Cowork приложения, где Claude Desktop сам предоставляет и блокирует серверы MCP этих сеансов. - Type: объект, ключ которого — имя сервера. Каждая запись имеет форму
.mcp.jsonдля сервераhttpилиsse: требуемыйhttps://urlи опциональноheaders,oauthи другие параметры HTTP и SSE. Claude Code удаляет записи, которые не прошли проверку, и Что может содержать запись перечисляет условия - Default: не установлено, поэтому управляемые параметры не предоставляют серверы
Этот пример предоставляет один HTTP-сервер с именем search:
{
"managedMcpServers": {
"search": {
"type": "http",
"url": "https://search.example.com/mcp"
}
}
}
Для приоритета, как предоставленные серверы объединяются с managed-mcp.json и списками разрешений и запретов, и что видят пользователи, см. Предоставлять серверы через управляемые параметры.
Агенты, сессии и worktrees
Установите агента по умолчанию, управляйте участниками команды и обменом сообщениями между сессиями, а также настройте worktrees. См. Субагенты и Worktrees.
agent
Запустите основной поток как именованный субагент, чтобы Claude Code применил системный промпт, ограничения инструментов и модель этого субагента к вашей сессии. Один и тот же ключ устанавливает агента по умолчанию для сессий, которые вы отправляете из claude agents.
- Scope:
Any file - Type: string, имя встроенного или пользовательского агента
- Default: не установлено, поэтому основной поток работает как агент Claude Code по умолчанию
- Per-session overrides:
--agentимеет приоритет над этим ключом для одной сессии
{
"agent": "code-reviewer"
}
Собственный settings.json плагина также может предоставить этот ключ; см. Ship default settings with your plugin.
crossSessionInbound
Выберите, что эта сессия делает с сообщениями, поступающими из ваших других сессий Claude Code. Когда ни одно значение не применяется, Claude Code решает для каждого сообщения на основе классов режима разрешений двух сессий. Требуется Claude Code v2.1.224 или позже.
- Scope:
Any file. Значение проекта или локальное значение применяется только в том случае, если оно строже, чем значение управляемых настроек, флага--settingsили пользовательских настроек. - Type: string, один из:
"accept": Claude Code доставляет сообщение Claude"hold": Claude Code показывает уведомление о сообщении без его доставки"refuse": Claude Code отбрасывает сообщение
- Default: не установлено, поэтому Claude Code решает для каждого сообщения
{
"crossSessionInbound": "hold"
}
Claude Code сначала читает управляемые настройки, затем флаг --settings, затем пользовательские настройки и применяет первое найденное значение. refuse строже, чем hold, а hold строже, чем accept. Когда ни один из доверенных источников не устанавливает значение, проектное или локальное hold или refuse все еще применяется, заменяя решение по умолчанию для каждого сообщения. В сессиях с обменом сообщениями между сессиями этот ключ появляется в /config как Messages from your other sessions, который записывает его в пользовательские настройки; строка требует Claude Code v2.1.232 или позже, и Claude Code скрывает её, пока флаг --settings или управляемые настройки устанавливают ключ.
Claude Code предупреждает при установке значения, которое он не распознает. Пока это значение присутствует в пользовательском, проектном, локальном или файле --settings, Claude Code удерживает входящие сообщения, даже когда источник, который имеет приоритет, устанавливает accept. refuse, установленный другим источником, все еще применяется. Исправьте или удалите значение, чтобы снять удержание.
Когда неузнанное значение находится в управляемых настройках, Claude Code вместо этого рассматривает его как refuse до тех пор, пока администратор не исправит его. До v2.1.248 Claude Code игнорировал неузнанное значение без предупреждения.
disableAgentView
Отключите фоновых агентов и представление агентов: claude agents, --bg, /background и супервизора по требованию. Установите его в управляемых настройках, чтобы применить его для организации.
- Scope:
Any file - Type: Boolean
true: Claude Code отключаетclaude agents,--bg,/backgroundи супервизора по требованиюfalse: представление агентов доступно
- Default: не установлено, поэтому представление агентов доступно
- Per-session overrides:
CLAUDE_CODE_DISABLE_AGENT_VIEWотключает представление агентов для одной сессии; какой бы из двух его ни отключил, другой не может его снова включить
{
"disableAgentView": true
}
isolatePeerMachines
Требуйте вашего явного подтверждения перед тем, как SendMessage Claude достигнет одну из ваших сессий за пределами этой машины; см. Require approval for cross-machine messages. Запрос подтверждения появляется даже в режиме bypassPermissions.
- Scope:
Any file.trueиз любой области действия применяется, поэтому зафиксированный в репозитории файл проекта может включить требование, но не отключить его. - Type: Boolean
true: Claude Code запрашивает ваше подтверждение перед тем, какSendMessageClaude достигнет одну из ваших сессий за пределами этой машиныfalse: сообщения между машинами не вызывают запрос
- Default: не установлено, поэтому сообщения между машинами не вызывают запрос
{
"isolatePeerMachines": true
}
Подтверждение SendMessage между машинами требует Claude Code v2.1.224 или позже.
processWrapper
На macOS и Linux поместите команду корпоративного лаунчера перед фоновыми процессами, которые запускает Claude Code. Claude Code запускает лаунчер с добавленной собственной командной строкой, поэтому лаунчер должен выполнить exec в Claude Code; см. Run Claude Code behind a corporate launcher для контракта лаунчера. Требуется Claude Code v2.1.210 или позже.
- Scope:
User or managed - Type: string, команда лаунчера как префикс argv, например абсолютный путь с необязательными аргументами
- Default: не установлено, поэтому фоновые процессы запускаются без обёртки
- Per-session overrides:
CLAUDE_CODE_PROCESS_WRAPPERимеет приоритет над этим ключом для одной сессии
{
"processWrapper": "/opt/corp/launcher --profile claude"
}
Claude Code игнорирует лаунчер на Windows и запускает каждый процесс без обёртки. Требуется Claude Code v2.1.210 или позже.
teammateMode
Выберите, где Claude Code показывает участников команды агентов: внутри вашей основной панели терминала или в разделённых панелях, когда ваш терминал их поддерживает. См. Choose a display mode.
- Scope:
Any file. Claude Code также читает значение, оставленное в~/.claude.jsonстарыми версиями. - Type: string, один из:
"in-process": участники команды работают внутри вашей основной панели терминала"auto": разделённые панели, когда вы работаете внутри tmux, или внутри iTerm2 сit2в вашемPATHили установленным tmux; в противном случае в процессе"tmux": разделённые панели с использованием tmux или iTerm2, определяемые по вашему терминалу"iterm2": собственные разделённые панели iTerm2 через CLIit2
- Default:
"in-process" - Per-session overrides:
--teammate-modeимеет приоритет над этим ключом для одной сессии
{
"teammateMode": "auto"
}
worktree
Настройте, как Claude Code создаёт и управляет git worktrees для --worktree, инструмента EnterWorktree и изолированных субагентов и фоновых сессий.
- Scope:
Any file - Type: object с
baseRef,symlinkDirectories,sparsePathsиbgIsolation - Default: не установлено
Этот пример ответвляет новые worktrees от вашего текущего HEAD и создаёт символические ссылки на node_modules в каждом из них:
{
"worktree": {
"baseRef": "head",
"symlinkDirectories": ["node_modules"]
}
}
Чтобы скопировать игнорируемые git файлы, такие как .env, в новые worktrees, добавьте файл .worktreeinclude в корень вашего проекта вместо настройки.
worktree.baseRef
Выберите, от какого ref ответвляются новые worktrees. "fresh" ответвляется от origin/<default-branch> для чистого дерева, соответствующего удалённому; "head" ответвляется от вашего текущего локального HEAD, поэтому неотправленные коммиты и состояние ветки функции присутствуют в worktree.
- Scope:
Any file - Type: string, один из:
"fresh": новые worktrees ответвляются отorigin/<default-branch>"head": новые worktrees ответвляются от вашего текущего локальногоHEAD, включая неотправленные коммиты
- Default:
"fresh"
{
"worktree": {
"baseRef": "head"
}
}
Внутри связанного worktree "head" разрешается в HEAD этого worktree, а не в основной checkout.
worktree.symlinkDirectories
Создайте символические ссылки на каталоги из основного репозитория в каждом worktree, чтобы не дублировать большие каталоги на диске.
- Scope:
Any file - Type: array of strings, пути каталогов относительно корня репозитория
- Default: не установлено, поэтому Claude Code не создаёт символические ссылки на каталоги
Этот пример создаёт символические ссылки на node_modules и .cache из основного репозитория в каждом новом worktree:
{
"worktree": {
"symlinkDirectories": ["node_modules", ".cache"]
}
}
worktree.sparsePaths
Извлекайте только перечисленные каталоги в каждом worktree через git sparse-checkout. Claude Code записывает на диск только эти каталоги плюс файлы на уровне корня, что быстрее в больших монорепозиториях; см. Check out only the directories you need.
- Scope:
Any file - Type: array of strings, пути каталогов относительно корня репозитория
- Default: не установлено, поэтому каждый worktree извлекает всё дерево
Включите .claude в список, чтобы каждый worktree также содержал .claude/settings.json и .claude/rules/ репозитория. Этот пример извлекает только .claude, packages/my-app и shared/utils, плюс файлы на уровне корня, в каждом worktree:
{
"worktree": {
"sparsePaths": [".claude", "packages/my-app", "shared/utils"]
}
}
Пока существует разреженный worktree, git включает extensions.worktreeConfig в общем .git/config репозитория.
worktree.bgIsolation
Выберите, как фоновые сессии изолируют свои редактирования файлов. Если вы перевели сессию в фоновый режим с помощью ← или /background, эта сессия редактирует файлы на месте независимо от значения этого ключа. С "worktree" Claude Code блокирует Edit и Write в основном checkout до тех пор, пока сессия не вызовет EnterWorktree; с "none" фоновые задания редактируют рабочую копию напрямую. Установите "none" для репозитория, где git worktrees непрактичны.
- Scope:
Any file - Type: string, один из:
"worktree": Claude Code блокируетEditиWriteв основном checkout до тех пор, пока сессия не вызоветEnterWorktree"none": фоновые задания редактируют рабочую копию напрямую
- Default:
"worktree"
{
"worktree": {
"bgIsolation": "none"
}
}
Вне git-репозитория хук WorktreeCreate, который завершается с ошибкой, снимает блокировку, чтобы сессия могла редактировать рабочий каталог на месте.
worktree.location
Выберите папку на удалённой машине, в которой сессии Desktop по SSH создают свои worktrees, вместо <project-root>/.claude/worktrees/. Этот ключ читает только настольное приложение: --worktree, инструмент EnterWorktree, изолированные субагенты и фоновые сессии его игнорируют. Требуется Claude Desktop v1.44121.0 или позже.
- Scope:
User, в~/.claude/settings.jsonна удалённой машине - Type: string, абсолютный путь или путь, начинающийся с
~/ - Default: не установлено, поэтому worktrees размещаются внутри проекта
Этот пример задаёт папку ~/worktrees:
{
"worktree": {
"location": "~/worktrees"
}
}
Значение Worktree folder, заданное для SSH-подключения в Desktop, имеет приоритет. Если ваша организация ограничивает папки, которые могут использовать сессии, Desktop размещает worktrees внутри проекта.
Удалённое управление, настольное приложение и уведомления
Настройте удалённое управление, облачные среды, настольное приложение и уведомления, которые Claude Code отправляет, когда вам нужна помощь. См. Удалённое управление.
agentPushNotifEnabled
Разрешить Claude отправлять push-уведомление на ваш телефон, когда он решит, что его стоит отправить, например, когда завершится длительная задача. Claude может отправить его, пока подключён Remote Control. Отображается в /config как Push when Claude decides. Когда вы меняете значение там, Claude Code также сохраняет его в вашей учётной записи.
- Scope:
Any file. Claude Code также читает значение, оставленное в~/.claude.jsonстарыми версиями. - Type: Boolean
true: Claude может отправлять push-уведомление на ваш телефон, когда он решит, что оно стоит отправитьfalse: Claude не отправляет эти уведомления
- Default:
false
{
"agentPushNotifEnabled": true
}
Если вы запускаете сессии через сервер claude remote-control, они следуют значению, сохранённому в вашей учётной записи, а не этому ключу. Чтобы изменить это значение, выполните /config в сессии Claude Code в терминале и включите или отключите Push when Claude decides. Если переключатель уже показывает нужное вам значение, измените его и верните обратно, чтобы Claude Code сохранил это значение в вашей учётной записи.
См. Mobile push notifications.
awaySummaryEnabled
Показывать однострочный краткий обзор сеанса, когда вы вернётесь в терминал после нескольких минут отсутствия. Установите значение false или отключите Session recap в /config, чтобы отключить краткий обзор.
- Scope:
Any file - Type: Boolean
true: вы видите однострочный краткий обзор сеанса, когда вернётесь после нескольких минут отсутствияfalse: Claude Code не показывает краткий обзор
- Default: не установлено, поэтому краткий обзор включён
- Per-session overrides:
CLAUDE_CODE_ENABLE_AWAY_SUMMARYимеет приоритет над этим ключом для одного сеанса в любом направлении
{
"awaySummaryEnabled": false
}
Claude Code никогда не показывает краткий обзор в неинтерактивном режиме.
disableArtifact
[!WARNING]
Устарело и заменено на
enableArtifact. Claude Code по-прежнему учитываетdisableArtifact: trueкак эквивалентenableArtifact: falseи игнорируетdisableArtifact: false.
Используйте enableArtifact вместо этого, чтобы отключить инструмент Artifact, который публикует выходные данные сеанса как приватную веб-страницу на claude.ai. Когда вы отключаете строку Artifacts в /config, Claude Code записывает enableArtifact в ваши пользовательские настройки и очищает этот ключ.
- Scope:
Any file - Type: Boolean
true: Claude Code отключает инструмент Artifact для каждого сеанса, к которому применяется файл, и ни один другой файл не включает его обратноfalse: игнорируется; чтобы оставить инструмент включённым, удалите ключ
- Default: не установлено, поэтому инструмент следует доступности вашей учётной записи
- Per-session overrides:
CLAUDE_CODE_DISABLE_ARTIFACTустановленный на1отключает инструмент для одного сеанса
{
"disableArtifact": true
}
Disable artifacts перечисляет все способы отключения инструмента.
disableDeepLinkRegistration
Остановить Claude Code от регистрации обработчика протокола claude-cli:// в операционной системе, что он иначе делает после отправки первого запроса интерактивного сеанса. Deep links позволяют внешним инструментам открывать сеанс Claude Code с предзаполненным запросом. Установите это в окружениях, где регистрация обработчика протокола ограничена или управляется отдельно.
- Scope:
Any file - Type: строка
"disable" - Default: не установлено, поэтому Claude Code регистрирует обработчик
{
"disableDeepLinkRegistration": "disable"
}
disableDesktopLocalSessions
Отключить сессии Code, которые работают на устройстве в настольном приложении, для развёртываний, где разработчики должны работать на удалённых машинах через SSH. Когда ключ установлен в true, пользователи видят на вкладке Code следующее:
- Список выбора окружения: запись для компьютера пользователя неактивна и недоступна для выбора, с подсказкой Disabled by your organization. На Windows запись WSL неактивна таким же образом, хотя то, работают ли сессии WSL на управляемом устройстве вообще, регулируется отдельно.
- Новые сессии: по умолчанию используют первое SSH-соединение, если оно настроено
- Сессии на устройстве: приложение отказывается запускать или возобновлять сессию на устройстве, включая SSH-соединение обратно на ту же машину
- SSH-сессии на другие хосты и облачные сессии: не затрагиваются
Настольное приложение читает этот ключ; терминальный CLI его игнорирует. Требуется Claude Desktop v1.37937.0 или новее.
- Scope:
Managed. По умолчанию настольное приложение читает ключ из одного управляемого источника. - Type: Boolean; только JSON Boolean
trueимеет эффектtrue: настольное приложение не предлагает сеансы Code на устройстве; существующие локальные сеансы остаются в списке, но не могут продолжатьсяfalse: локальные сеансы остаются доступными
- Default: не установлено, поэтому локальные сеансы доступны
{
"disableDesktopLocalSessions": true
}
Настольное приложение игнорирует любое другое значение, и значение, которое не является Boolean, такое как строка "true" или 1, также регистрирует предупреждение. Используйте его вместе с sshConfigs, чтобы пользователи попадали на рабочее соединение, и с sshHostAllowlist, чтобы ограничить, какие хосты они могут достичь. См. Local sessions on managed devices.
Claude Desktop предоставляет сеансы Code с политикой, полученной из конфигурации вашего настольного приложения, например список разрешённых исходящих соединений, изоляция файловой системы и ограничения MCP в развёртываниях третьих сторон. Claude Code игнорирует эти родительские настройки всякий раз, когда присутствует источник администратора: управляемые сервером настройки, политика MDM или уровня ОС, или файл управляемых настроек. Развёртывание этого ключа через один из них на устройстве, которое не имело ни одного раньше, как в развёртываниях третьих сторон, поэтому останавливает применение политик, полученных из настольного приложения. Let an embedding host add policy охватывает, когда родительские настройки всё ещё могут объединяться; это применяется к любому ключу, который вы развёртываете таким образом, не только к этому.
disableRemoteControl
Отключить Удалённое управление: Claude Code затем отказывает в claude remote-control, флаге --remote-control, автозапуске и переключателе в сеансе, и сообщает, что политика вашей организации это отключила. Поместите это в управляемые настройки для принудительного применения MDM на каждом устройстве.
- Scope:
Any file - Type: Boolean
true: Claude Code отказывает вclaude remote-control, флаге--remote-control, автозапуске и переключателе в сеансеfalse: Удалённое управление остаётся доступным
- Default:
false
{
"disableRemoteControl": true
}
enableArtifact
Отключить инструмент Artifact, который публикует выходные данные сессии как приватную веб-страницу на claude.ai. Когда вы отключаете строку Artifacts в /config, Claude Code записывает этот ключ в ваши пользовательские настройки, поэтому вы обычно не редактируете его вручную.
- Scope:
Any file. Каждый файл может отключить инструмент, и ни один не может включить его обратно. - Type: Boolean
false: Claude Code отключает инструмент Artifact для каждого сеанса, к которому применяется файлtrue: то же самое, что оставить ключ не установленным, потому что он никогда не переопределяетfalseиз другого файла, изCLAUDE_CODE_DISABLE_ARTIFACTили из параметра администратора вашей организации
- Default: не установлено, поэтому инструмент следует доступности вашей учётной записи
{
"enableArtifact": false
}
Пока источник, отличный от ваших собственных пользовательских настроек, держит инструмент отключённым, Claude Code скрывает строку Artifacts в /config, потому что включение её там не изменит ничего. Disable artifacts перечисляет все способы отключения инструмента.
inputNeededNotifEnabled
Получить push-уведомление на ваш телефон, когда запрос разрешения или вопрос ожидает вашего ввода. Claude Code отправляет эти уведомления только пока Удалённое управление подключено. Отображается в /config как Push when actions required.
- Scope:
Any file. Claude Code также читает значение, оставленное в~/.claude.jsonстарыми версиями. - Type: Boolean
true: вы получаете push-уведомление на ваш телефон, когда запрос разрешения или вопрос ожидает, пока подключено Удалённое управлениеfalse: Claude Code не отправляет такие уведомления
- Default:
false
{
"inputNeededNotifEnabled": true
}
См. Mobile push notifications.
preferredNotifChannel
Выберите, как Claude Code уведомляет вас, когда задача завершена или ожидает запрос разрешения. Уведомления мода используют ту же настройку. Отображается в /config как Local notifications.
- Scope:
Any file. Claude Code также читает значение, оставленное в~/.claude.jsonстарыми версиями. - Type: строка, одна из:
"auto": Claude Code отправляет уведомление рабочего стола в iTerm2, Ghostty и Kitty, звонит в колокол в Terminal.app только когда его звуковой колокол отключён, и ничего не делает в других местах"terminal_bell": Claude Code звонит в символ колокола в любом терминале"iterm2": Claude Code отправляет уведомление рабочего стола iTerm2"iterm2_with_bell": Claude Code отправляет уведомление рабочего стола iTerm2 и звонит в колокол"kitty": Claude Code отправляет уведомление рабочего стола Kitty"ghostty": Claude Code отправляет уведомление рабочего стола Ghostty"notifications_disabled": Claude Code не отправляет уведомление
- Default:
"auto"
{
"preferredNotifChannel": "terminal_bell"
}
С "auto" Claude Code отправляет уведомление рабочего стола в iTerm2, Ghostty и Kitty. В Terminal.app он звонит в символ колокола только когда вы отключили звуковой колокол Terminal, и в других терминалах ничего не делает. Установите "terminal_bell", чтобы звонить в символ колокола в любом терминале. См. Get a terminal bell or notification.
remote.defaultEnvironmentId
Выберите облачное окружение по умолчанию для облачных сеансов, которые вы создаёте из CLI, например с claude --cloud. Claude Code записывает этот ключ в ваши пользовательские настройки, когда вы выбираете окружение с помощью /remote-env.
- Scope:
Any file. Для ID самостоятельно размещённого окружения, пользовательских или управляемых настроек, или флага--settingsтолько. - Type: строка, ID окружения, такой как
env_...илиccpool_... - Default: не установлено, поэтому Claude Code использует размещённое Anthropic окружение, когда ваш список имеет одно, и в противном случае первое окружение в вашем списке, которое не является окружением моста Удалённого управления, или первое окружение, когда каждое является окружением моста
- Per-session overrides:
--environmentимеет приоритет над этим ключом для одного облачного сеанса, который он создаёт
{
"remote": {
"defaultEnvironmentId": "env_0123abcd"
}
}
ID размещённого Anthropic окружения, который начинается с env_, следует стандартному приоритету настроек, поэтому значение в проектных настройках репозитория переопределяет ваш выбор на уровне пользователя. ID самостоятельно размещённого окружения, который начинается с ccpool_, учитывается только из пользовательских настроек, управляемых настроек и флага --settings; Claude Code игнорирует один в проектных или локальных настройках репозитория, и /remote-env показывает, какое значение он игнорировал, поэтому проверенный файл не может направить сеансы на самостоятельно размещённое окружение, которое вы не выбрали.
remoteControlAtStartup
Подключить Удалённое управление автоматически, когда начинается каждый интерактивный сеанс, вместо ожидания /remote-control. Установите значение true, чтобы включить автоподключение, false, чтобы отключить его. Отображается в /config как Enable Remote Control for all sessions.
- Scope:
Any file. Claude Code также читает значение, оставленное в~/.claude.jsonстарыми версиями. - Type: Boolean
true: Claude Code подключает Удалённое управление автоматически, когда начинается каждый интерактивный сеансfalse: Claude Code ждёт/remote-control
- Default: не установлено, поэтому применяется автоподключение по умолчанию
- Per-session overrides:
--remote-controlвключает Удалённое управление для одного сеанса даже когда этот ключfalse, и ни один флаг не отключает его для одного сеанса
{
"remoteControlAtStartup": true
}
Claude Code игнорирует true из проектных или локальных настроек, поэтому репозиторий может отключить автоподключение для его checkout, но не может включить его. Для полного поведения для каждой области видимости см. Enable Remote Control for all sessions и ключи безопасности, где применяется более строгое значение.
sshConfigs
Добавить SSH-соединения в список выбора окружения Desktop. Администраторы используют sshConfigs для распространения общих соединений в команде. Пользователи могут выбрать управляемое соединение и задать для него собственную Worktree folder. Изменять другие его поля или удалять его в приложении они не могут.
- Scope:
User or managed. Настольное приложение читает этот ключ. По умолчанию оно читает управляемые соединения из одного управляемого источника. - Type: массив объектов, каждый с обязательными
id,nameиsshHostи опциональнымиsshPortиsshIdentityFile - Default: не установлено
Этот пример добавляет одно соединение с именем Dev VM, которое подключается к user@dev.example.com:
{
"sshConfigs": [
{
"id": "dev-vm",
"name": "Dev VM",
"sshHost": "user@dev.example.com"
}
]
}
sshHostAllowlist
Ограничить хосты, к которым может подключиться SSH-сеанс Desktop. Только приложение Desktop читает этот ключ; CLI не читает. Шаблоны нечувствительны к регистру: * соответствует любому хосту, *.example.com соответствует example.com и каждому поддомену, и всё остальное является точным совпадением с именем хоста после разрешения ~/.ssh/config. Пустой массив отключает SSH-сеансы.
В Claude Desktop v3.1623.0 или новее промежуточные хосты (jump hosts) сессии также должны соответствовать шаблону.
- Scope:
Managed. По умолчанию Desktop читает ключ из одного управляемого источника. - Type: массив шаблонов имён хостов
- Default: не установлено, поэтому разрешены любые хосты
Этот пример разрешает devboxes.example.com и его поддомены, плюс точный хост bastion.example.com:
{
"sshHostAllowlist": ["*.devboxes.example.com", "bastion.example.com"]
}
Значение, которое Desktop не может прочитать как список хостов, например true или объект, считается пустым массивом, пока вы его не исправите, за исключением null, который считается неустановленным значением. Требуется Claude Desktop v2.26454.0 или позже.
Если вы установите managedSourcesBehavior в "merge" в источнике с наивысшим приоритетом, Desktop объединяет списки из всех источников администратора и разрешает хост, который соответствует любому из них. Если вы установите пустой массив в одном источнике, SSH-сессии остаются включёнными для хостов, перечисленных в другом источнике.
sshHostCommands
Добавить в список выбора окружения Desktop SSH-соединения, хост которых определяется командой. Когда вы создаёте соединение или заменяете его хост, Desktop запускает команду этой записи на вашем компьютере и подключается к хосту, который выводит команда. Требуется Claude Desktop v3.6556.0 или новее на macOS или Linux с входом в учётную запись Claude.
- Scope:
User or managed. Только настольное приложение читает этот ключ. Управляемые записи оно читает из одного файла управляемых настроек или политики MDM на компьютере и игнорирует этот ключ в управляемых сервером настройках. - Type: массив объектов, каждый с обязательными
id,nameиcommandи опциональнымиsshIdentityFileиstartDirectory. Desktop запускаетcommandбез оболочки, поэтому записывайте её как программу и простые аргументы. - Default: не установлено
Этот пример добавляет одно соединение с именем Dev box, где acme-dev create обозначает ваш собственный инструмент:
{
"sshHostCommands": [
{
"id": "devbox",
"name": "Dev box",
"command": "acme-dev create"
}
]
}
До Claude Code v2.1.307 инструмент Edit отклонял изменение, добавлявшее этот ключ в корректный файл настроек, с ошибкой Unrecognized field: sshHostCommands. В этих версиях добавьте ключ в текстовом редакторе; Claude Code загружает файл, содержащий этот ключ. В Desktop учитывается версия Claude Code на вкладке Code, а не версия в вашем терминале.
Аутентификация и поставщики
Предоставляйте учётные данные через вспомогательные скрипты и, для организаций, принудительно установите метод входа или организацию. См. Аутентификация.
allowedProviders
Перечислите сервисы, через которые машина может обращаться к Claude, такие как Anthropic API, Amazon Bedrock или LLM-шлюз. Сессия на поставщике, который не указан в списке, отклоняется при запуске, при входе и когда она в следующий раз обращается к API, поэтому переключение на неуказанного поставщика во время сессии также отклоняется. Сообщение об отказе указывает, что выбрало поставщика и какие шаги предпринять для продолжения. Требуется Claude Code v2.1.285 или позже.
- Scope:
Managed. Список, который устанавливают собственные источники администратора машины, политики MDM и файлы управляемых настроек, продолжает применяться, когда управляемые сервером настройки также предоставляют свой: сессия может тогда использовать только поставщиков из обоих списков, поэтому управляемый сервером список может сузить то, что разрешает машина, но никогда не расширить это. Какой из источников машины сallowedProvidersучитывается, определяется тем, как Claude Code объединяет управляемые источники. Список, доставленный только через управляемые сервером настройки, достигает только тех сессий, которые получают управляемые сервером настройки. - Type: массив строк, каждая из которых — одно из следующих значений:
"anthropic": Anthropic API на собственном хосте Anthropic, через вход claude.ai или Console или API-ключ. Объедините это сforceLoginMethodилиforceLoginOrgUUID, чтобы также ограничить вход"bedrock": Amazon Bedrock"vertex": Google Cloud's Agent Platform, ранее Vertex AI"foundry": Microsoft Foundry"anthropicAws": Claude Platform on AWS"mantle": эндпоинт Mantle Amazon Bedrock. Сессия, которая запускает Mantle вместе с Invoke API, использует обоих поставщиков, поэтому перечислите для неё"bedrock"и"mantle"вместе"customEndpoint": Anthropic API или API облачного поставщика, отправляемые на другой хост, например LLM-шлюз, указанный вANTHROPIC_BASE_URLили в переменной эндпоинта поставщика, такой какANTHROPIC_BEDROCK_BASE_URL. Claude Code допускает это только для точного значения, которое закрепляет управляемый блокenv"gateway": вход через Cloud gateway
- Default: не установлено, поэтому можно использовать любого поставщика
{
"allowedProviders": ["anthropic", "bedrock"]
}
Запись каждого облачного поставщика означает собственный сервис этого поставщика, включая его региональные, FIPS и приватные эндпоинты.
Запись, которую Claude Code не распознаёт как имя поставщика, отбрасывается с уведомлением, а остальная часть списка остаётся в силе. С пустым списком или списком, каждая запись которого не распознана, Claude Code отклоняет всех поставщиков и не запускается на машине.
Эндпоинты, которым нужен pin в управляемом env
Pin — это значение переменной эндпоинта, установленное в управляемом блоке env. Когда сессия отправляет трафик поставщика куда-то, кроме собственного сервиса этого поставщика, Claude Code допускает это, только если значение сессии совпадает с pin. Pin нужен следующим эндпоинтам:
- Сессии
"customEndpoint": переменная, которая указывает хост, напримерANTHROPIC_BASE_URL - Amazon Bedrock: переменные AWS SDK
AWS_ENDPOINT_URL,AWS_ENDPOINT_URL_BEDROCKиAWS_ENDPOINT_URL_BEDROCK_RUNTIME, когда они указывают за пределы собственного сервиса Bedrock. Сессия остаётся под"bedrock", а не"customEndpoint" - URL входа через шлюз: сессия остаётся под
"gateway", иforceLoginGatewayUrlтакже считается pin
Какие блоки env считаются pin, зависит от того, где установлен список:
- Источник администратора на машине устанавливает список: учитываются только блоки
envсобственных источников администратора машины - Список устанавливают только управляемые сервером настройки: значение
envв этих управляемых сервером настройках также учитывается
Список не оценивает переменные учётных данных и арендатора облачного поставщика или сетевой путь, такие как HTTPS_PROXY и настройки сертификатов. Установите их для всего парка машин в управляемом блоке env.
apiKeyHelper
Запустите собственную команду для создания учётных данных, которые Claude Code отправляет с запросами к модели. Claude Code запускает команду через системную оболочку, /bin/sh на macOS и Linux и cmd на Windows, и отправляет её вывод как в заголовке X-Api-Key, так и в Authorization: Bearer. Используйте это для динамических или ротируемых учётных данных, таких как краткосрочные токены, полученные из хранилища.
- Scope:
Any file - Type: строка, командная строка оболочки
- Default: не установлено, поэтому Claude Code не запускает помощник
{
"apiKeyHelper": "/bin/generate_temp_api_key.sh"
}
Claude Code кэширует значение и повторно запускает команду в следующих случаях:
- После истечения времени жизни кэша, пять минут по умолчанию или интервал, который вы установили с помощью
CLAUDE_CODE_API_KEY_HELPER_TTL_MS. - Когда запрос к API Anthropic, напрямую или через LLM-шлюз, завершается с ошибкой
401или403. - Перед отправкой запроса к API Anthropic, напрямую или через LLM-шлюз, когда кэшированный вывод — это JWT, который истёк после того, как помощник его создал. Требуется Claude Code v2.1.246 или позже.
Последние два случая применяются, только когда вывод помощника — это учётные данные, которые отправляет Claude Code, и ANTHROPIC_AUTH_TOKEN не установлен.
В интерактивных сессиях, когда команда поступает из настроек проекта или локальных настроек, Claude Code не запускает её до тех пор, пока вы не примете запрос доверия к рабочему пространству. См. Управление учётными данными.
awsAuthRefresh
Запустите собственную команду, такую как aws sso login, для обновления учётных данных в вашем каталоге .aws, когда те, которые есть у Claude Code для Amazon Bedrock, перестают работать. Claude Code сначала проверяет текущие учётные данные через STS и запускает команду, только когда эта проверка не проходит, затем читает обновлённый каталог .aws.
Когда проверка одновременно не проходит в нескольких процессах Claude Code, использующих одну и ту же команду и учётные данные, например в отдельных терминалах или окнах IDE, один процесс запускает команду, а остальные ждут результата этого запуска, не запуская команду сами. Процесс, который прождал 60 секунд с ожидающим запросом, запускает команду сам. Чтобы отключить это, установите CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK в 1.
- Scope:
Any file - Type: строка, командная строка оболочки
- Default: не установлено, поэтому Claude Code не обновляет учётные данные AWS за вас
{
"awsAuthRefresh": "aws sso login --profile myprofile"
}
Используйте этот ключ, когда ваш процесс обновления записывает в .aws; используйте awsCredentialExport, когда он вместо этого выводит учётные данные. См. расширенную конфигурацию учётных данных.
awsCredentialExport
Запустите собственную команду, которая выводит учётные данные AWS в формате JSON, чтобы Claude Code мог вызывать Amazon Bedrock с учётными данными, которые не находятся в вашем каталоге .aws. Claude Code принимает форму вывода aws sts и плоскую форму aws configure export-credentials и ограничивает учётные данные своим собственным клиентом Bedrock, поэтому команды оболочки, которые запускает Claude, по-прежнему видят ваши окружающие учётные данные.
- Scope:
Any file - Type: строка, командная строка оболочки
- Default: не установлено, поэтому Claude Code использует окружающую цепочку учётных данных AWS
{
"awsCredentialExport": "/bin/generate_aws_grant.sh"
}
В отличие от awsAuthRefresh, Claude Code всегда запускает эту команду, когда она установлена, без предварительной проверки окружающих учётных данных. См. расширенную конфигурацию учётных данных.
forceLoginMethod
Ограничьте, с каким типом учётной записи люди могут входить. Установите "claudeai", чтобы разрешить только учётные записи claude.ai, "console", чтобы разрешить только учётные записи Claude Console, или "gateway", чтобы направлять людей на облачный шлюз вместо входа первой стороны. Администраторы устанавливают это в управляемых настройках и сочетают с forceLoginOrgUUID, чтобы входы разработчиков в claude.ai оставались внутри одной организации. Если вы установите значение "claudeai" или "console" в любом файле настроек, Claude Code также перестаёт предлагать вход в Console без ключа в сессиях, к которым применяется этот файл.
- Scope:
Any file. Claude Code учитывает"gateway"из тех же источников, что иforceLoginGatewayUrl, и рассматривает его как неустановленное значение во всех остальных. - Type: строка, одно из значений:
"claudeai": входить могут только учётные записи claude.ai"console": входить могут только учётные записи Claude Console"gateway": Claude Code направляет людей на облачный шлюз вместо входа первой стороны
- Default: не установлено, поэтому люди выбирают метод входа сами
{
"forceLoginMethod": "claudeai"
}
Каждый путь входа первой стороны применяет ограничение, включая расширение VS Code, Agent SDK, claude setup-token и /install-github-app, за исключением интерактивного экрана входа в терминале, доступного через /login или первоначальную настройку, который предварительно выбирает метод без его принудительного применения. До v2.1.212 ограничение применялось только при входе через терминал. См. Ограничить вход вашей организацией, чтобы узнать, как обрабатываются каждый путь входа, учётные данные окружения и сторонние поставщики.
Когда управляемый источник на машине устанавливает "gateway", Claude Code не использует оставшийся вход, API-ключ или учётные данные apiKeyHelper. См. Политика администратора требует вход через облачный шлюз, чтобы узнать, какое сообщение выдаёт каждый из них. Если вы выбираете облачного поставщика через CLAUDE_CODE_USE_BEDROCK или аналогичную переменную окружения, сессии не требуется вход через шлюз. До v2.1.261 Claude Code использовал оставшийся вход на таких машинах.
forceLoginGatewayUrl
Установите URL шлюза, к которому подключается экран облачного шлюза /login, чтобы люди попадали на ваш облачный шлюз без ввода его адреса. На экране нет поля URL: если этот ключ установлен, экран показывает URL вашего шлюза и подключается, когда человек нажимает Enter; без него экран предлагает обратиться к IT-администратору.
В управляемых настройках либо этот ключ, либо forceLoginMethod: "gateway" делает машину доступной только через шлюз, за исключением сессий, которые выбирают облачного поставщика с помощью CLAUDE_CODE_USE_*. Тогда /login открывается на экране облачного шлюза без выбора метода входа. См. Политика администратора требует вход через облачный шлюз, чтобы узнать, что происходит с оставшимся входом первой стороны или API-ключом. Установите оба ключа, чтобы экран подключался, а не показывал ошибку.
- Scope:
User or managed. Читается из управляемого источника на машине:managed-settings.json, plist macOS или реестра Windows HKLM, или помощника политики. На машине, где нет ни одного из них, Claude Code v2.1.295 или позже также читает его из пользовательских настроек. Claude Code игнорирует его в HKCU и управляемых сервером настройках. - Type: строка, полный URL, включая схему
- Default: не установлено, поэтому экран облачного шлюза показывает ошибку с предложением обратиться к IT-администратору
{
"forceLoginGatewayUrl": "https://claude-gateway.example.com"
}
Если значение не является действительным URL, экран входа сообщает об этом, а остальная часть файла управляемых настроек по-прежнему применяется. См. Установить URL шлюза.
forceLoginOrgUUID
Из управляемого источника требуйте, чтобы входы с учётной записью claude.ai принадлежали одной организации Anthropic, указанной как один UUID, или любой из нескольких организаций, указанных как массив. Из любого файла настроек Claude Code также использует один UUID для предварительного выбора этой организации во время входа в claude.ai или Claude Console и ничего не выбирает предварительно для массива. Если вы установите ключ в любом файле настроек, Claude Code также перестаёт предлагать вход в Console без ключа в сессиях, к которым применяется этот файл, и вместо этого создаёт API-ключ.
- Scope:
Any file. Ограничение применяет только управляемый источник; один UUID в любом другом файле настроек предварительно выбирает организацию во время входа, не ограничивая его. - Type: строка, один UUID, или массив строк, несколько UUID
- Default: не установлено, поэтому может входить любая организация
Этот пример принимает входы из любой из двух организаций без предварительного выбора одной из них:
{
"forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]
}
Если управляемый источник устанавливает пустой массив или значение, которое не является строкой или массивом строк, пользователи, входящие с учётной записью Anthropic, не могут запустить Claude Code или завершить вход. Они видят сообщение, в котором указан forceLoginOrgUUID и предлагается обратиться к администратору. policyHelper, который выдаёт значение неправильного типа, вместо этого завершает свой запуск с ошибкой.
См. Ограничить вход вашей организацией, чтобы узнать, как Claude Code обрабатывает входы в Claude Console, другие пути входа и учётные данные окружения.
gatewayInternalNetworks
Объявите публичные блоки IPv4, из которых ваша организация нумерует свою внутреннюю сеть, чтобы /login принимал облачный шлюз в них. Требуется Claude Code v2.1.268 или позже.
Без этого ключа /login подключается к любому шлюзу на приватном адресе и больше ни к чему. С ним /login также принимает шлюз внутри указанного блока, только через прямое соединение. Собственный адрес машины в этом соединении также должен находиться внутри того же блока.
- Scope:
Managed. Читается только из источника на машине:managed-settings.json, plist macOS или реестра Windows HKLM, или помощника политики. Claude Code игнорирует его в HKCU и управляемых сервером настройках. - Type: массив строк, не более четырёх блоков IPv4 CIDR, каждый от
/8до/32, не пересекающихся друг с другом и ни один из которых не пересекается с приватным пространством. - Default: не установлено, поэтому
/loginпринимает только шлюзы на приватных адресах
{
"gatewayInternalNetworks": ["203.0.113.0/24"]
}
Замените диапазон для документации в примере на ваш собственный блок. Claude Code отклоняет диапазоны для документации, диапазоны, которые локально используют клиенты VPN и NAT64, и зарезервированное пространство, из которого не нумеруется ни одна сеть, например многоадресное.
Если запись недействительна или значение не является списком строк, /login называет проблему и отклоняет любой новый вход через шлюз на машине до тех пор, пока вы не исправите значение. Существующие входы продолжают работать. См. Разрешить шлюз в принадлежащем вам публичном адресном пространстве, чтобы узнать полные правила и то, что видят разработчики.
gcpAuthRefresh
Запустите собственную команду для обновления Google Cloud Application Default Credentials, когда Claude Code обнаруживает, что они истекли или не могут быть загружены, чтобы запросы к Google Cloud's Agent Platform продолжали работать без повторной аутентификации вручную.
Когда несколько процессов Claude Code, использующих одну и ту же команду и учётные данные, например в отдельных терминалах или окнах IDE, одновременно обнаруживают, что учётные данные истекли, один процесс запускает команду, а остальные ждут результата этого запуска, не запуская команду сами. Процесс, который прождал 60 секунд с ожидающим запросом, запускает команду сам. Чтобы отключить это, установите CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK в 1.
- Scope:
Any file - Type: строка, командная строка оболочки
- Default: не установлено, поэтому ошибка учётных данных Claude Code предлагает вам самостоятельно выполнить
gcloud auth application-default login
{
"gcpAuthRefresh": "gcloud auth application-default login"
}
См. расширенную конфигурацию учётных данных.
otelHeadersHelper
Запустите собственную команду для создания заголовков, которые Claude Code отправляет с экспортами OpenTelemetry, для бэкендов с ротируемыми токенами. Claude Code запускает её при старте и затем периодически и ожидает в stdout объект JSON со строковыми значениями заголовков.
- Scope:
Any file - Type: строка, путь к исполняемому файлу или командная строка оболочки
- Default: не установлено, поэтому Claude Code не добавляет заголовки, созданные помощником
{
"otelHeadersHelper": "/bin/generate_otel_headers.sh"
}
Установите интервал обновления с помощью CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS. См. Динамические заголовки, чтобы узнать требования к скрипту и что происходит, когда помощник завершается с ошибкой.
Обновления и версионирование
Выберите канал обновления и, для организаций, закрепите версии, которые люди могут запускать. См. Обновление Claude Code.
autoUpdatesChannel
Выберите, какой канал выпуска следуют фоновые автоматические обновления и claude update. Установите "stable" для версии, которая обычно имеет возраст около одной недели и пропускает выпуски с серьёзными регрессиями, или "latest" для самого последнего выпуска.
- Область действия:
Any file. Установите это в управляемых параметрах, чтобы применить один канал во всей организации. - Тип: строка, одно из:
"latest": обновления следуют самому последнему выпуску"stable": обновления следуют версии, которая обычно имеет возраст около одной недели и пропускает выпуски с серьёзными регрессиями
- По умолчанию: не установлено, поэтому Claude Code следует
"latest"
{
"autoUpdatesChannel": "stable"
}
Claude Code записывает "stable" в ваши пользовательские параметры, когда вы выбираете это в разделе Auto-update channel в /config, и удаляет ключ, когда вы переключаетесь обратно на latest там. claude install stable и claude install latest также сохраняют выбранный вами канал. Переключение с "latest" на "stable" в /config спрашивает, разрешить ли понижение версии или остаться на текущей версии; остаток устанавливает minimumVersion. Установки Homebrew игнорируют этот ключ: пакет claude-code отслеживает stable, а claude-code@latest отслеживает latest, и claude update полагается на brew upgrade. Чтобы полностью отключить автоматические обновления, установите DISABLE_AUTOUPDATER в env.
minimumVersion
Предотвратите фоновые автоматические обновления и claude update от установки любой версии ниже этой, поэтому переход на канал "stable" не понизит вас с более новой сборки "latest". Claude Code записывает этот ключ для вас, когда вы выбираете остаться на текущей версии при переключении каналов в /config, и очищает его, когда вы переключаетесь обратно на "latest".
- Область действия:
Any file. Установите это в управляемых параметрах, чтобы закрепить минимум на уровне организации, который пользовательские и проектные параметры не могут снизить. - Тип: строка, номер версии, такой как
"2.1.100"; значение, которое не является допустимой версией, игнорируется - По умолчанию: не установлено, поэтому обновления могут установить любую версию, которую предлагает канал
Этот пример следует стабильному каналу и отказывается устанавливать любую версию ниже 2.1.100:
{
"autoUpdatesChannel": "stable",
"minimumVersion": "2.1.100"
}
Этот ключ только ограничивает обновления. Чтобы заставить Claude Code отказаться запускаться ниже версии, используйте вместо этого requiredMinimumVersion. См. Закрепить минимальную версию.
requiredMaximumVersion
Установите самую новую версию Claude Code, которую разрешает запускать ваша организация. Когда запущенная версия новее, Claude Code выходит при запуске и сообщает пользователю установить одобренную версию через утверждённый вашей организацией метод; claude install <version> также может работать. Требует Claude Code v2.1.163 или позже.
- Область действия:
Managed. Claude Code не выдаёт предупреждение, когда игнорирует ключ в других местах. - Тип: строка, номер версии, такой как
"2.1.150"; значение, которое не является допустимой версией, игнорируется - По умолчанию: не установлено, поэтому потолок не применяется
{
"requiredMaximumVersion": "2.1.150"
}
Фоновые автоматические обновления и claude update пропускают версии выше потолка, поэтому установка внутри диапазона остаётся внутри него. claude update, claude install и claude doctor продолжают работать выше потолка, чтобы пользователи могли восстановиться. Объедините это с requiredMinimumVersion, чтобы применить диапазон.
requiredMinimumVersion
Установите самую старую версию Claude Code, которую разрешает запускать ваша организация. Когда запущенная версия старше, Claude Code выходит при запуске и сообщает пользователю обновиться через утверждённый вашей организацией метод. Проверка выполняется только при запуске, поэтому уже запущенный сеанс продолжает работу. Требует Claude Code v2.1.163 или позже.
- Область действия:
Managed. Claude Code не выдаёт предупреждение, когда игнорирует ключ в других местах. - Тип: строка, номер версии, такой как
"2.1.150"; значение, которое не является допустимой версией, игнорируется - По умолчанию: не установлено, поэтому пол не применяется
{
"requiredMinimumVersion": "2.1.150"
}
claude update, claude install и claude doctor продолжают работать ниже пола, чтобы пользователи могли восстановиться. В отличие от minimumVersion, который только предотвращает понижение версии, этот ключ блокирует запуск. Объедините это с requiredMaximumVersion, чтобы применить диапазон.
Tools
Отключите определённые инструменты в приложении Claude Code для рабочего стола. Терминальный CLI игнорирует эти ключи. Для самих инструментов см. Инструменты, доступные Claude.
browserExternalPageTools
Запретите Claude использовать свои инструменты для чтения или действия на внешних страницах в панели Browser приложения для рабочего стола. Люди в вашей организации по-прежнему могут открывать внешние сайты самостоятельно, а локальные предпросмотры dev-сервера продолжают работать с инструментами Claude. Приложение для рабочего стола читает этот ключ; терминальный CLI игнорирует его.
- Scope:
Managed - Type: string,
"disabled"; приложение для рабочего стола также принимает"disable", в любом случае - Default: не установлено, поэтому инструменты Claude работают на внешних страницах
{
"browserExternalPageTools": "disabled"
}
Любое другое значение оставляет инструменты Claude включёнными, и непустая строка, которая не является одним из двух принятых значений, регистрирует предупреждение. Чтобы заблокировать внешние сайты для людей и Claude одновременно, установите disableBrowserExternalNavigation вместо этого. См. Ограничить внешний просмотр для вашей организации.
disableBrowserExternalNavigation
Отключите внешний просмотр в панели Browser приложения для рабочего стола для людей и Claude одновременно. Предпросмотры localhost dev-сервера продолжают работать. Приложение для рабочего стола читает этот ключ; терминальный CLI игнорирует его.
- Scope:
Managed - Type: Boolean; только JSON Boolean
trueвступает в силуtrue: приложение для рабочего стола отключает внешний просмотр в панели Browser для людей и Claude одновременно; предпросмотры localhost продолжают работатьfalse: внешний просмотр остаётся включённым
- Default: не установлено, поэтому внешний просмотр включён
{
"disableBrowserExternalNavigation": true
}
Приложение для рабочего стола игнорирует любое другое значение, и значение, которое не является Boolean, такое как строка "true" или 1, также регистрирует предупреждение. Чтобы оставить внешний просмотр включённым, но отключить инструменты Claude на внешних страницах, установите browserExternalPageTools вместо этого. См. Ограничить внешний просмотр для вашей организации.
disableMobileSimulatorTools
Заблокируйте инструменты Claude для панели iOS Simulator приложения для рабочего стола. Люди сохраняют ручное использование панели; удаляется только доступ Claude, и никто не может включить его обратно из приложения. Приложение для рабочего стола читает этот ключ; терминальный CLI игнорирует его.
- Scope:
Managed - Type: Boolean; только JSON Boolean
trueвступает в силуtrue: приложение для рабочего стола блокирует инструменты Claude для панели iOS Simulatorfalse: инструменты симулятора Claude следуют переключателю настроек каждого человека в приложении для рабочего стола
- Default: не установлено, поэтому инструменты симулятора Claude следуют переключателю настроек каждого человека в приложении для рабочего стола
{
"disableMobileSimulatorTools": true
}
Приложение для рабочего стола игнорирует любое другое значение, и значение, которое не является Boolean, такое как строка "true" или 1, также регистрирует предупреждение.
Конфиденциальность и телеметрия
Контролируйте, как долго Claude Code хранит данные сеанса и что он отправляет. Переключатели, которые отключают метрики использования и отчеты об ошибках, являются переменными окружения, а не ключами параметров: установите DISABLE_TELEMETRY, DISABLE_ERROR_REPORTING или CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC в ключе env или в оболочке. Услуги телеметрии описывает, что отключает каждый из них. Два исключения отключаются из файла параметров: feedbackDrafts ниже для отзывов, составленных Claude, и feedbackSurveyRate ниже для опроса сеанса.
cleanupPeriodDays
Установите, сколько дней Claude Code хранит стенограммы сеансов и другие данные приложения перед их удалением. Claude Code выполняет удаление как фоновую очистку после запуска сеанса, при условии, что он может безопасно определить период хранения. Очистка удаляет стенограммы без отображения сообщения, поэтому сеанс, который вы не использовали дольше, чем период хранения, больше не появляется в средстве выбора /resume.
- Область:
Any file - Тип: количество дней, целое число, минимум
1 - По умолчанию:
30
{
"cleanupPeriodDays": 20
}
Установка 0 не пройдет проверку, поэтому выберите большое значение, например 3650 для длительного хранения. Чтобы остановить Claude Code от записи стенограмм вообще, см. Хранилище в виде простого текста.
desktopSessionCleanupPeriodDays
Установите ограничение по возрасту в днях для транскриптов сессий, которые вы запустили или последними продолжили в Claude Desktop или Cowork. Без этого ключа Claude Code хранит эти транскрипты независимо от возраста. Claude Code удаляет каждый из них, как только он становится старше как этого ограничения, так и cleanupPeriodDays, поэтому при cleanupPeriodDays со значением по умолчанию 30 значение 7 все равно сохраняет их 30 дней. В разделе Автоматическая очистка перечислены случаи, когда вместо этого применяется cleanupPeriodDays, а Claude Code игнорирует этот ключ. Требуется Claude Code v2.1.248 или более поздней версии.
- Область:
User or managed. Claude Code также читает ключ из файла, который вы передаете с--settings, и игнорирует его в параметрах проекта и локальных параметрах. - Тип: количество дней, целое число, минимум
0 - По умолчанию:
0, что не устанавливает ограничение по возрасту
{
"desktopSessionCleanupPeriodDays": 90
}
feedbackDrafts
Контролируйте отзывы, составленные Claude: может ли Claude ставить в очередь черновики отзывов для вашего рассмотрения и показывает ли Claude Code карточку, когда Claude ставит один в очередь.
- Область:
User or managed - Тип: строка, одна из
"notify","quiet"или"off""notify": Claude Code показывает карточку над приглашением, когда Claude ставит черновик в очередь, до трех карточек в сеансе по умолчанию"quiet": Claude составляет черновики без карточки. Вы видите количество поставленных в очередь черновиков в нижнем колонтитуле приглашения и рассматриваете их в/feedback"off": Claude Code удаляет инструмент SendFeedback, поэтому Claude не может ставить черновики в очередь
- По умолчанию:
"notify" - Переопределения для каждого сеанса:
CLAUDE_CODE_SEND_FEEDBACKустановленный на0отключает функцию для одного сеанса
{
"feedbackDrafts": "quiet"
}
Появляется в /config как Claude-drafted feedback, который записывает этот ключ в ваши пользовательские параметры. Вы видите строку /config только в сеансах где Claude может составлять отзывы; установка "off" не скрывает его, поэтому вы можете снова включить функцию из той же строки. Значение в управляемых параметрах имеет приоритет над вашим пользовательским параметром, поэтому когда администратор устанавливает этот ключ, строка показывает управляемое значение, и его изменение не имеет эффекта. Claude Code игнорирует этот ключ в параметрах проекта и локальных параметрах.
feedbackSurveyRate
Установите вероятность того, что опрос качества сеанса появится, когда сеанс имеет право на него. Установите 0, чтобы опрос не появлялся.
- Область:
Any file - Тип: число между
0и1 - По умолчанию: не установлено, поэтому Claude Code использует скорость, которую Anthropic устанавливает удаленно, или встроенную скорость
0.005на Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, которые не получают удаленную конфигурацию - Переопределения для каждого сеанса:
CLAUDE_CODE_DISABLE_FEEDBACK_SURVEYустановленный на1отключает опрос для одного сеанса независимо от скорости, которую устанавливает этот ключ
{
"feedbackSurveyRate": 0.05
}
Та же скорость применяется к опросу в расширении VS Code.
skipWebFetchPreflight
Пропустите проверку безопасности домена WebFetch, которая отправляет каждое запрашиваемое имя хоста на api.anthropic.com перед выборкой. Установите true в окружениях, которые блокируют трафик к Anthropic, таких как Amazon Bedrock, Google Cloud's Agent Platform или развертывания Microsoft Foundry с ограничивающим исходящим трафиком.
- Область:
Any file - Тип: Boolean
true: Claude Code пропускает проверку безопасности домена WebFetchfalse: проверка выполняется перед первой выборкой для каждого имени хоста в сеансе и снова для имени хоста, чья более ранняя проверка была заблокирована или не удалась
- По умолчанию: не установлено, поэтому проверка выполняется перед первой выборкой для каждого имени хоста в сеансе
{
"skipWebFetchPreflight": true
}
С пропущенной проверкой WebFetch пытается использовать любой URL без консультации со списком блокировки, поэтому объедините его с правилами разрешений WebFetch, если вам нужно ограничить, какие домены может достичь Claude.
Корпоративные и управляемые настройки
Ключи, которые организация использует для вычисления, обновления и объединения управляемых настроек. См. Настройка управляемых настроек.
disableSideloadFlags
Отклонять при запуске флаги CLI --plugin-dir, --plugin-url, --agents и --mcp-config, с помощью которых пользователи иначе могли бы обойти strictKnownMarketplaces для одного запуска. Claude Code завершает работу с ошибкой, в которой перечислены отклонённые флаги. В облачных сессиях Claude Code вместо этого запускает сессию и отбрасывает все переданные сервером записи --mcp-config, кроме внутрипроцессных записей type: "sdk" и инструментов Slack в сессии Claude Tag. Требуется Claude Code v2.1.193 или новее.
- Область действия:
Managed - Тип: Boolean
true: Claude Code отклоняет--plugin-dir,--plugin-url,--agentsи--mcp-configпри запуске и завершает работу с ошибкой, в которой они перечислены. В облачных сессиях он вместо этого запускает сессию и отбрасывает все переданные сервером записи--mcp-config, кроме внутрипроцессных записейtype: "sdk"и инструментов Slack в сессии Claude Tagfalse: Claude Code принимает эти флаги
- По умолчанию:
false
{
"disableSideloadFlags": true
}
Claude Code по-прежнему принимает --mcp-config, если все его серверы являются внутрипроцессными записями type: "sdk", поэтому Agent SDK и расширение VS Code продолжают работать. Пользователи по-прежнему могут добавлять серверы с помощью claude mcp add или файла .mcp.json; для управления отдельными серверами также задайте allowedMcpServers. Требуется Claude Code v2.1.193 или новее.
disableSideloadFlags также отклоняет папки плагинов из следующих источников:
- Переменная окружения
CLAUDE_CODE_PLUGIN_DIRS: если переменная указывает папку плагина, Claude Code завершает работу при запуске с ошибкой, в которой названа переменная и сказано, что её нужно удалить. Требуется Claude Code v2.1.280 или новее - Параметр Agent SDK
addPlugins: когда приложение передаёт папки плагинов вreloadPlugins()черезaddPlugins, этот вызов завершается ошибкой. Сессия продолжает работать с уже загруженными плагинами. Требуется Claude Code v2.1.301 или новее
В облачных сессиях Claude Code также игнорирует переданные сервером обновления MCP в ходе сессии — механизм, стоящий за конфигурацией облачных сессий и вызовами SDK setMcpServers(), которые доходят до этих сессий. Внутрипроцессные записи type: "sdk" и инструменты Slack в сессии Claude Tag здесь также остаются исключением. До v2.1.268 как это отбрасывание, так и отбрасывание при запуске также удаляли инструменты Slack в сессии Claude Tag. До v2.1.239 переданный сервером --mcp-config блокировал запуск облачной сессии.
Настольное приложение само управляет некоторыми плагинами, включая плагины, синхронизированные с claude.ai, и плагины, которые ваша организация развёртывает через приложение. Если вы развёртываете этот ключ на устройство через MDM, политику на уровне ОС или файл управляемых настроек, настольное приложение не передаёт эти плагины следующим сессиям на этом устройстве:
- Сессии Code на компьютере пользователя: они также запускаются без скиллов, включённых для учётной записи пользователя на claude.ai. Плагины, которые Claude Code устанавливает из маркетплейсов, указанных в ваших управляемых настройках, по-прежнему загружаются. В Claude Desktop on 3P MCP-серверы из плагинов, которые вы развёртываете в каталог
org-pluginsустройства, также остаются доступными, потому что настольное приложение подключается к ним само. До Claude Desktop v1.37937.0 эти сессии вместо этого завершались сбоем при запуске. - Сессии Cowork на компьютере пользователя: скиллы внутри этих плагинов и скиллы, включённые для учётной записи пользователя на claude.ai, остаются доступными. В Claude Desktop on 3P MCP-серверы из плагинов, которые вы развёртываете в каталог
org-pluginsустройства, также остаются доступными, потому что настольное приложение подключается к ним само. До Claude Desktop v1.44121.0 эти сессии вместо этого завершались сбоем при запуске.
forceRemoteSettingsRefresh
Блокировать запуск CLI, пока Claude Code заново не получит настройки, управляемые сервером. Если получить их не удаётся, Claude Code завершает работу, а не продолжает с кэшированными настройками или без них. Задайте этот ключ, если ваша среда не допускает даже короткого промежутка времени, когда сессия работает без управляемой политики.
Если ключ не задан, Claude Code не блокирует запуск ради получения настроек, хотя, когда разработчик входит в систему при запуске, он ждёт получения настроек до пяти секунд. Сессия через облачный шлюз всегда ждёт и завершает работу, если шлюз недоступен.
- Область действия:
Managed. Claude Code учитывает значениеtrueиз любого управляемого источника, контролируемого администратором, даже если это не источник с наивысшим приоритетом. - Тип: Boolean
true: Claude Code блокирует запуск, пока заново не получит настройки, управляемые сервером, и завершает работу, если получить их не удалосьfalse: Claude Code не блокирует запуск ради получения настроек, хотя при запуске со входом в систему ждёт их получения до пяти секунд
- По умолчанию:
false
{
"forceRemoteSettingsRefresh": true
}
Задайте его в профиле MDM или в файле управляемых настроек, чтобы обеспечить безопасный отказ при запуске (fail-closed) ещё до поступления первых данных от сервера. Claude Code выполняет эту проверку только в сессиях, которые получают настройки, управляемые сервером, поэтому сессия, которая их не получает, запускается без ожидания. Подкоманды claude auth освобождены от проверки, чтобы пользователи могли повторно пройти аутентификацию, если получение настроек не удаётся из-за истёкших учётных данных. См. Обеспечение безопасного отказа при запуске.
managedSourcesBehavior
Выберите, применяет ли Claude Code только управляемый источник с наивысшим приоритетом из тех, что предоставляет ваша организация, или объединяет все предоставляемые ею источники администратора. По умолчанию Claude Code берёт источник с наивысшим приоритетом, содержащий ключ политики, и игнорирует остальные. Ключ политики — это любой ключ настроек, кроме этого и wslInheritsWindowsSettings. При поведении по умолчанию, как только настройки, управляемые сервером, или политика MDM передают ключ политики, файл managed-settings.json вносит только ключи, которые Claude Code читает из каждого источника администратора. При значении "merge" каждый предоставляемый вами источник администратора вносит свои ключи в единую объединённую политику. Требуется Claude Code v2.1.242 или новее.
Задавайте "merge" только там, где каждый источник, стоящий по рангу ниже вашего самого приоритетного, находится под контролем администратора, потому что Claude Code тогда добавляет в политику записи из нижестоящего источника, например правила permissions.allow.
- Область действия:
Managed. Claude Code читает этот ключ из источника с наивысшим приоритетом, содержащего либо этот ключ, либо ключ политики, и игнорирует этот ключ во всех источниках ниже по рангу, поэтому нижестоящий источник не может сам включить объединение с вышестоящим источником. Ни реестр Windows HKCU, ни родительские настройки от встраивающего хоста в объединении не участвуют. - Тип: string, одно из значений:
"first-wins": политику предоставляет источник с наивысшим приоритетом, содержащий ключ политики, а нижестоящие источники вносят только ключи, которые Claude Code читает из каждого источника администратора"merge": каждый предоставляемый вами источник администратора вносит свои ключи, которые объединяются по приведённым ниже правилам
- По умолчанию:
"first-wins"
Передавайте этот ключ в источнике с наивысшим приоритетом из тех, что вы развёртываете. Компьютеру, который никогда не получает настройки, управляемые сервером, этот ключ нужен также в профиле MDM, потому что Claude Code читает ключ из источника с наивысшим приоритетом, содержащего его или ключ политики. Файл managed-settings.json — источник администратора с самым низким рангом, поэтому у заданного в нём "merge" нет нижестоящего источника для объединения. В настройках, управляемых сервером, ключ выглядит так:
{
"managedSourcesBehavior": "merge"
}
При "merge" Claude Code объединяет каждый ключ в зависимости от его вида. В этой таблице приведено правило для каждого вида. В строках «Списки разрешённых значений для ограничений», «Значения, берущиеся целиком» и «Чтение только из источника с наивысшим приоритетом» перечислены все охватываемые ими ключи, а в остальных строках приведены примеры:
| Вид ключа | Как Claude Code его объединяет | Ключи |
|---|---|---|
| Списки | Объединяет записи из всех источников | permissions.allow, sandbox.network.allowedDomains и другие ключи-списки |
| Блокировки | Применяет самое строгое значение, заданное любым источником. Если ни один источник не задаёт строгое значение, применяет менее строгое значение только из самого приоритетного источника | allowManagedPermissionRulesOnly, permissions.disableBypassPermissionsMode и другие логические или перечислимые блокировки |
| Списки разрешённых значений для ограничений | Берёт список целиком из самого приоритетного источника, который его задаёт, не добавляя записи из нижестоящих источников. Если самый приоритетный источник его не задаёт, берёт его целиком из следующего источника ниже | availableModels, allowedMcpServers, allowedProviders, strictKnownMarketplaces, allowedChannelPlugins и цепочка fallbackModel |
| Значения, берущиеся целиком | Берёт значение целиком из самого приоритетного источника, который его задаёт, не объединяя записи или поля из нижестоящих источников. Если самый приоритетный источник его не задаёт, берёт его целиком из следующего источника ниже | sandbox.credentials.awsPairs, sandbox.ripgrep |
| Предоставляемые MCP-серверы | Объединяет имена серверов из всех источников. Если два источника задают одинаковое имя, применяет запись из вышестоящего источника целиком | managedMcpServers |
| Чтение только из источника с наивысшим приоритетом | Читает ключ только из источника с наивысшим приоритетом, содержащего ключ политики, поэтому значение нижестоящего источника игнорируется, даже если самый приоритетный источник не задаёт никакого значения | apiKeyHelper, awsAuthRefresh, awsCredentialExport, gcpAuthRefresh, otelHeadersHelper, proxyAuthHelper, forceLoginOrgUUID, значения "claudeai" и "console" ключа forceLoginMethod, parentSettingsBehavior, modelPicker, policyHelper, permissions.defaultMode |
env |
Объединяется по отдельным переменным во всех источниках администратора как при "first-wins", так и при "merge" |
env |
| Все остальные ключи | Берёт значение из самого приоритетного источника, который его задаёт | cleanupPeriodDays, model |
Получение sandbox.credentials.awsPairs и sandbox.ripgrep целиком требует Claude Code v2.1.257 или новее.
Для некоторых ключей действует дополнительное условие, которое не отражено в таблице:
policyHelper: Claude Code учитывает его, только если самый приоритетный источник, содержащий ключ политики, — это политика MDM или файл управляемых настроек, поэтому при настройках, управляемых сервером, он не применяется.modelOverrides: работает в паре сavailableModels. Claude Code берётmodelOverridesиз самого приоритетного источника, который его задаёт, если только вышестоящий источник не задаётavailableModelsбезmodelOverrides. В этом случае он игнорируетmodelOverridesиз всех источников.forceLoginGatewayUrl,gatewayInternalNetworksи значение"gateway"ключаforceLoginMethod: Claude Code никогда не читает ни один из них из настроек, управляемых сервером, поэтому значение там не применяется и не скрывает значение, заданное в политике MDM или файле управляемых настроек. Из источников администратора на компьютере их предоставляет только самый высокий по рангу источник, содержащий ключ политики, независимо от того, присутствуют ли также настройки, управляемые сервером.allowedProviders: после применения правила из таблицы результат по-прежнему ограничивается собственным списком компьютера, как указано в примечании об области действия в описании этого ключа.
Чтобы проверить, какие источники были объединены на компьютере, выполните /status и посмотрите строку Setting sources.
parentSettingsBehavior
Выберите, применяет ли Claude Code управляемые настройки, предоставленные процессом встраивающего хоста, например Agent SDK или расширением IDE, если также присутствует уровень управляемых настроек, развёрнутый администратором. При "first-wins" Claude Code отбрасывает настройки, предоставленные хостом; при "merge" он применяет их под уровнем администратора через фильтр, пропускающий только ограничения. Задайте "merge", когда хосту нужно передавать собственные ограничения запускаемым им сессиям, например когда Claude Desktop передаёт список разрешённых исходящих адресов шлюза.
- Область действия:
Managed. Claude Code читает его из управляемого источника с наивысшим приоритетом, контролируемого администратором. - Тип: string, одно из значений:
"first-wins": Claude Code отбрасывает настройки, предоставленные хостом, если присутствует уровень управляемых настроек, развёрнутый администратором"merge": Claude Code применяет настройки, предоставленные хостом, под уровнем администратора через фильтр, пропускающий только ограничения
- По умолчанию:
"first-wins"
{
"parentSettingsBehavior": "merge"
}
Этот ключ не действует, если уровня управляемых настроек, развёрнутого администратором, нет: тогда настройки хоста применяются как единственный управляемый уровень, по-прежнему отфильтрованные до ограничивающих значений. Об ограничениях фильтра и о том, как взаимодействуют управляемые источники, см. Родительские настройки от встраивающих хостов и Ограничение родительских настроек.
policyHelper
Запускать развёрнутый вами исполняемый файл, который вычисляет управляемые настройки при запуске, чтобы вы могли формировать политику на основе состояния устройства, идентичности или удалённого сервиса, а не статического файла. Claude Code запускает хелпер до того, как примет первый промпт, и использует выведенные им настройки как управляемые настройки сессии.
- Область действия:
Managed. Читается из plist macOS, реестра Windows HKLM или файла управляемых настроек. Claude Code читает ключ из управляемого источника с наивысшим приоритетом, содержащего ключ политики, и запускает хелпер, только если этот источник — один из этих трёх; он игнорирует ключ в настройках, управляемых сервером, в реестре HKCU и в родительских настройках, предоставленных хостом. - Тип: объект с полями
path,timeoutMsиrefreshIntervalMs - По умолчанию: не задано, поэтому хелпер не запускается
Если настройки, управляемые сервером, передают политику при запуске, они имеют приоритет над источником хелпера, и хелпер не запускается.
Если при последующем получении настроек выясняется, что настройки, управляемые сервером, удалены, Claude Code запускает хелпер в этот момент, а не ждёт следующего запуска. Его вывод определяет поведение до конца сессии, а неудачный запуск завершает сессию с тем же сообщением, что и неудачный запуск при старте.
В этом примере хелпер запускается с таймаутом 5 секунд и перезапускается каждые пять минут:
{
"policyHelper": {
"path": "/usr/local/bin/claude-policy",
"timeoutMs": 5000,
"refreshIntervalMs": 300000
}
}
Формирование вывода хелпера
Claude Code запускает хелпер без аргументов, устанавливает CLAUDE_CODE_VERSION в его окружении и читает из stdout JSON-конверт размером не более 1 MiB.
Поместите настройки под ключ managedSettings. Голый объект настроек без ключа managedSettings разбирается с неопределённым managedSettings и ничего не применяет, причём Claude Code не сообщает об ошибке:
{
"managedSettings": {
"permissions": { "deny": ["Read(//etc/secrets/**)"] }
}
}
Когда хелпер выводит managedSettings, этот объект становится единственным источником управляемых настроек для данного запуска: Claude Code игнорирует источники MDM, файла и HKCU, читает ключи, общие для всех источников, только из вывода хелпера и никогда не объединяет родительские настройки.
Проверка forceRemoteSettingsRefresh при запуске выполняется до хелпера и читает любой источник администратора. Хелпер, который завершается с кодом 0 и выводит конверт без managedSettings, не вносит управляемых настроек, и остальные источники применяются как обычно.
Сбои хелпера
Запуск хелпера завершается неудачей, если:
pathнарушает правила, описанные вpolicyHelper.path.- По пути
pathнет обычного файла. Claude Code проверяет наличие файла перед запуском хелпера в рамках того же лимитаtimeoutMs, поэтому неотвечающий сетевой диск может привести к неудачному запуску. - Хелпер завершается с ненулевым кодом, всё ещё работает по истечении
timeoutMsили вообще не запускается, например потому что не является исполняемым. - Хелпер записывает в stdout или stderr более 1 MiB.
- stdout не является одним JSON-объектом, или его
managedSettingsсодержит нарушение схемы, которое Claude Code не может исправить.
Если запуск при старте завершается неудачей, Claude Code выводит причину и отказывается запускаться. После ненулевого кода завершения причина включает stderr хелпера или его stdout, если stderr пуст. После таймаута в причине указывается лимит timeoutMs, но не приводится никакой вывод хелпера. Отказ распространяется на интерактивные сессии, claude -p, сессии Agent SDK, фоновые сессии и большинство подкоманд.
Этот отказ преднамеренный, поэтому хелпер, которому нужна устойчивость к сбоям, должен отдавать данные из собственного кэша и завершаться с кодом 0.
Если фоновое обновление завершается неудачей, Claude Code сохраняет в силе последнюю успешно полученную политику, а /status показывает неудачное обновление с его причиной, пока обновление не пройдёт успешно. Каждое обновление выполняется с тем же timeoutMs и по тем же правилам сбоев, что и запуск при старте.
С флагом --debug Claude Code записывает stderr хелпера от каждого запуска в лог отладки.
Claude Code сообщает о недопустимом значении policyHelper как об отброшенной записи и запускает сессию с остальными управляемыми настройками, не запуская хелпер. К недопустимым значениям относятся путь, указанный голой строкой, и timeoutMs ниже своего минимума.
Чтобы отключить хелпер, удалите ключ из источника, который его задаёт.
policyHelper.path
Укажите исполняемый файл хелпера, который запускает Claude Code. О том, что происходит, если путь нарушает приведённые ниже правила, см. Сбои хелпера.
- Область действия:
Managed. Читается из plist macOS, реестра Windows HKLM или файла управляемых настроек — там же, где читаетсяpolicyHelper. - Тип: string, абсолютный путь в нормализованной форме, без сегментов
.или..; в Windows — путь с буквой диска или UNC-путь, оканчивающийся на.exe - По умолчанию: нет; обязателен, если задан
policyHelper
{
"policyHelper": {
"path": "/usr/local/bin/claude-policy"
}
}
policyHelper.timeoutMs
Задайте, сколько Claude Code ждёт хелпер, прежде чем считать запуск неудачным. Запуск, завершившийся по таймауту, считается неудачным так же, как ненулевой код завершения, поэтому при старте Claude Code отказывается запускаться.
- Область действия:
Managed. Читается из plist macOS, реестра Windows HKLM или файла управляемых настроек — там же, где читаетсяpolicyHelper. - Тип: integer, миллисекунды, минимум
1000 - По умолчанию:
10000
{
"policyHelper": {
"path": "/usr/local/bin/claude-policy",
"timeoutMs": 5000
}
}
policyHelper.refreshIntervalMs
Заставить Claude Code периодически перезапускать хелпер в фоновом режиме, чтобы изменения политики доходили до работающей сессии. Если обновление проходит успешно, его вывод заменяет предыдущие управляемые настройки без перезапуска; если обновление завершается неудачей, Claude Code сохраняет уже имеющуюся политику.
- Область действия:
Managed. Читается из plist macOS, реестра Windows HKLM или файла управляемых настроек — там же, где читаетсяpolicyHelper. - Тип: integer, миллисекунды:
0, чтобы отключить обновление, иначе не менее60000 - По умолчанию: не задано, поэтому Claude Code запускает хелпер один раз при старте
В этом примере хелпер перезапускается каждые пять минут:
{
"policyHelper": {
"path": "/usr/local/bin/claude-policy",
"refreshIntervalMs": 300000
}
}
wslInheritsWindowsSettings
Заставить Claude Code в WSL читать управляемые настройки из цепочки политик Windows, в которой HKLM и файл управляемых настроек Windows имеют приоритет над /etc/claude-code, а HKCU стоит ниже. Пока цепочка включена, Claude Code читает /etc/claude-code только тогда, когда нет документа администратора Windows ни в значении реестра HKLM, ни в папке C:\Program Files\ClaudeCode\. Задайте этот ключ, чтобы распространить политику, которую вы уже развёртываете в Windows, на сессии WSL на том же компьютере, чтобы они следовали тем же правилам, что и сессии хоста. Claude Code учитывает его, только если он задан в ключе реестра HKLM или в файле управляемых настроек либо дополнительном файле (drop-in) в C:\Program Files\ClaudeCode\ — для записи в оба места требуются права администратора Windows.
- Область действия:
Managed. В источнике Windows, контролируемом администратором. - Тип: Boolean
true: Claude Code в WSL читает управляемые настройки из цепочки политик Windows и читает/etc/claude-codeтолько при отсутствии документа администратора Windowsfalse: WSL читает только/etc/claude-code
- По умолчанию:
false, поэтому WSL читает только/etc/claude-code
{
"wslInheritsWindowsSettings": true
}
После того как источник администратора включает цепочку, политика HKCU присоединяется к ней в WSL, только если HKCU тоже задаёт этот ключ как true. Эта копия сама по себе цепочку не включает. Источник Windows, содержащий только этот ключ со значением true или false, не считается источником политики, поэтому политику по-прежнему предоставляет источник с более низким приоритетом. В нативной Windows этот ключ не действует.
Claude Code распознаёт true и false как в кавычках, так и без них, а null воспринимает как удаление ключа. Источник Windows, контролируемый администратором, содержащий любое другое значение, считается присутствующим документом администратора с включённой цепочкой: ни /etc/claude-code, ни HKCU не применяются, а при запуске выводится предупреждение с названием ключа. Значение HKLM или файл в папке Windows, которые существуют, но не могут быть прочитаны, также не позволяют применить /etc/claude-code независимо от того, включена ли цепочка. Требуется Claude Code v2.1.282 или новее.
Глобальные параметры конфигурации
Сохраняйте эти ключи в ~/.claude.json, а не в файле параметров. Claude Code игнорирует их везде в других местах. Claude Code и /config записывают большинство из них за вас, и вы также можете редактировать их вручную.
autoConnectIde
Подключайтесь к запущенной IDE автоматически при запуске Claude Code из внешнего терминала. Отображается в /config как Auto-connect to IDE (external terminal) при запуске Claude Code вне терминала VS Code или JetBrains.
- Scope:
Global config - Type: Boolean
true: Claude Code подключается к запущенной IDE автоматически при запуске из внешнего терминалаfalse: Claude Code не подключается автоматически из внешнего терминала; внутри терминала VS Code или JetBrains, или с--ide, он все еще подключается
- Default:
false - Per-session overrides:
CLAUDE_CODE_AUTO_CONNECT_IDEимеет приоритет над этим ключом для одного сеанса в любом направлении
{
"autoConnectIde": true
}
Claude Code игнорирует этот ключ в settings.json.
autoInstallIdeExtension
Устанавливайте расширение Claude Code IDE автоматически при запуске Claude Code из терминала VS Code. Отображается в /config как Auto-install IDE extension при запуске Claude Code внутри терминала VS Code или JetBrains.
- Scope:
Global config - Type: Boolean
true: Claude Code устанавливает расширение IDE автоматически при запуске из терминала VS Codefalse: Claude Code не устанавливает расширение автоматически
- Default:
true - Per-session overrides:
CLAUDE_CODE_IDE_SKIP_AUTO_INSTALLустановленный на1пропускает установку для одного сеанса даже когда этот ключ имеет значениеtrue
{
"autoInstallIdeExtension": false
}
Claude Code игнорирует этот ключ в settings.json.
claudeInChromeDefaultEnabled
Запускайте каждую интерактивную сессию CLI с включенной интеграцией Chrome, без необходимости передавать --chrome каждый раз. Если вы запустите claude remote-control, сессия, которую он запускает для одного из ваших потоков проекта, также следует этому ключу, за исключением режима bypassPermissions. В Claude Code v2.1.287 или более поздней версии этот ключ также применяется к сессиям в расширении VS Code: см. Enable Chrome by default.
Запуск /chrome и выбор Enabled by default устанавливает этот ключ за вас. Отображается в /config как Claude in Chrome enabled by default.
- Scope:
Global config - Type: Boolean
true: Claude Code включает интеграцию Chrome при запуске интерактивной сессии CLI, как это происходит при передаче--chrome. В расширении VS Code сессии подключаются к браузеру при запускеfalse: интерактивные сессии CLI запускаются с отключенной интеграцией Chrome, и Claude Code прекращает предлагать ее настройку. Передайте--chrome, чтобы включить ее для одной интерактивной сессии. В расширении VS Code сессия подключается, когда вы вводите@browser, как и в случае, когда ключ не задан
- Default: unset, поэтому интеграция Chrome отключена и Claude Code все еще может предложить ее настройку
- Per-session overrides:
--chromeи--no-chromeимеют приоритет над этим ключом для одного интерактивного сеанса
{
"claudeInChromeDefaultEnabled": true
}
Claude Code игнорирует этот ключ в settings.json.
copyFullResponse
Делайте так, чтобы /copy копировала полный ответ каждый раз, без показа средства выбора. Выбор Always copy full response в этом средстве выбора устанавливает этот ключ в true. Отображается в /config как Skip the /copy picker.
- Scope:
Global config - Type: Boolean
true:/copyкопирует полный ответ без показа средства выбораfalse: когда ответ содержит блоки кода или цитаты,/copyпоказывает средство выбора, где вы выбираете один блок или полный ответ
- Default:
false
{
"copyFullResponse": true
}
Claude Code игнорирует этот ключ в settings.json.
copyOnSelect
Копируйте текст в буфер обмена автоматически при завершении выделения текста мышью в полноэкранном режиме или представлении агента. Отображается в /config как Copy on select во время включения полноэкранного режима.
- Scope:
Global config - Type: Boolean
true: Claude Code копирует текст в буфер обмена при завершении выделенияfalse: выделение текста оставляет буфер обмена без изменений, и вы копируете выделение с помощью сочетания клавиш вместо этого
- Default:
true
{
"copyOnSelect": false
}
Claude Code игнорирует этот ключ в settings.json.
defaultToAgentsView
Открывайте представление агента вместо нового разговора при запуске claude без аргументов. Отображается в /config как Open agents view by default, если представление агента не отключено.
- Scope:
Global config - Type: Boolean
true:claudeбез аргументов открывает представление агента, если представление агента не отключеноfalse:claudeбез аргументов запускает новый разговор
- Default:
false
{
"defaultToAgentsView": true
}
Claude Code игнорирует этот ключ в settings.json.
diffTool
Выбирайте, где Claude Code показывает diff изменения Edit или Write, которое оно предлагает, когда подключена IDE VS Code или JetBrains: "auto" открывает его в средстве просмотра diff IDE, "terminal" сохраняет его в терминале. Отображается в /config как Diff tool только когда Claude Code подключен к IDE VS Code или JetBrains.
- Scope:
Global config - Type: string, один из:
"auto": Claude Code открывает diff в средстве просмотра diff IDE при подключении IDE VS Code или JetBrains"terminal": Claude Code сохраняет diff в терминале
- Default:
"auto"
{
"diffTool": "terminal"
}
Claude Code игнорирует этот ключ в settings.json.
externalEditorContext
При нажатии Ctrl+G Claude Code открывает подсказку, которую вы печатаете, в вашем внешнем редакторе. Когда этот ключ включен, буфер редактора начинается с предыдущего ответа Claude в виде строк комментариев #, чтобы вы могли прочитать его во время написания, и Claude Code удаляет эти строки при сохранении. Отображается в /config как Show last response in external editor.
- Scope:
Global config - Type: Boolean
true: буфер редактора начинается с предыдущего ответа Claude в виде строк комментариев#, которые Claude Code удаляет при сохраненииfalse: буфер редактора открывается только с вашей подсказкой
- Default:
false
{
"externalEditorContext": true
}
Когда это включено, буфер, который открывает Claude Code, выглядит так, и только текст ниже строки маркера отправляется как ваша подсказка:
# ─── Claude's last response (for reference; removed on save) ───
# I added the retry loop to fetchUser in src/api.ts and a test
# for the timeout case. Want me to wire the same retry into
# fetchOrders?
# ─── Write your reply below this line ──────────────────────────
Yes, and cap it at three attempts.
Claude Code сохраняет последние 50 строк ответа и отмечает срез с помощью # … (earlier output truncated).
Claude Code игнорирует этот ключ в settings.json.
leftArrowOpensAgents
Нажимайте ← на пустой подсказке, чтобы отправить сеанс в фоновый режим и открыть представление агента. Установите этот ключ на false, чтобы отключить сочетание клавиш. Отображается в /config как ← opens agents, когда представление агента доступно.
- Scope:
Global config - Type: Boolean
true: нажатие←на пустой подсказке в сеансе, который вы запустили в терминале, отправляет его в фоновый режим и открывает представление агентаfalse: Claude Code отключает сочетание клавиш; в сеансе, который вы присоединили из представления агента,←на пустой подсказке все еще отсоединяет
- Default:
true
{
"leftArrowOpensAgents": false
}
Claude Code игнорирует этот ключ в settings.json.
permissionExplainerEnabled
[!WARNING]
Удалено в v2.1.257 вместе с объяснением команды
Ctrl+Eна подсказках разрешений Bash и PowerShell. Установка этого параметра не влияет на текущие версии.
До версии v2.1.256 вы могли нажать Ctrl+E на подсказке разрешения Bash или PowerShell, чтобы увидеть созданное моделью объяснение команды, и установить этот ключ на false, чтобы отключить это сочетание клавиш.
- Scope:
Global config. На v2.1.256 и более ранних версиях. - Type: Boolean
- Default:
true
prStatusFooterEnabled
Показывайте значок в нижнем колонтитуле подсказки для открытого запроса на слияние или запроса на объединение текущей ветви с цветной подчеркиванием, которое показывает его статус. Отображается в /config как Show PR status footer.
- Scope:
Global config - Type: Boolean
true: нижний колонтитул показывает значок при условиях в PR review statusfalse: Claude Code пропускает проверку запроса на слияние и запроса на объединение нижнего колонтитула и не показывает этот значок. Сеанс, который вы присоединили из представления агента, все еще может показать простую ссылку на запрос на слияние связанный с ним
- Default:
true
{
"prStatusFooterEnabled": false
}
Claude Code игнорирует этот ключ в settings.json.
teammateDefaultModel
[!WARNING]
Удалено в v2.1.234 вместе с его строкой
/configDefault teammate model. Установка этого параметра не влияет на текущие версии.
До версии v2.1.233 вы устанавливали этот ключ на модель для товарищей по команде агентской команды, для которых ваша подсказка не указала модель: псевдоним, такой как "sonnet", или null, чтобы следовать модели лидера. Для модели, которую Claude Code выбирает для таких товарищей по команде сейчас, см. укажите товарищей по команде и модели.
- Scope:
Global config. На v2.1.233 и более ранних версиях. - Type: string, псевдоним модели или полный ID модели, или
null - Default: unset
См. также
- Настройка разрешений: синтаксис правил, режимы разрешений и доверие рабочей области
- Переменные окружения: каждая переменная
CLAUDE_*,ANTHROPIC_*и переменная поставщика, которую читает Claude Code - Инструменты, доступные Claude: встроенные инструменты и какие требуют одобрения
- Примеры файлов настроек: личный файл, командный файл и управляемый файл организации
- Настройка управляемых параметров: как организации решают, что применять
- Развертывание управляемых параметров: механизмы доставки, приоритет в управляемом уровне и недопустимые записи в управляемых параметрах
- Отладка конфигурации:
claude doctorи диалог ошибки параметров