SpyBara
Go Premium

Documentation 2026-10-02 22:59 UTC to 2026-10-03 04:59 UTC

40 files changed +1,496 −1,341. View all changes and history on the product overview
2026
Sat 3 05:58 Fri 2 22:59 Thu 1 23:59
Details

145Некоторые поведения не адаптированы для режима программы чтения с экрана:145Некоторые поведения не адаптированы для режима программы чтения с экрана:

146 146 

147* Режим программы чтения с экрана не включается автоматически при запуске программы чтения с экрана.147* Режим программы чтения с экрана не включается автоматически при запуске программы чтения с экрана.

148* Claude Code не объявляет изменение режима разрешения, сделанное любым способом, кроме циклирования с помощью `Shift+Tab`, такое как вход в [режим плана](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) из команды.148* Claude Code не объявляет изменение режима разрешений, сделанное с помощью команды, например вход в [режим планирования](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) с помощью `/plan`.

149* Присоединение к [фоновому сеансу](/docs/ru/agent-view) с помощью `claude attach` или из представления агента входит в альтернативный экран терминала, который не имеет собственного буфера прокрутки. Это [то же поведение, что и для других присоединённых сеансов](/docs/ru/fullscreen). Чтобы выйти, нажмите Left Arrow на пустой подсказке или Ctrl+Z, если диалог имеет фокус.149* Присоединение к [фоновому сеансу](/docs/ru/agent-view) с помощью `claude attach` или из представления агента входит в альтернативный экран терминала, который не имеет собственного буфера прокрутки. Это [то же поведение, что и для других присоединённых сеансов](/docs/ru/fullscreen). Чтобы выйти, нажмите Left Arrow на пустой подсказке или Ctrl+Z, если диалог имеет фокус.

150* Claude Code объявляет затраты в сводке, которую он выводит при выходе, а не за ход.150* Claude Code объявляет затраты в сводке, которую он выводит при выходе, а не за ход.

151* Режим программы чтения с экрана не изменяет [неинтерактивный режим](/docs/ru/headless) с флагом `-p`. Неинтерактивный режим уже выводит простой текст и остаётся альтернативой для написания скриптов.151* Режим программы чтения с экрана не изменяет [неинтерактивный режим](/docs/ru/headless) с флагом `-p`. Неинтерактивный режим уже выводит простой текст и остаётся альтернативой для написания скриптов.

Details

275| `options.version` | `string` | Опциональная строка версии |275| `options.version` | `string` | Опциональная строка версии |

276| `options.instructions` | `string` | Опциональные инструкции сервера, возвращаемые из `initialize` и предоставляемые модели как блок инструкций MCP |276| `options.instructions` | `string` | Опциональные инструкции сервера, возвращаемые из `initialize` и предоставляемые модели как блок инструкций MCP |

277| `options.tools` | `Array<SdkMcpToolDefinition>` | Массив определений tool, созданных с помощью [`tool()`](#tool) |277| `options.tools` | `Array<SdkMcpToolDefinition>` | Массив определений tool, созданных с помощью [`tool()`](#tool) |

278| `options.alwaysLoad` | `boolean` | Когда `true`, каждый tool с этого сервера остаётся в начальном запросе и никогда не откладывается за [поиском tool](/docs/ru/agent-sdk/tool-search). Объединяется с `alwaysLoad` для каждого tool в [`tool()`](#tool) |278| `options.alwaysLoad` | `boolean` | Когда `true`, каждый инструмент этого сервера остаётся в начальном промпте, а не откладывается за [поиском инструментов](/docs/ru/agent-sdk/tool-search). Сочетается с `alwaysLoad` для отдельного инструмента в [`tool()`](#tool) |

279| `options.timeout` | `number` | Timeout в миллисекундах для вызовов tool этого сервера. Claude Code применяет его к этому серверу вместо [`MCP_TOOL_TIMEOUT`](/docs/ru/env-vars). Передайте целое число не менее 1000. Claude Code игнорирует другие значения. Требуется TypeScript Agent SDK v0.3.248 или позже |279| `options.timeout` | `number` | Timeout в миллисекундах для вызовов tool этого сервера. Claude Code применяет его к этому серверу вместо [`MCP_TOOL_TIMEOUT`](/docs/ru/env-vars). Передайте целое число не менее 1000. Claude Code игнорирует другие значения. Требуется TypeScript Agent SDK v0.3.248 или позже |

280 280 

281<h3 id="listsessions">281<h3 id="listsessions">

agent-teams.md +1 −1

Details

91* **Enter**: открыть стенограмму выбранного товарища по команде и отправить ему сообщение напрямую91* **Enter**: открыть стенограмму выбранного товарища по команде и отправить ему сообщение напрямую

92* **Escape**: очистить выделение. Пока вы просматриваете стенограмму товарища по команде, Escape прерывает текущий ход этого товарища по команде92* **Escape**: очистить выделение. Пока вы просматриваете стенограмму товарища по команде, Escape прерывает текущий ход этого товарища по команде

93 93 

94Начиная с версии 2.1.199, строка неактивного товарища по команде остается на панели, пока работает любой товарищ по команде или подагент, поэтому вы можете выбрать его для просмотра его стенограммы или отправить ему дополнительную работу. Когда каждый агент на панели неактивен, неактивные строки скрываются через 30 секунд и снова появляются при следующем ходе товарища по команде; товарищ по команде продолжает работать и остается доступным, пока скрыт. В версиях 2.1.181–2.1.198 неактивная строка скрывалась через 30 секунд после завершения собственного хода, даже если другие товарищи по команде все еще работали; неактивные строки не скрываются в версиях до 2.1.181.94Строка неактивного участника команды остается на панели, пока работает любой участник команды или субагент, поэтому вы можете выбрать ее, чтобы просмотреть его транскрипт или отправить ему дополнительную работу. Когда все агенты на панели неактивны, неактивные строки скрываются через 30 секунд и снова появляются при следующем ходе участника команды; участник команды продолжает работать и остается доступным, пока скрыт.

95 95 

96Когда более трех товарищей по команде неактивны одновременно, строки, выходящие за пределы первых трех, сворачиваются в одну строку, которая подсчитывает свернутых товарищей по команде, например `2 idle agents` когда пять неактивны. Выберите его и нажмите Enter для развертывания свернутых строк, или нажмите Esc для их свертывания снова. Работающие товарищи по команде, неудачные товарищи по команде и товарищ по команде, который вы просматриваете, всегда сохраняют свои собственные строки.96Когда более трех товарищей по команде неактивны одновременно, строки, выходящие за пределы первых трех, сворачиваются в одну строку, которая подсчитывает свернутых товарищей по команде, например `2 idle agents` когда пять неактивны. Выберите его и нажмите Enter для развертывания свернутых строк, или нажмите Esc для их свертывания снова. Работающие товарищи по команде, неудачные товарищи по команде и товарищ по команде, который вы просматриваете, всегда сохраняют свои собственные строки.

97 97 

champion-kit.md +7 −8

Details

50Примеры переиспользуемых техник:50Примеры переиспользуемых техник:

51 51 

52* "Я узнал, что @-упоминание каталога работает. Указав его на `@src/components/` и спросив, какие отсутствуют тесты, я обнаружил два, которые я упустил."52* "Я узнал, что @-упоминание каталога работает. Указав его на `@src/components/` и спросив, какие отсутствуют тесты, я обнаружил два, которые я упустил."

53* "Plan Mode (`Shift+Tab`) показывает ровно какие файлы будут затронуты перед любым редактированием, поэтому я комфортно его использую на общем коде."53* "Режим планирования (`Shift+Tab`) сначала показывает предлагаемые изменения, поэтому я комфортно использую его на общем коде."

54* "Я настроил Stop hook, чтобы получать уведомление на рабочем столе, когда завершается длительная задача. Конфигурация находится в ветке."54* "Я настроил Stop hook, чтобы получать уведомление на рабочем столе, когда завершается длительная задача. Конфигурация находится в ветке."

55* "Запуск `/init` генерирует `CLAUDE.md` из репозитория, поэтому помощник перестаёт переспрашивать о наших соглашениях."55* "Запуск `/init` генерирует `CLAUDE.md` из репозитория, поэтому помощник перестаёт переспрашивать о наших соглашениях."

56 56 


88```88```

89 89 

90```text theme={null}90```text theme={null}

91Plan Mode — это причина, по которой я комфортно использую это на коде,91Режим планирования — это причина, по которой я комфортно использую это

92который имеет значение. Нажмите Shift+Tab, пока не увидите "plan"; это92на коде, который имеет значение. Нажимайте Shift+Tab, пока не увидите

93выкладывает ровно какие файлы он намеревается трогать перед изменением93"plan"; он показывает предлагаемые изменения, не редактируя ваш исходный код.

94чего-либо.

95```94```

96 95 

97<h2 id="be-the-person-people-ask">96<h2 id="be-the-person-people-ask">


127| Вопрос | Предлагаемый ответ | Ресурс для дальнейшего изучения |126| Вопрос | Предлагаемый ответ | Ресурс для дальнейшего изучения |

128| - | - | - |127| - | - | - |

129| "На чём я должен сначала это попробовать?" | Рекомендуйте реальную, но ограниченную задачу, в идеале ошибку или работу, которую человек откладывал, потому что она утомительна, а не сложна. | [Common workflows](/docs/ru/common-workflows) |128| "На чём я должен сначала это попробовать?" | Рекомендуйте реальную, но ограниченную задачу, в идеале ошибку или работу, которую человек откладывал, потому что она утомительна, а не сложна. | [Common workflows](/docs/ru/common-workflows) |

130| "Как я могу доверять это своему коду?" | Представьте plan mode: нажатие `Shift+Tab` переключает его, Claude предлагает ровно то, что он намеревается изменить, и ничего не изменяется, пока пользователь не одобрит. | [Permissions](/docs/ru/permissions) |129| "Как я могу доверять это своему коду?" | Познакомьте с режимом планирования: нажатие `Shift+Tab` переключает в него, и Claude исследует и предлагает изменения, не редактируя ваш исходный код. | [Permissions](/docs/ru/permissions) |

131| "Стоит ли настройка усилий?" | Установка занимает примерно две минуты, работает в терминале и не требует расширения IDE. Запуск `/init` один раз достаточен для начала работы. | [Quickstart](/docs/ru/quickstart) |130| "Стоит ли настройка усилий?" | Установка занимает примерно две минуты, работает в терминале и не требует расширения IDE. Запуск `/init` один раз достаточен для начала работы. | [Quickstart](/docs/ru/quickstart) |

132| "Это произвело неправильный результат." | Поощряйте их предоставить сбой обратно Claude. Вставка сообщения об ошибке или неудачного теста намного эффективнее, чем переформулировка исходного запроса. | [Common workflows](/docs/ru/common-workflows) |131| "Это произвело неправильный результат." | Поощряйте их предоставить сбой обратно Claude. Вставка сообщения об ошибке или неудачного теста намного эффективнее, чем переформулировка исходного запроса. | [Common workflows](/docs/ru/common-workflows) |

133| "Он не понимает соглашения нашей кодовой базы." | Предложите запустить `/init` для генерации файла `CLAUDE.md`, затем добавить соглашения команды, команды тестирования и любые каталоги, которые следует избегать. | [Memory](/docs/ru/memory) |132| "Он не понимает соглашения нашей кодовой базы." | Предложите запустить `/init` для генерации файла `CLAUDE.md`, затем добавить соглашения команды, команды тестирования и любые каталоги, которые следует избегать. | [Memory](/docs/ru/memory) |


200| Опасение | Предлагаемый ответ | Доказательство для предложения |199| Опасение | Предлагаемый ответ | Доказательство для предложения |

201| - | - | - |200| - | - | - |

202| "Я быстрее без этого." | Это, вероятно, верно для кода, который человек пишет регулярно. Предложите попробовать это на работе, которую они обычно избегают: устаревшие файлы, незнакомые сервисы или тестовые каркасы, где рычаг наибольший. | Рассчитайте время одной утомительной задачи обоими способами и сравните. |201| "Я быстрее без этого." | Это, вероятно, верно для кода, который человек пишет регулярно. Предложите попробовать это на работе, которую они обычно избегают: устаревшие файлы, незнакомые сервисы или тестовые каркасы, где рычаг наибольший. | Рассчитайте время одной утомительной задачи обоими способами и сравните. |

203| "Я не доверяю AI трогать production код." | Согласитесь, что никакое изменение не должно приземляться непрочитанным. Plan Mode в сочетании с обычным diff-обзором означает, что ничего не применяется, что инженер не проверил, тот же стандарт, что и любой pull-запрос. | Продемонстрируйте plan mode на реальном файле. |202| "Я не доверяю AI трогать production код." | Согласитесь, что никакое изменение не должно приземляться непрочитанным. Предложите режим планирования, чтобы сначала увидеть предлагаемые изменения, а затем проверить diff по тому же стандарту, что и любой pull request. | Продемонстрируйте режим планирования на реальном файле. |

204| "Это сделает младших инженеров слабее." | При правильном использовании это эффективный объяснитель. Поощряйте младших инженеров просить Claude объяснить файл и его места вызова перед тем, как просить его что-либо изменить. | Запустите "Объясните @file и где он вызывается" вместе. |203| "Это сделает младших инженеров слабее." | При правильном использовании это эффективный объяснитель. Поощряйте младших инженеров просить Claude объяснить файл и его места вызова перед тем, как просить его что-либо изменить. | Запустите "Объясните @file и где он вызывается" вместе. |

205| "Я попробовал это один раз и оно галлюцинировало." | Это обычно проблема контекста, а не проблема модели. @-упоминание соответствующих файлов, запуск `/init` и предоставление фактического вывода ошибки обычно это разрешают. | Повторно запустите их исходную подсказку с надлежащим `@`-контекстом. |204| "Я попробовал это один раз и оно галлюцинировало." | Это обычно проблема контекста, а не проблема модели. @-упоминание соответствующих файлов, запуск `/init` и предоставление фактического вывода ошибки обычно это разрешают. | Повторно запустите их исходную подсказку с надлежащим `@`-контекстом. |

206| "У нас нет времени учить другой инструмент." | Claude Code — это команда терминала, а не платформа. Если она не возвращает значение в первом сеансе, разумно отложить её. | Двухминутная установка, за которой следует одна реальная ошибка. |205| "У нас нет времени учить другой инструмент." | Claude Code — это команда терминала, а не платформа. Если она не возвращает значение в первом сеансе, разумно отложить её. | Двухминутная установка, за которой следует одна реальная ошибка. |


214| Техника | Как её применить |213| Техника | Как её применить |

215| - | - |214| - | - |

216| Предоставьте правильный контекст | Используйте ссылки `@file` или `@directory/`, или вставьте вывод ошибки или журнала непосредственно. Предоставление соответствующего контекста более эффективно, чем сложное подсказывание. |215| Предоставьте правильный контекст | Используйте ссылки `@file` или `@directory/`, или вставьте вывод ошибки или журнала непосредственно. Предоставление соответствующего контекста более эффективно, чем сложное подсказывание. |

217| Проверьте план перед редактированием | Нажмите `Shift+Tab` для входа в Plan Mode. Claude опишет предполагаемые изменения для вашего одобрения перед их выполнением. |216| Проверьте план перед редактированием | Нажмите `Shift+Tab`, чтобы войти в режим планирования. Claude изучит код и предложит изменения, не редактируя ваш исходный код. |

218| Обучите его вашему репозиторию | Запустите `/init` для генерации файла `CLAUDE.md`, затем добавьте соглашения вашей команды, команды тестирования и любые каталоги, которые не должны быть изменены. См. [Memory](/docs/ru/memory). |217| Обучите его вашему репозиторию | Запустите `/init` для генерации файла `CLAUDE.md`, затем добавьте соглашения вашей команды, команды тестирования и любые каталоги, которые не должны быть изменены. См. [Memory](/docs/ru/memory). |

219| Переиспользуйте рабочий процесс | Сохраните файл `SKILL.md` в `.claude/skills/<name>/` для создания skill `/name`, который может использовать вся команда. См. [Skills](/docs/ru/skills). |218| Переиспользуйте рабочий процесс | Сохраните файл `SKILL.md` в `.claude/skills/<name>/` для создания skill `/name`, который может использовать вся команда. См. [Skills](/docs/ru/skills). |

220| Оставайтесь информированными во время длительных задач | Настройте Stop hook для получения уведомления на рабочем столе, когда завершается длительная задача. См. [Hooks](/docs/ru/hooks-guide). |219| Оставайтесь информированными во время длительных задач | Настройте Stop hook для получения уведомления на рабочем столе, когда завершается длительная задача. См. [Hooks](/docs/ru/hooks-guide). |

channels.md +1 −1

Details

349 349 

350Если вы установите пустой массив, вы заблокируете все плагины каналов из списка разрешенных, но `--dangerously-load-development-channels` все еще может его обойти для локального тестирования. Чтобы полностью заблокировать каналы, включая флаг разработки, оставьте `channelsEnabled` неустановленным.350Если вы установите пустой массив, вы заблокируете все плагины каналов из списка разрешенных, но `--dangerously-load-development-channels` все еще может его обойти для локального тестирования. Чтобы полностью заблокировать каналы, включая флаг разработки, оставьте `channelsEnabled` неустановленным.

351 351 

352Этот параметр требует `channelsEnabled: true`. Если пользователь передает плагин в `--channels`, который не находится в вашем списке, Claude Code запускается нормально, но канал не регистрируется, и уведомление при запуске объясняет, что плагин не находится в утвержденном списке организации. Если вы установите `MCP_PROTOCOL_NEGOTIATION` на `auto` на среде выполнения MCP-клиента v2, канал также может не зарегистрироваться, потому что Claude Code [не регистрирует сервер канала, который согласовывает редакцию протокола 2026-07-28](/docs/ru/mcp#push-messages-with-channels).352Этот параметр требует `channelsEnabled: true`. Если пользователь передает плагин в `--channels`, который не находится в вашем списке, Claude Code запускается нормально, но канал не регистрируется, и уведомление при запуске объясняет, что плагин не находится в утвержденном списке организации. В среде выполнения MCP-клиента v2 канал также может не зарегистрироваться, потому что Claude Code [не регистрирует сервер канала, который согласовывает редакцию протокола 2026-07-28](/docs/ru/mcp#push-messages-with-channels).

353 353 

354<h2 id="research-preview">354<h2 id="research-preview">

355 Исследовательское превью355 Исследовательское превью

chrome.md +1 −1

Details

130В сессии VS Code то, будет ли Claude Code спрашивать вас перед действием в браузере, зависит от того, как сессия подключилась к вашему браузеру:130В сессии VS Code то, будет ли Claude Code спрашивать вас перед действием в браузере, зависит от того, как сессия подключилась к вашему браузеру:

131 131 

132* **Вы ввели `@browser`**: расширение одобряет каждое действие в браузере, о котором Claude Code иначе спросил бы вас.132* **Вы ввели `@browser`**: расширение одобряет каждое действие в браузере, о котором Claude Code иначе спросил бы вас.

133* **Подключение выполнила настройка [Включено по умолчанию](#enable-chrome-by-default) при запуске**: Claude Code спрашивает вас перед действиями в браузере в режимах разрешений Manual, Edit automatically, Auto и Bypass permissions, пока вы не введёте `@browser` в этой сессии.133* **Подключение выполнила настройка [Включено по умолчанию](#enable-chrome-by-default) при запуске**: Claude Code спрашивает вас перед действиями в браузере на сайте, который вы не разрешили, в режимах разрешений Manual, Edit automatically, Auto и Bypass permissions, пока вы не введёте `@browser` в этой сессии.

134 134 

135<h3 id="browser-tools-in-plan-mode">135<h3 id="browser-tools-in-plan-mode">

136 Инструменты браузера в режиме планирования136 Инструменты браузера в режиме планирования

Details

79| Поле | Обязательно | Описание |79| Поле | Обязательно | Описание |

80| - | - | - |80| - | - | - |

81| `issuer` | Да | База обнаружения OIDC. Должна служить обнаружением в `/.well-known/openid-configuration`. Используйте HTTPS в production; gateway принимает издателя `http://`. Издатель loopback, такой как `http://localhost:8081`, отклоняется [защитой SSRF](/docs/ru/claude-apps-gateway-deploy#threat-model-summary), если в окружении gateway не установлено `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`. |81| `issuer` | Да | База обнаружения OIDC. Должна служить обнаружением в `/.well-known/openid-configuration`. Используйте HTTPS в production; gateway принимает издателя `http://`. Издатель loopback, такой как `http://localhost:8081`, отклоняется [защитой SSRF](/docs/ru/claude-apps-gateway-deploy#threat-model-summary), если в окружении gateway не установлено `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`. |

82| `client_id` / `client_secret` | Да | Из регистрации клиента OAuth |82| `client_id` | Да | Из регистрации клиента OAuth |

83| `client_secret` | Если `token_endpoint_auth_method` не равен `private_key_jwt` | Из регистрации клиента OAuth. Не указывайте его, когда используете [аутентификацию клиента по сертификату](#certificate-client-authentication). |

83| `allowed_email_domains` | Нет | Отклоняйте id\_tokens, чьё утверждение `email` не находится в одном из этих доменов, без учёта регистра. Защита в глубину от неправильной конфигурации многотенантного IdP. Независимо от этого параметра, id\_token, чьё утверждение `email_verified` явно `false`, всегда отклоняется. |84| `allowed_email_domains` | Нет | Отклоняйте id\_tokens, чьё утверждение `email` не находится в одном из этих доменов, без учёта регистра. Защита в глубину от неправильной конфигурации многотенантного IdP. Независимо от этого параметра, id\_token, чьё утверждение `email_verified` явно `false`, всегда отклоняется. |

84| `allowed_groups` | Нет | Ограничьте вход членами этих групп IdP, сопоставленными с `groups_claim`. Пользователь в разрешённом домене электронной почты, но ни в одной из этих групп, отклоняется. Требует, чтобы IdP выпускал утверждение groups. Сопоставление — это точное сравнение строк с учётом регистра против значений в этом утверждении, и gateway не расширяет вложенные группы: чтобы допустить членов подгруппы, перечислите подгруппу здесь или настройте IdP для выпуска уплощённого членства. |85| `allowed_groups` | Нет | Ограничьте вход членами этих групп IdP, сопоставленными с `groups_claim`. Пользователь в разрешённом домене электронной почты, но ни в одной из этих групп, отклоняется. Требует, чтобы IdP выпускал утверждение groups. Сопоставление — это точное сравнение строк с учётом регистра против значений в этом утверждении, и gateway не расширяет вложенные группы: чтобы допустить членов подгруппы, перечислите подгруппу здесь или настройте IdP для выпуска уплощённого членства. |

85| `groups_claim` | Нет | Какое утверждение id\_token несёт членство в группе. По умолчанию `groups`. Microsoft Entra выпускает роли приложения под `roles`. Принимает плоский ключ или RFC 6901 JSON Pointer, такой как `/resource_access/gateway/roles` для вложенных утверждений. |86| `groups_claim` | Нет | Какое утверждение id\_token несёт членство в группе. По умолчанию `groups`. Microsoft Entra выпускает роли приложения под `roles`. Принимает плоский ключ или RFC 6901 JSON Pointer, такой как `/resource_access/gateway/roles` для вложенных утверждений. |


91| `userinfo_fallback` | Нет | Когда id\_token опускает электронную почту или группы, получите их из `/userinfo`. Требуется для облегчённых токенов доступа Keycloak, сервера организации Okta и минимальных токенов ADFS. id\_token остаётся авторитетным; userinfo только заполняет пробелы. По умолчанию `false`. |92| `userinfo_fallback` | Нет | Когда id\_token опускает электронную почту или группы, получите их из `/userinfo`. Требуется для облегчённых токенов доступа Keycloak, сервера организации Okta и минимальных токенов ADFS. id\_token остаётся авторитетным; userinfo только заполняет пробелы. По умолчанию `false`. |

92| `use_pkce` | Нет | Отправьте вызов PKCE (S256) на запрос авторизации. По умолчанию `true`. Установите `false` только, если ваш IdP отклоняет PKCE для этого конфиденциального клиента. |93| `use_pkce` | Нет | Отправьте вызов PKCE (S256) на запрос авторизации. По умолчанию `true`. Установите `false` только, если ваш IdP отклоняет PKCE для этого конфиденциального клиента. |

93| `clock_skew_seconds` | Нет | Допустите дрейф часов при проверке утверждений времени id\_token. По умолчанию `0`, что строго. Повысьте, если вы видите ошибки "token expired / not yet valid" сразу после входа из-за дрейфа часов хоста/IdP. |94| `clock_skew_seconds` | Нет | Допустите дрейф часов при проверке утверждений времени id\_token. По умолчанию `0`, что строго. Повысьте, если вы видите ошибки "token expired / not yet valid" сразу после входа из-за дрейфа часов хоста/IdP. |

94| `token_endpoint_auth_method` | Нет | Переопределите метод аутентификации конечной точки токена. Принимает `client_secret_basic` или `client_secret_post`. Автоматически согласовано по умолчанию. |95| `token_endpoint_auth_method` | Нет | Как gateway аутентифицируется на эндпоинте токенов IdP: `client_secret_basic`, `client_secret_post` или `private_key_jwt` для [аутентификации клиента по сертификату](#certificate-client-authentication). По умолчанию gateway выбирает один из двух методов `client_secret` на основе того, что объявляет IdP. |

96| `client_assertion` | С `private_key_jwt` | Блок с `private_key_pem` и `certificate_pem`: закрытый ключ и сертификат для [аутентификации клиента по сертификату](#certificate-client-authentication). Требует v2.1.284 или позже. |

95| `id_token_signed_response_alg` | Нет | Ожидаемый алгоритм подписи id\_token. По умолчанию `RS256`. Установите для IdP, которые подписывают с помощью ES256, PS256 или EdDSA. |97| `id_token_signed_response_alg` | Нет | Ожидаемый алгоритм подписи id\_token. По умолчанию `RS256`. Установите для IdP, которые подписывают с помощью ES256, PS256 или EdDSA. |

96| `additional_authorized_parties` | Нет | Дополнительные значения `azp` для принятия помимо `client_id`, для потоков брокера Keycloak и обмена токенами |98| `additional_authorized_parties` | Нет | Дополнительные значения `azp` для принятия помимо `client_id`, для потоков брокера Keycloak и обмена токенами |

97| `discovery_url` | Нет | Получите документ обнаружения из этого URL вместо его получения из `issuer`, для IdP за прокси, который переписывает хост издателя. Путь должен содержать `/.well-known/`. |99| `discovery_url` | Нет | Получите документ обнаружения из этого URL вместо его получения из `issuer`, для IdP за прокси, который переписывает хост издателя. Путь должен содержать `/.well-known/`. |


99| `form_action_origins` | Нет | Дополнительные происхождения для директивы `Content-Security-Policy: form-action` страницы `/device`. Gateway уже разрешает `'self'` и обнаруженное происхождение `authorization_endpoint`, но Chrome применяет `form-action` ко всей цепочке перенаправления. Если ваш IdP перенаправляет через второй хост, такой как Azure AD, объединённый с ADFS, hub-spoke Okta или корпоративный перехватчик SSO, перечислите каждое происхождение, через которое может перенаправляться запрос авторизации. |101| `form_action_origins` | Нет | Дополнительные происхождения для директивы `Content-Security-Policy: form-action` страницы `/device`. Gateway уже разрешает `'self'` и обнаруженное происхождение `authorization_endpoint`, но Chrome применяет `form-action` ко всей цепочке перенаправления. Если ваш IdP перенаправляет через второй хост, такой как Azure AD, объединённый с ADFS, hub-spoke Okta или корпоративный перехватчик SSO, перечислите каждое происхождение, через которое может перенаправляться запрос авторизации. |

100| `ca_cert_pem` | Нет | PEM-кодированный сертификат CA, а не путь к файлу. Он заменяет хранилище доверия системы только для запросов IdP. Для загрузки смонтированного файла напишите `${file:/etc/gateway/idp-ca.pem}`. Используйте для Keycloak или Dex за корпоративной PKI. |102| `ca_cert_pem` | Нет | PEM-кодированный сертификат CA, а не путь к файлу. Он заменяет хранилище доверия системы только для запросов IdP. Для загрузки смонтированного файла напишите `${file:/etc/gateway/idp-ca.pem}`. Используйте для Keycloak или Dex за корпоративной PKI. |

101 103 

104<h4 id="certificate-client-authentication">

105 Аутентификация клиента по сертификату

106</h4>

107 

108Если ваш поставщик идентификации аутентифицирует клиентов OAuth по сертификату вместо секрета клиента, как это делает Microsoft Entra с учётными данными-сертификатами, установите `token_endpoint_auth_method: private_key_jwt`. Требует Claude Code v2.1.284 или позже на сервере gateway.

109 

110В этой конфигурации gateway не отправляет секрет. Он аутентифицируется на эндпоинте токенов IdP с помощью короткоживущего JWT, подписанного закрытым ключом сертификата, когда разработчик входит в систему и каждый раз, когда gateway обновляет его сессию. JWT подписывается с помощью RS256 и идентифицирует сертификат заголовками отпечатков `x5t` и `x5t#S256`, а не `kid`. Ваш IdP должен уметь находить зарегистрированный сертификат по отпечатку.

111 

112<Steps>

113 <Step title="Создайте ключ и сертификат">

114 Создайте незашифрованный закрытый ключ RSA длиной не менее 2048 бит в форме PEM PKCS#8 или PKCS#1 и сертификат для него. Gateway отказывается запускаться с любым ключом, который не соответствует этим условиям. Эта команда `openssl` создаёт такой ключ с самоподписанным сертификатом, действительным в течение одного года:

115 

116 ```bash theme={null}

117 openssl req -x509 -newkey rsa:2048 -nodes -keyout idp-client.key -out idp-client.crt -days 365 -subj "/CN=claude-gateway"

118 ```

119 

120 Она записывает `idp-client.key` и `idp-client.crt` в текущий каталог. Скопируйте или смонтируйте оба файла туда, где gateway может их прочитать. Пример в шаге 3 использует `/etc/gateway/`.

121 </Step>

122 

123 <Step title="Загрузите сертификат в IdP">

124 Загрузите сертификат, а не закрытый ключ, в регистрацию приложения gateway в IdP.

125 </Step>

126 

127 <Step title="Добавьте ключ и сертификат в gateway.yaml">

128 Передайте gateway закрытый ключ и сертификат в блоке `client_assertion`. Не указывайте `client_secret`, потому что gateway отказывается запускаться, когда он установлен вместе с `private_key_jwt`. Этот блок `oidc` аутентифицирует gateway в тенанте Microsoft Entra с помощью сертификата:

129 

130 ```yaml theme={null}

131 oidc:

132 issuer: https://login.microsoftonline.com/<tenant-id>/v2.0

133 client_id: <application-id>

134 token_endpoint_auth_method: private_key_jwt

135 client_assertion:

136 private_key_pem: ${file:/etc/gateway/idp-client.key}

137 certificate_pem: ${file:/etc/gateway/idp-client.crt}

138 ```

139 

140 Оба значения — это содержимое PEM, а не пути к файлам, поэтому загружайте смонтированные файлы с помощью `${file:/path}`, как в примере. Gateway отказывается запускаться, если `certificate_pem` не является одним PEM-сертификатом без остальной части цепочки, чей открытый ключ соответствует `private_key_pem`.

141 </Step>

142 

143 <Step title="Перезапустите gateway и проверьте лог загрузки">

144 Перезапустите gateway и найдите эту строку в логе загрузки:

145 

146 ```text theme={null}

147 [gateway] 2026-10-01T23:07:40.512Z info oidc: client authentication private_key_jwt; certificate CN=claude-gateway, SHA-1 thumbprint DE92821854EE8BAA1D98C758FAA04AABE80B9F57, expires Oct 1 23:07:31 2027 GMT

148 ```

149 

150 Сравните отпечаток SHA-1 с тем, который IdP показывает для загруженного вами сертификата. Если срок действия сертификата истёк или он ещё не действителен, gateway всё равно запускается, но записывает в лог предупреждение о том, что входы и обновления будут завершаться ошибкой, пока вы его не замените. Чтобы убедиться, что IdP принимает сертификат, попросите одного разработчика войти через gateway.

151 </Step>

152</Steps>

153 

154<h4 id="rotate-the-client-certificate">

155 Ротация сертификата клиента

156</h4>

157 

158Gateway читает ключ и сертификат один раз при загрузке, поэтому изменённый файл вступает в силу только после перезапуска. Выполняйте ротацию в таком порядке, чтобы ни один запрос токена не предъявлял сертификат, которого нет у IdP:

159 

1601. Загрузите новый сертификат в IdP рядом со старым.

1612. Замените файлы ключа и сертификата, которые загружает `gateway.yaml`, затем перезапустите gateway.

1623. Удалите старый сертификат из IdP.

163 

102<h4 id="idp-requests-through-a-forward-proxy">164<h4 id="idp-requests-through-a-forward-proxy">

103 Запросы IdP через прямой прокси165 Запросы IdP через прямой прокси

104</h4>166</h4>


1224| - | - | - | - |1286| - | - | - | - |

1225| `access_control` | `allow_cidrs` / `deny_cidrs` | пусто | Входящий IP разрешить/запретить по адресу клиента, после разрешения `trusted_proxies`. `deny_cidrs` проверяется первым; клиент, которому он соответствует, отклоняется, даже если `allow_cidrs` также соответствует. Если `allow_cidrs` не пусто, шлюз по умолчанию отклоняет. `/healthz` и `/readyz` исключены из `allow_cidrs`. Когда доверенный прокси отправляет запись `X-Forwarded-For`, которая не является IP адресом, реальный клиент неизвестен и шлюз один раз записывает в лог предупреждение, называя, что проверить. Где применяется либо список, он отклоняет запрос с `403` и причиной аудита `xff_unparseable`. Где ни один не применяется, он обслуживает запрос и использует собственный адрес прокси как IP клиента для ограничений частоты запросов на IP и аудита. |1287| `access_control` | `allow_cidrs` / `deny_cidrs` | пусто | Входящий IP разрешить/запретить по адресу клиента, после разрешения `trusted_proxies`. `deny_cidrs` проверяется первым; клиент, которому он соответствует, отклоняется, даже если `allow_cidrs` также соответствует. Если `allow_cidrs` не пусто, шлюз по умолчанию отклоняет. `/healthz` и `/readyz` исключены из `allow_cidrs`. Когда доверенный прокси отправляет запись `X-Forwarded-For`, которая не является IP адресом, реальный клиент неизвестен и шлюз один раз записывает в лог предупреждение, называя, что проверить. Где применяется либо список, он отклоняет запрос с `403` и причиной аудита `xff_unparseable`. Где ни один не применяется, он обслуживает запрос и использует собственный адрес прокси как IP клиента для ограничений частоты запросов на IP и аудита. |

1226| `limits` | `max_request_bytes` | 32 MiB | Максимальный размер входящего тела запроса; запросы большего размера получают `413` перед буферизацией тела. Поднимите для больших запросов файлов или изображений. |1288| `limits` | `max_request_bytes` | 32 MiB | Максимальный размер входящего тела запроса; запросы большего размера получают `413` перед буферизацией тела. Поднимите для больших запросов файлов или изображений. |

1227| `limits` | `max_request_header_bytes` | не установлено | Когда установлено, заголовки большего размера возвращают `431` |1289| `limits` | `max_request_header_bytes` | не установлено | Снижает установленный в шлюзе лимит в 256 KiB на общий размер заголовков запроса. Запрос сверх лимита возвращает `431`, а значение выше 256 KiB ни на что не влияет. Если разработчики получают `431` после входа, смотрите [Слишком большие заголовки запроса после входа](/docs/ru/claude-apps-gateway-deploy#request-headers-too-large-after-sign-in). |

1228| `limits` | `max_url_length` | не установлено | Когда установлено, слишком длинный URL возвращает `414` |1290| `limits` | `max_url_length` | не установлено | Когда установлено, слишком длинный URL возвращает `414` |

1229| `timeouts` | `upstream_ttfb_ms` | 120000 | Максимальное ожидание заголовков ответа upstream (время до первого байта). Тело ответа затем передаётся потоком без ограничения по общему времени. Применяется к прямому пути upstream Anthropic; на каждом другом поставщике шлюз ждёт до одного часа, пока ответ не начнётся. |1291| `timeouts` | `upstream_ttfb_ms` | 120000 | Максимальное ожидание заголовков ответа upstream (время до первого байта). Тело ответа затем передаётся потоком без ограничения по общему времени. Применяется к прямому пути upstream Anthropic; на каждом другом поставщике шлюз ждёт до одного часа, пока ответ не начнётся. |

1230| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Ограничение частоты запросов на IP для неаутентифицированного эндпоинта авторизации устройства. Поднимите для большой организации за общим исходящим IP или NAT. [Large rollouts](/docs/ru/claude-apps-gateway-deploy#large-rollouts) показывает, как подобрать его размер. Эти ограничения применяются только к потоку входа с кодом устройства, а не к выводу `/v1/messages`. Смотрите [User-code brute-force resistance](/docs/ru/claude-apps-gateway-deploy#user-code-brute-force-resistance). |1292| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Ограничение частоты запросов на IP для неаутентифицированного эндпоинта авторизации устройства. Поднимите для большой организации за общим исходящим IP или NAT. [Large rollouts](/docs/ru/claude-apps-gateway-deploy#large-rollouts) показывает, как подобрать его размер. Эти ограничения применяются только к потоку входа с кодом устройства, а не к выводу `/v1/messages`. Смотрите [User-code brute-force resistance](/docs/ru/claude-apps-gateway-deploy#user-code-brute-force-resistance). |

Details

25 Настройка поставщика удостоверений25 Настройка поставщика удостоверений

26</h2>26</h2>

27 27 

28Зарегистрируйте конфиденциальное веб-приложение OAuth/OpenID Connect (OIDC) с одним URI перенаправления, `https://<gateway>/oauth/callback`, и назначьте его пользователям или группам, которые должны иметь доступ к шлюзу.28Зарегистрируйте конфиденциальное веб-приложение OAuth/OpenID Connect (OIDC) с одним URI перенаправления, `https://<gateway>/oauth/callback`, и назначьте его пользователям или группам, которые должны иметь доступ к шлюзу. Шлюз аутентифицируется в IdP с помощью секрета клиента из регистрации или с помощью сертификата, который вы загружаете в регистрацию, если ваш IdP вместо этого использует [учётные данные на основе сертификата](/docs/ru/claude-apps-gateway-config#certificate-client-authentication).

29 29 

30Работает любой OIDC-совместимый IdP: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate и другие. IdP должен соответствовать трем требованиям:30Работает любой OIDC-совместимый IdP: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate и другие. IdP должен соответствовать трем требованиям:

31 31 


376* **Проблема входа**: разработчик запускает `claude --debug-file ./claude-debug.txt`, воспроизводит и отправляет этот файл плюс журнал аудита шлюза для того же окна376* **Проблема входа**: разработчик запускает `claude --debug-file ./claude-debug.txt`, воспроизводит и отправляет этот файл плюс журнал аудита шлюза для того же окна

377* **Проблема inference**: запрошенная модель, настроенные upstreams и журнал аудита шлюза для запроса, который записывает, какой upstream обслужил его и статус ответа377* **Проблема inference**: запрошенная модель, настроенные upstreams и журнал аудита шлюза для запроса, который записывает, какой upstream обслужил его и статус ответа

378 378 

379stderr шлюза включает поток событий аудита, журнал аудита записывает идентификаторы разработчиков, а файл отладки записывает выходные данные hook и MCP сервера с машины разработчика. Проверьте и удалите эту информацию перед публикацией в общедоступную проблему.379stderr шлюза включает поток событий аудита, журнал аудита записывает идентификаторы разработчиков, а файл отладки записывает выходные данные хуков и MCP-серверов с машины разработчика. Проверьте и удалите эту информацию перед публикацией в общедоступную проблему.

380 380 

381| Симптом | Причина | Исправление |381| Симптом | Причина | Исправление |

382| - | - | - |382| - | - | - |

383| `/login` разработчика показывает стандартный выбор аккаунта вместо экрана **Cloud gateway** | `forceLoginMethod` или `forceLoginGatewayUrl` не установлены в управляемых параметрах на этой машине | Разверните [файл управляемых параметров](/docs/ru/claude-apps-gateway#set-the-gateway-url) на устройство; `/login` читает URL шлюза оттуда |383| `/login` разработчика показывает стандартный выбор аккаунта вместо экрана **Cloud gateway** | `forceLoginMethod` или `forceLoginGatewayUrl` не установлены в управляемых настройках на этой машине | Разверните [файл управляемых настроек](/docs/ru/claude-apps-gateway#set-the-gateway-url) на устройство; `/login` читает URL шлюза оттуда |

384| Запросы разработчика не удаются с `Not signed in to the Cloud gateway — run /login.` | Управляемые параметры машины устанавливают `forceLoginMethod: "gateway"` или `forceLoginGatewayUrl`, и сеанс не имеет входа в шлюз. Оставшийся вход claude.ai не удовлетворяет требованию. | Попросите разработчика запустить `/login` и завершить вход в шлюз. См. также [Administrator policy requires a Cloud gateway sign-in](/docs/ru/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |384| Запросы разработчика не удаются с `Not signed in to the Cloud gateway — run /login.` | Управляемые настройки машины устанавливают `forceLoginMethod: "gateway"` или `forceLoginGatewayUrl`, и сессия не имеет входа в шлюз. Оставшийся вход claude.ai не удовлетворяет требованию. | Попросите разработчика запустить `/login` и завершить вход в шлюз. См. также [Administrator policy requires a Cloud gateway sign-in](/docs/ru/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

385| Claude Desktop сообщает, что его конфигурация bootstrap не может быть получена | `/user/bootstrap` вернул 404: политика, соответствующая пользователю, не содержит ключ `desktop`, или политика не совпадает. Журнал аудита шлюза записывает каждое отклонение как `desktop_bootstrap.denied` с причиной. | Добавьте блок `desktop` к политике, которая соответствует пользователю, или к базовому слою `match: {}`; пустого `desktop: {}` достаточно. См. [Claude Desktop overlay](/docs/ru/claude-apps-gateway-config#claude-desktop-overlay). |385| Claude Desktop сообщает, что его конфигурация bootstrap не может быть получена | `/user/bootstrap` вернул 404: политика, соответствующая пользователю, не содержит ключ `desktop`, или политика не совпадает. Журнал аудита шлюза записывает каждое отклонение как `desktop_bootstrap.denied` с причиной. | Добавьте блок `desktop` к политике, которая соответствует пользователю, или к базовому слою `match: {}`; пустого `desktop: {}` достаточно. См. [Claude Desktop overlay](/docs/ru/claude-apps-gateway-config#claude-desktop-overlay). |

386| Запуск показывает `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | Установленная сборка Claude Code предшествует поддержке шлюза | Попросите разработчика обновить Claude Code до выпуска, который включает поддержку Cloud gateway |386| Запуск показывает `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | Установленная сборка Claude Code предшествует поддержке шлюза | Попросите разработчика обновить Claude Code до выпуска, который включает поддержку Cloud gateway |

387| Запуск выходит с `Administrator policy requires a Cloud gateway sign-in on this machine` | Окружение разработчика устанавливает `ANTHROPIC_API_KEY` или `ANTHROPIC_AUTH_TOKEN`, их параметры настраивают [`apiKeyHelper`](/docs/ru/settings-reference#apikeyhelper), или API ключ из более раннего входа Claude Console все еще сохранен | Попросите разработчика очистить каждый из применимых: отменить переменную, удалить запись `apiKeyHelper` или запустить `claude auth logout` для удаления сохраненного ключа. Сеанс, который выбирает облачного провайдера с `CLAUDE_CODE_USE_*`, затем начинается без входа; для каждого другого сеанса попросите его запустить `claude` и войти с помощью `/login`. См. также [Administrator policy requires a Cloud gateway sign-in](/docs/ru/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |387| Запуск выходит с `Administrator policy requires a Cloud gateway sign-in on this machine` | Окружение разработчика устанавливает `ANTHROPIC_API_KEY` или `ANTHROPIC_AUTH_TOKEN`, их настройки настраивают [`apiKeyHelper`](/docs/ru/settings-reference#apikeyhelper), или API-ключ из более раннего входа Claude Console всё ещё сохранён | Попросите разработчика очистить каждый из применимых: отменить переменную, удалить запись `apiKeyHelper` или запустить `claude auth logout` для удаления сохранённого ключа. Сессия, которая выбирает облачного провайдера с `CLAUDE_CODE_USE_*`, затем начинается без входа; для каждой другой сессии попросите его запустить `claude` и войти с помощью `/login`. См. также [Administrator policy requires a Cloud gateway sign-in](/docs/ru/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

388| Запуск или `/login` сообщает `Claude Code may not be enabled for your organization` после 403 при загрузке управляемых параметров | Шлюз или что-то перед ним ответили на запрос `/managed/settings` с 403. Собственный маршрут параметров шлюза никогда не отвечает 403. Статус поступает из проверок IP [`access_control`](/docs/ru/claude-apps-gateway-config#http-tuning) или из прокси или WAF перед шлюзом. Журнал аудита записывает отклонение проверки IP как `access.denied` с причиной. Разработчик остается вошедшим. | Проверьте журнал аудита на `access.denied` в момент сбоя и исправьте списки `access_control` или фронтенд, затем попросите разработчика запустить `claude` снова |388| Запуск или `/login` сообщает `Claude Code may not be enabled for your organization` после 403 при загрузке управляемых настроек | Шлюз или что-то перед ним ответили на запрос `/managed/settings` с 403. Собственный маршрут настроек шлюза никогда не отвечает 403. Статус поступает из проверок IP [`access_control`](/docs/ru/claude-apps-gateway-config#http-tuning) или из прокси или WAF перед шлюзом. Журнал аудита записывает отклонение проверки IP как `access.denied` с причиной. Разработчик остаётся вошедшим. | Проверьте журнал аудита на `access.denied` в момент сбоя и исправьте списки `access_control` или фронтенд, затем попросите разработчика запустить `claude` снова |

389| CLI `/login`: `The gateway is limiting sign-in attempts right now`, или `Request failed with status code 429` на более старых версиях. Страница `/device` может показывать `Too many attempts` разработчикам, которые раньше не пробовали | Был достигнут лимит скорости входа на IP. Либо `listen.trusted_proxies` не охватывает балансировщик нагрузки, поэтому каждый разработчик использует его адрес, либо много разработчиков используют один адрес выхода NAT или VPN. События аудита с `result: rate_limited` показывают одно или несколько одинаковых значений `client_ip`. | Сначала установите `listen.trusted_proxies` на диапазоны источников балансировщика нагрузки, затем поднимите `rate_limits`, если разработчики все еще используют общие адреса. См. [Large rollouts](#large-rollouts). |389| CLI `/login`: `The gateway is limiting sign-in attempts right now`, или `Request failed with status code 429` на более старых версиях. Страница `/device` может показывать `Too many attempts` разработчикам, которые раньше не пробовали | Было достигнуто ограничение частоты запросов на вход для каждого IP. Либо `listen.trusted_proxies` не охватывает балансировщик нагрузки, поэтому каждый разработчик использует его адрес, либо много разработчиков используют один адрес выхода NAT или VPN. События аудита с `result: rate_limited` показывают одно или несколько одинаковых значений `client_ip`. | Сначала установите `listen.trusted_proxies` на диапазоны источников балансировщика нагрузки, затем поднимите `rate_limits`, если разработчики всё ещё используют общие адреса. См. [Large rollouts](#large-rollouts). |

390| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Имя хоста шлюза разрешается на по крайней мере один публичный IP адрес. Claude Code проверяет каждый разрешенный адрес и требует, чтобы каждый был приватным. Частая причина — dual-stack имя, где одно семейство разрешается на публичный адрес, включая AWS внутренние dual-stack балансировщики нагрузки, которые возвращают публичные AAAA адреса. | Попросите имя шлюза разрешаться только на приватные адреса на машинах разработчиков. Для dual-stack имени удалите публичный диапазон записи или обслуживайте отдельное внутреннее DNS имя. См. [предпосылку приватной сети](/docs/ru/claude-apps-gateway#prerequisites). Если адрес находится в публичном пространстве, которым владеет и использует ваша организация внутри, [объявите этот блок](/docs/ru/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) вместо этого. |390| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Имя хоста шлюза разрешается по крайней мере в один публичный IP-адрес. Claude Code проверяет каждый разрешённый адрес и требует, чтобы каждый был приватным. Частая причина — dual-stack имя, где одно семейство разрешается в публичный адрес, включая внутренние dual-stack балансировщики нагрузки AWS, которые возвращают AAAA-адреса из публичного диапазона. | Сделайте так, чтобы имя шлюза разрешалось только в приватные адреса на машинах разработчиков. Для dual-stack имени удалите запись из публичного диапазона или обслуживайте отдельное внутреннее DNS-имя. См. [предварительное требование о приватной сети](/docs/ru/claude-apps-gateway#prerequisites). Если адрес находится в публичном пространстве, которым владеет и которое использует внутри ваша организация, вместо этого [объявите этот блок](/docs/ru/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own). |

391| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | `HTTPS_PROXY` или `HTTP_PROXY` применяется к хосту шлюза и имя хоста прокси разрешается на публичный адрес. Прокси, чье имя хоста разрешается только на приватные адреса, разрешен и не вызывает эту ошибку | Добавьте хост шлюза в `NO_PROXY` на машине разработчика, чтобы соединение было прямым, или используйте прокси, чье имя хоста разрешается на приватные адреса. Сообщение называет точную запись `NO_PROXY` для добавления |391| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | `HTTPS_PROXY` или `HTTP_PROXY` применяется к хосту шлюза, и имя хоста прокси разрешается в публичный адрес. Прокси, чьё имя хоста разрешается только в приватные адреса, разрешён и не вызывает эту ошибку | Добавьте хост шлюза в `NO_PROXY` на машине разработчика, чтобы соединение было прямым, или используйте прокси, чьё имя хоста разрешается в приватные адреса. Сообщение называет точную запись `NO_PROXY` для добавления |

392| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | Шлюз находится на блоке, объявленном в [`gatewayInternalNetworks`](/docs/ru/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), и машина разработчика достигла его с адреса вне этого блока: адрес из пула VPN, контейнер или сегмент NAT WSL2, или сеть, которая не ваша | Попросите разработчика запустить `/login` из хост-ОС в вашей сети. Если показанный адрес также является собственным публичным пространством вашей организации, замените запись шлюза на блок, который охватывает оба, вплоть до `/8`; вторая, перекрывающаяся запись отклоняется |392| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | Шлюз находится в блоке, объявленном в [`gatewayInternalNetworks`](/docs/ru/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), и машина разработчика достигла его с адреса вне этого блока: адрес из пула VPN, контейнер или сегмент NAT WSL2, или сеть, которая не ваша | Попросите разработчика запустить `/login` из хост-ОС в вашей сети. Если показанный адрес также является собственным публичным пространством вашей организации, замените запись шлюза на блок, который охватывает оба, вплоть до `/8`; вторая, перекрывающаяся запись отклоняется |

393| CLI `/login`: `Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | Имя шлюза разрешается на адрес вне блока, объявленного в [`gatewayInternalNetworks`](/docs/ru/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own): второй сайт или запись IPv6 на dual-stack имени. Под объявленным блоком каждая запись должна быть внутри этого одного IPv4 блока, приватные и IPv6 адреса включены | Публикуйте только записи внутри блока для имени шлюза на машинах разработчиков или обслуживайте отдельное внутреннее имя |393| CLI `/login`: `Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | Имя шлюза разрешается в адрес вне блока, объявленного в [`gatewayInternalNetworks`](/docs/ru/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own): второй сайт или запись IPv6 на dual-stack имени. При объявленном блоке каждая запись должна быть внутри этого одного IPv4-блока, включая приватные и IPv6-адреса | Публикуйте только записи внутри блока для имени шлюза на машинах разработчиков или обслуживайте отдельное внутреннее имя |

394| CLI `/login`: `<host> is on the declared network <block>, which Claude Code checks over a direct connection, not through an HTTP proxy` | `HTTPS_PROXY` или `HTTP_PROXY` применяется к шлюзу на объявленном блоке | На машине разработчика добавьте запись `NO_PROXY`, которую называет сообщение |394| CLI `/login`: `<host> is on the declared network <block>, which Claude Code checks over a direct connection, not through an HTTP proxy` | `HTTPS_PROXY` или `HTTP_PROXY` применяется к шлюзу в объявленном блоке | На машине разработчика добавьте запись `NO_PROXY`, которую называет сообщение |

395| CLI `/login`: сообщение, начинающееся с `gatewayInternalNetworks in managed settings` | Значение нарушает одно из [правил валидации](/docs/ru/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), и сообщение называет какое. До тех пор, пока вы его не исправите, Claude Code отклоняет каждый новый `/login` шлюза на машине, шлюзы на приватных адресах включены; существующие входы продолжают работать | В источнике управляемых параметров, который вы развертываете, исправьте запись, которую называет сообщение, затем повторите `/login` |395| CLI `/login`: сообщение, начинающееся с `gatewayInternalNetworks in managed settings` | Значение нарушает одно из [правил валидации](/docs/ru/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), и сообщение называет какое. До тех пор, пока вы его не исправите, Claude Code отклоняет каждый новый `/login` шлюза на машине, включая шлюзы на приватных адресах; существующие входы продолжают работать | В источнике управляемых настроек, который вы развёртываете, исправьте запись, которую называет сообщение, затем повторите `/login` |

396| CLI `/login`: `Could not resolve the configured HTTP proxy` | Имя хоста в `HTTPS_PROXY` или `HTTP_PROXY` не разрешается с машины разработчика, обычно потому что она не подключена к корпоративной сети | Попросите разработчика подключиться к вашей сети или VPN и повторить попытку, или исправьте URL прокси |396| CLI `/login`: `Could not resolve the configured HTTP proxy` | Имя хоста в `HTTPS_PROXY` или `HTTP_PROXY` не разрешается с машины разработчика, обычно потому что она не подключена к корпоративной сети | Попросите разработчика подключиться к вашей сети или VPN и повторить попытку, или исправьте URL прокси |

397| CLI `/login`: `Could not resolve gateway host <host>` | Машина не может разрешить внутреннее DNS имя шлюза, обычно потому что она не в корпоративной сети | Попросите разработчика подключиться к вашей сети или VPN, затем повторите попытку `/login` |397| CLI `/login`: `Could not resolve gateway host <host>` | Машина не может разрешить внутреннее DNS-имя шлюза, обычно потому что она не в корпоративной сети | Попросите разработчика подключиться к вашей сети или VPN, затем повторите попытку `/login` |

398| Загрузка выходит с ошибкой валидации конфигурации, называющей `store.postgres_url` | Postgres не настроен; шлюз требует Postgres | Установите `store.postgres_url`. Для локальной разработки используйте одноразовый контейнер: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |398| Загрузка выходит с ошибкой валидации конфигурации, называющей `store.postgres_url` | Postgres не настроен; шлюз требует Postgres | Установите `store.postgres_url`. Для локальной разработки используйте одноразовый контейнер: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

399| Загрузка выходит: `requires the native binary` | Запуск под Node вместо нативного бинарного файла | Установите Claude Code с одним из [методов автономной установки](/docs/ru/setup) |399| Загрузка выходит: `requires the native binary` | Запуск под Node вместо нативного бинарного файла | Установите Claude Code одним из [методов автономной установки](/docs/ru/setup) |

400| Загрузка выходит с ошибкой обнаружения OIDC после `config.load` | `oidc.issuer` недоступен или цепь TLS не доверена | Проверьте, что издатель доступен из pod и обслуживает `/.well-known/openid-configuration`. Установите `ca_cert_pem` для приватной PKI. Если pod достигает IdP только через forward proxy, установите [`oidc.use_proxy: true`](/docs/ru/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); на версиях до v2.1.227 предоставьте pod прямой маршрут к каждой конечной точке IdP вместо этого. Если pod также не может разрешить имя хоста IdP или прокси отказывает `CONNECT` на IP адрес, см. [Proxy-only egress](/docs/ru/claude-apps-gateway-config#proxy-only-egress), что требует v2.1.277 или позже. |400| Загрузка выходит с ошибкой обнаружения OIDC после `config.load` | `oidc.issuer` недоступен или цепочке TLS нет доверия | Проверьте, что издатель доступен из pod и обслуживает `/.well-known/openid-configuration`. Установите `ca_cert_pem` для приватной PKI. Если pod достигает IdP только через forward proxy, установите [`oidc.use_proxy: true`](/docs/ru/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); на версиях до v2.1.227 вместо этого предоставьте pod прямой маршрут к каждому эндпоинту IdP. Если pod также не может разрешить имя хоста IdP или прокси отказывает в `CONNECT` на IP-адрес, см. [Proxy-only egress](/docs/ru/claude-apps-gateway-config#proxy-only-egress), что требует v2.1.277 или позже. |

401| Загрузка выходит с ошибкой разрешения Postgres | Роль базы данных не имеет прав DDL на своей схеме | Предоставьте роли `CREATE` на схему шлюза, чтобы она могла создавать и изменять свои таблицы при загрузке |401| Загрузка выходит с ошибкой прав доступа Postgres | Роль базы данных не имеет прав DDL на своей схеме | Предоставьте роли `CREATE` на схему шлюза, чтобы она могла создавать и изменять свои таблицы при загрузке |

402| Лог: `could not connect to Postgres at boot, attempt 1 of 3` | База данных не была доступна, когда шлюз запустился, например на холодном экземпляре, чья сеть все еще поднимается | Если шлюз затем завершает загрузку, никаких действий не требуется. Когда база данных недоступна, шлюз пытается подключиться три раза, с интервалом в две секунды, перед выходом. Если он выходит с `could not connect to Postgres`, проверьте `store.postgres_url` и сетевой путь к базе данных. Если попытки истекают по времени, а не отклоняются, поднимите [`store.connect_timeout_seconds`](/docs/ru/claude-apps-gateway-config#store), чтобы дать каждой больше времени. |402| Лог: `could not connect to Postgres at boot, attempt 1 of 3` | База данных ещё не была доступна, когда шлюз запустился, например на холодном экземпляре, чья сеть всё ещё поднимается | Если шлюз затем завершает загрузку, никаких действий не требуется. Когда база данных недоступна, шлюз пытается подключиться три раза, с интервалом в две секунды, перед выходом. Если он выходит с `could not connect to Postgres`, проверьте `store.postgres_url` и сетевой путь к базе данных. Если попытки завершаются по таймауту, а не отклоняются, поднимите [`store.connect_timeout_seconds`](/docs/ru/claude-apps-gateway-config#store), чтобы дать каждой больше времени. |

403| `/oauth/callback` показывает "Sign-in could not be completed" | Домен email отклонен, валидация id\_token не удалась или `email_verified` явно `false`, что шлюз всегда отклоняет без переопределения | Проверьте `allowed_email_domains` и что IdP возвращает проверенное утверждение `email`. Для `email_verified: false` исправьте проверку на стороне IdP. Если ваш IdP выдает email под другим именем утверждения, установите `oidc.email_claim`. |403| `/oauth/callback` показывает "Sign-in could not be completed" | Домен email отклонён, валидация id\_token не удалась или `email_verified` явно `false`, что шлюз всегда отклоняет без возможности переопределения | Проверьте `allowed_email_domains` и что IdP возвращает проверенное утверждение `email`. Для `email_verified: false` исправьте проверку на стороне IdP. Если ваш IdP выдаёт email под другим именем утверждения, установите `oidc.email_claim`. |

404| Лог: `token exchange failed request_id=<id>: id_token missing email claim` | IdP не включает `email` в id\_token по умолчанию. Это отклонение срабатывает только когда установлен `allowed_email_domains`; без него отсутствующий email создает сеанс без email | Настройте IdP для выдачи `email` в id\_token. Okta: добавьте `email` к утверждениям ID-token пользовательского сервера авторизации. Entra: добавьте `email` как опциональное утверждение на регистрацию приложения. PingFederate: включите политику OpenID Connect, которая выдает `email`. Если IdP обслуживает `email` из конечной точки userinfo, но не будет включать его в id\_token, такой как сервер авторизации организации Okta, установите `oidc.userinfo_fallback: true`. |404| Лог: `token exchange failed request_id=<id>: id_token missing email claim` | IdP не включает `email` в id\_token по умолчанию. Это отклонение срабатывает только когда установлен `allowed_email_domains`; без него отсутствующий email создаёт сессию без email | Настройте IdP для выдачи `email` в id\_token. Okta: добавьте `email` к утверждениям ID-токена пользовательского сервера авторизации. Entra: добавьте `email` как опциональное утверждение в регистрации приложения. PingFederate: включите политику OpenID Connect, которая выдаёт `email`. Если IdP обслуживает `email` из эндпоинта userinfo, но не включает его в id\_token, как, например, сервер авторизации организации Okta, установите `oidc.userinfo_fallback: true`. |

405| Лог: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, и разработчики видят `Cloud gateway session expired` каждые `session.ttl_hours` | IdP принял refresh token, но не вернул id\_token с ним, поэтому шлюз попросил конечную точку userinfo IdP для утверждений пользователя. IdP отклонил обновленный access token там. Шлюз отвечает `temporarily_unavailable`, поэтому Claude Code сохраняет refresh token, но не может обновить сеанс. Версии шлюза до v2.1.260 логируют ту же строку без деталей `(at …)`. | Установите [`oidc.scope_on_refresh: true`](/docs/ru/claude-apps-gateway-config#oidc), доступно в шлюзе v2.1.260 или позже, чтобы запрос refresh запрашивал `openid` снова. Некоторые IdP, такие как Okta, возвращают id\_token при refresh только при запросе. На PingFederate включите **Return ID Token On Refresh Grant** под **Applications > OAuth > OpenID Connect Policy Management** вместо этого. Ключ не изменяет поведение PingFederate. Для других IdP, которые все еще его опускают, проверьте, принимает ли конечная точка userinfo access tokens, выданные refresh. Как временное решение, поднимите [`session.ttl_hours`](/docs/ru/claude-apps-gateway-config#session). См. [Identity provider setup](#identity-provider-setup) для компромисса deprovisioning. |405| Лог: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, и разработчики видят `Cloud gateway session expired` каждые `session.ttl_hours` | IdP принял refresh token, но не вернул вместе с ним id\_token, поэтому шлюз запросил утверждения пользователя у эндпоинта userinfo IdP. IdP отклонил там обновлённый access token. Шлюз отвечает `temporarily_unavailable`, поэтому Claude Code сохраняет refresh token, но не может обновить сессию. Версии шлюза до v2.1.260 логируют ту же строку без деталей `(at …)`. | Установите [`oidc.scope_on_refresh: true`](/docs/ru/claude-apps-gateway-config#oidc), доступно в шлюзе v2.1.260 или позже, чтобы запрос refresh снова запрашивал `openid`. Некоторые IdP, такие как Okta, возвращают id\_token при refresh только при явном запросе. На PingFederate вместо этого включите **Return ID Token On Refresh Grant** в разделе **Applications > OAuth > OpenID Connect Policy Management**. Ключ не изменяет поведение PingFederate. Для других IdP, которые всё ещё его опускают, проверьте, принимает ли эндпоинт userinfo access tokens, выданные при refresh. В качестве временного решения поднимите [`session.ttl_hours`](/docs/ru/claude-apps-gateway-config#session). См. [Identity provider setup](#identity-provider-setup) о компромиссе при deprovisioning. |

406| Каждый запрос Amazon Bedrock возвращает 502; лог показывает `Could not load credentials from any providers` | На EC2 hop limit IMDSv2 по умолчанию 1 блокирует запрос метаданных экземпляра изнутри контейнера. Загрузка и `/readyz` проходят в любом случае, потому что AWS SDK разрешает учетные данные экземпляра при первом запросе, а не при построении клиента | Поднимите hop limit с `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2` или установите его в шаблоне запуска. Изменение применяется к каждому контейнеру на экземпляре. Предпочитайте роли задач ECS, где доступны, которые читают учетные данные из конечной точки учетных данных контейнера ECS и избегают изменения полностью, или применяйте изменение на выделенном экземпляре шлюза, чтобы ограничить воздействие. |406| Разработчик входит, после чего каждый запрос из этой сессии завершается ошибкой `431` | Токен сессии в заголовке `Authorization` каждого запроса перечисляет группы IdP разработчика, поэтому для разработчика, состоящего во многих группах, заголовки в сумме могут превысить допустимый для шлюза размер | См. [Слишком большие заголовки запросов после входа](#request-headers-too-large-after-sign-in), чтобы узнать, какой лимит применяется и что изменить |

407| При пиковой нагрузке ответы медленно начинаются или кажутся зависшими, или не удаются с 502 `all upstreams failed`, пока upstream здоров | Реплика имеет больше открытых запросов, чем отправляет upstream одновременно, поэтому дополнительные запросы ждут внутри шлюза. На upstream `provider: anthropic`, запрос, который ждет дольше, чем `timeouts.upstream_ttfb_ms`, отказывается от этого upstream, что производит 502, когда никакой более поздний upstream не обслуживает его. Лог показывает предупреждение, которое содержит `client requests are open`. | Добавьте реплики или поднимите лимит на каждой реплике. См. [Concurrent upstream requests](#concurrent-upstream-requests). |407| Каждый запрос Amazon Bedrock возвращает 502; лог показывает `Could not load credentials from any providers` | На EC2 hop limit IMDSv2 по умолчанию, равный 1, блокирует запрос метаданных экземпляра изнутри контейнера. Загрузка и `/readyz` проходят в любом случае, потому что AWS SDK получает учётные данные экземпляра при первом запросе, а не при создании клиента | Поднимите hop limit с помощью `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2` или установите его в шаблоне запуска. Изменение применяется к каждому контейнеру на экземпляре. Предпочитайте роли задач ECS, где они доступны: они читают учётные данные из эндпоинта учётных данных контейнера ECS и полностью избавляют от этого изменения. Либо применяйте изменение на выделенном экземпляре шлюза, чтобы ограничить воздействие. |

408| Ошибка IdP: unknown or unsupported scope | IdP отклоняет области, которые он не распознает | Установите `oidc.scopes` на точный список, который принимает ваш IdP; он должен включать `openid`. По умолчанию `openid profile email offline_access`. |408| При пиковой нагрузке ответы медленно начинаются или кажутся зависшими, или не удаются с 502 `all upstreams failed`, пока upstream здоров | У реплики открыто больше запросов, чем она одновременно отправляет в upstream, поэтому дополнительные запросы ждут внутри шлюза. На upstream `provider: anthropic` запрос, который ждёт дольше, чем `timeouts.upstream_ttfb_ms`, отказывается от этого upstream, что приводит к 502, когда никакой следующий upstream его не обслуживает. Лог показывает предупреждение, которое содержит `client requests are open`. | Добавьте реплики или поднимите лимит на каждой реплике. См. [Concurrent upstream requests](#concurrent-upstream-requests). |

409| Сеансы не молчаливо обновляются после установки `oidc.scopes` | `offline_access` был удален из переопределения | Добавьте `offline_access` обратно, если ваш IdP его поддерживает. Без refresh token разработчики повторно запускают вход в браузер каждые `session.ttl_hours`. |409| Ошибка IdP: unknown or unsupported scope | IdP отклоняет scope, которые он не распознаёт | Установите в `oidc.scopes` точно тот список, который принимает ваш IdP; он должен включать `openid`. По умолчанию `openid profile email offline_access`. |

410| Сессии не обновляются незаметно после установки `oidc.scopes` | `offline_access` был удалён из переопределения | Добавьте `offline_access` обратно, если ваш IdP его поддерживает. Без refresh token разработчики повторно проходят вход в браузере каждые `session.ttl_hours`. |

410| Браузер показывает "This request came from another site and was blocked" | Cross-site form POST, заблокирован как защита CSRF. Ожидается для встроенных или проксированных страниц | Откройте ссылку проверки напрямую |411| Браузер показывает "This request came from another site and was blocked" | Cross-site form POST, заблокирован как защита CSRF. Ожидается для встроенных или проксированных страниц | Откройте ссылку проверки напрямую |

411| Chrome блокирует кнопку Approve с "Refused to send form data … violates … Content Security Policy directive: form-action", но та же страница работает в Safari или Firefox | Chrome применяет `form-action` ко всей цепи перенаправления. Ваш IdP перенаправляет дальше на второй хост, который не в списке разрешений. | Добавьте каждое дополнительное происхождение в цепи перенаправления в `oidc.form_action_origins`. Откройте Chrome DevTools → Console на странице Approve, чтобы увидеть, какое происхождение было заблокировано. |412| Chrome блокирует кнопку Approve с "Refused to send form data … violates … Content Security Policy directive: form-action", но та же страница работает в Safari или Firefox | Chrome применяет `form-action` ко всей цепочке перенаправлений. Ваш IdP перенаправляет дальше на второй хост, который не в списке разрешённых. | Добавьте каждый дополнительный origin в цепочке перенаправлений в `oidc.form_action_origins`. Откройте Chrome DevTools → Console на странице Approve, чтобы увидеть, какой origin был заблокирован. |

412| Вход завершается в IdP, но callback не удается, с ошибкой CSP в Chrome или "this sign-in link has expired" в Safari | IdP вернул код через `response_mode=form_post`, который автоматически отправляет его cross-origin через POST на `/oauth/callback`. Chrome блокирует это под строгой CSP; Safari позволяет отправку, но callback читает только строку запроса. | Убедитесь, что ваш IdP соблюдает `response_mode=query`, который шлюз явно запрашивает, чтобы callback был простым перенаправлением |413| Вход завершается в IdP, но callback не удаётся, с ошибкой CSP в Chrome или "this sign-in link has expired" в Safari | IdP вернул код через `response_mode=form_post`, который автоматически отправляет его cross-origin через POST на `/oauth/callback`. Chrome блокирует это при строгой CSP; Safari позволяет отправку, но callback читает только строку запроса. | Убедитесь, что ваш IdP соблюдает `response_mode=query`, который шлюз явно запрашивает, чтобы callback был простым перенаправлением |

413| Вход работает локально, но не удается за ALB | `public_url` все еще называет локальное или внутреннее происхождение `http://`, поэтому IdP получает неправильный `redirect_uri` | Установите `listen.public_url` на внешнее происхождение `https://` и зарегистрируйте `<public_url>/oauth/callback` с IdP |414| Вход работает локально, но не удаётся за ALB | `public_url` всё ещё указывает локальный или внутренний origin `http://`, поэтому IdP получает неправильный `redirect_uri` | Установите в `listen.public_url` внешний origin `https://` и зарегистрируйте `<public_url>/oauth/callback` в IdP |

414| Разработчик видит подсказку доверия повторно | Сертификат TLS ротируется для каждой реплики или для каждого запроса | Используйте стабильный сертификат на ingress или завершите TLS один раз и запустите реплики по простому HTTP внутри |415| Разработчик повторно видит запрос доверия | Сертификат TLS меняется для каждой реплики или для каждого запроса | Используйте стабильный сертификат на ingress или завершайте TLS один раз и запускайте реплики внутри по простому HTTP |

415| CLI `/login`: "Could not verify the gateway's TLS certificate" или `SELF_SIGNED_CERT_IN_CHAIN` | Цепь TLS шлюза подписана приватным CA, не в хранилище доверия хоста CLI | Claude Code читает хранилище доверия ОС по умолчанию на нативном бинарном файле и на Node 22.15 или позже; [`CLAUDE_CODE_CERT_STORE`](/docs/ru/network-config#ca-certificate-store) управляет этим поведением. Если CA установлен в хранилище доверия ОС, убедитесь, что разработчики используют текущий runtime. В противном случае установите `NODE_EXTRA_CA_CERTS` на сертификат CA PEM перед запуском. Подсказка отпечатка первого подключения все еще применяется. |416| CLI `/login`: "Could not verify the gateway's TLS certificate" или `SELF_SIGNED_CERT_IN_CHAIN` | Цепочка TLS шлюза подписана приватным CA, которого нет в хранилище доверия хоста CLI | Claude Code по умолчанию читает хранилище доверия ОС в нативном бинарном файле и на Node 22.15 или позже; [`CLAUDE_CODE_CERT_STORE`](/docs/ru/network-config#ca-certificate-store) управляет этим поведением. Если CA установлен в хранилище доверия ОС, убедитесь, что разработчики используют актуальный runtime. В противном случае перед запуском установите в `NODE_EXTRA_CA_CERTS` PEM-сертификат CA. Запрос подтверждения отпечатка при первом подключении по-прежнему применяется. |

416| CLI `/login` завершает вход в браузер, затем сеанс заканчивается с `Cloud gateway sign-in was not completed` и несоответствием сертификата TLS | При первом запросе после входа шлюз представил сертификат, который не соответствует отпечатку, который Claude Code закрепил, поэтому Claude Code не сохранил учетные данные шлюза. Обычные причины — реплики за одним адресом, которые обслуживают разные сертификаты, или что-то на пути сети, которое перехватывает TLS. | Обслуживайте один сертификат для имени хоста, например завершив TLS один раз на ingress, затем попросите разработчика запустить `/login` снова. Если этот сертификат отличается от закрепленного, Claude Code показывает [подсказку доверия](/docs/ru/claude-apps-gateway#connect-developers) снова с предупреждением, что сертификат изменился. |417| CLI `/login` завершает вход в браузере, затем сессия заканчивается с `Cloud gateway sign-in was not completed` и несоответствием сертификата TLS | При первом запросе после входа шлюз представил сертификат, который не соответствует отпечатку, закреплённому Claude Code, поэтому Claude Code не сохранил учётные данные шлюза. Обычные причины — реплики за одним адресом, которые обслуживают разные сертификаты, или что-то на сетевом пути, что перехватывает TLS. | Обслуживайте один сертификат для имени хоста, например завершая TLS один раз на ingress, затем попросите разработчика снова запустить `/login`. Если этот сертификат отличается от закреплённого, Claude Code снова показывает [запрос доверия](/docs/ru/claude-apps-gateway#connect-developers) с предупреждением, что сертификат изменился. |

417| CLI `/login` останавливается с `The gateway's TLS certificate changed during sign-in: it no longer matches the one you trusted` | Запрос входа достиг сервера, чей сертификат не соответствует тому, который разработчик принял, когда `/login` начался: реплики за одним адресом, обслуживающие разные сертификаты, перехват TLS на пути или ротация сертификата во время входа. | Обслуживайте один сертификат для имени хоста, затем попросите разработчика начать вход снова и проверить новый сертификат на [подсказке доверия](/docs/ru/claude-apps-gateway#connect-developers). |418| CLI `/login` останавливается с `The gateway's TLS certificate changed during sign-in: it no longer matches the one you trusted` | Запрос входа достиг сервера, чей сертификат не соответствует тому, который разработчик принял, когда начался `/login`: реплики за одним адресом, обслуживающие разные сертификаты, перехват TLS на пути или ротация сертификата во время входа. | Обслуживайте один сертификат для имени хоста, затем попросите разработчика снова начать вход и проверить новый сертификат в [запросе доверия](/docs/ru/claude-apps-gateway#connect-developers). |

418 419 

419Сообщение `Cloud gateway sign-in was not completed` называет имя хоста шлюза. Когда Claude Code имеет оба отпечатка, сообщение также показывает первые 16 символов каждого.420Сообщение `Cloud gateway sign-in was not completed` называет имя хоста шлюза. Когда у Claude Code есть и закреплённый отпечаток, и представленный, сообщение также показывает первые 16 символов каждого.

420 421 

421Если Claude Code сообщает `couldn't load your organization's managed settings` после входа в шлюз, Claude Code называет причину, перезагружается на месте и возобновляет разговор. Если Claude Code не может перезагрузиться, например в фоновом сеансе, Claude Code завершает сеанс и сохраняет вход.422Если Claude Code сообщает `couldn't load your organization's managed settings` после входа в шлюз, Claude Code называет причину, перезапускается на месте и возобновляет диалог. Если Claude Code не может перезапуститься, например в фоновой сессии, Claude Code завершает сессию и сохраняет вход.

423 

424<h3 id="request-headers-too-large-after-sign-in">

425 Слишком большие заголовки запросов после входа

426</h3>

427 

428Запросы разработчика могут завершаться ошибкой `431` после входа, если разработчик состоит во многих группах IdP.

429 

430Шлюз отвечает `431`, когда заголовки запроса в сумме превышают 256 KiB или значение [`limits.max_request_header_bytes`](/docs/ru/claude-apps-gateway-config#http-tuning), если вы его задали. Для таких запросов он не записывает ни строки в лог, ни события аудита. Версии шлюза до v2.1.284 отвечают `431` при превышении 16 KiB.

431 

432Что изменить, зависит от версии и конфигурации вашего шлюза:

433 

434* **Шлюз старше v2.1.284**: обновите шлюз

435* **Задан `limits.max_request_header_bytes`**: увеличьте значение или удалите ключ

436* **Ни то, ни другое не применимо, или `431` продолжает возникать после этого**: сделайте так, чтобы ваш IdP выдавал меньше групп. В разделе [Identity provider setup](#identity-provider-setup) описано, как Okta, Microsoft Entra ID и Google Workspace передают группы

422 437 

423<h2 id="related">438<h2 id="related">

424 Связанное439 Связанное

Details

1598 1598 

1599`<project>` — это путь вашего рабочего каталога со всеми символами, кроме букв и цифр, заменёнными на `-`, например `-Users-you-my-project`. Если вы установите [`CLAUDE_CODE_TMPDIR`](/docs/ru/env-vars), дерево переместится в этот каталог вместо этого. Hooks получают путь текущего сеанса как [`scratchpad_dir`](/docs/ru/hooks#common-input-fields).1599`<project>` — это путь вашего рабочего каталога со всеми символами, кроме букв и цифр, заменёнными на `-`, например `-Users-you-my-project`. Если вы установите [`CLAUDE_CODE_TMPDIR`](/docs/ru/env-vars), дерево переместится в этот каталог вместо этого. Hooks получают путь текущего сеанса как [`scratchpad_dir`](/docs/ru/hooks#common-input-fields).

1600 1600 

1601Файлы блокнота существуют столько же, сколько транскрипт сеанса: [очистка хранения](#cleaned-up-automatically) удаляет каталог при удалении транскрипта, и [`claude project purge`](#clear-local-data) не трогает временный каталог. Поскольку каталог находится в системном временном расположении, ваша операционная система также может его очистить, например при перезагрузке. Чтобы сохранить что-то, что написал Claude, попросите Claude переместить это в ваш проект.1601Файлы блокнота существуют столько же, сколько транскрипт сессии: [очистка хранения](#cleaned-up-automatically) удаляет каталог при удалении транскрипта, а [`claude purge`](#clear-local-data) не трогает временный каталог. Поскольку каталог находится в системном временном расположении, ваша операционная система также может его очистить, например при перезагрузке. Чтобы сохранить что-то, что написал Claude, попросите Claude переместить это в ваш проект.

1602 1602 

1603Сеанс имеет блокнот только когда выполняются все эти условия:1603Сеанс имеет блокнот только когда выполняются все эти условия:

1604 1604 


1645 Очистка локальных данных1645 Очистка локальных данных

1646</h3>1646</h3>

1647 1647 

1648Запустите `claude project purge`, чтобы удалить состояние, которое Claude Code хранит для одного проекта. Это удаляет:1648Запустите `claude purge`, чтобы удалить состояние, которое Claude Code хранит для одного проекта. Команда удаляет:

1649 1649 

1650* Транскрипты и автоматическую память в `projects/`1650* Транскрипты и автоматическую память в `projects/`

1651* Записи `tasks/`, `debug/` и `file-history/` для каждого сеанса1651* Записи `tasks/`, `debug/` и `file-history/` для каждого сеанса


1656 1656 

1657Команда выводит полный план удаления и запрашивает подтверждение перед удалением чего-либо.1657Команда выводит полный план удаления и запрашивает подтверждение перед удалением чего-либо.

1658 1658 

1659До v2.1.288 команда называлась `claude project purge`.

1660 

1659Примеры ниже используют `~/work/my-repo` как заполнитель. Замените его на путь к вашему проекту. Если состояние не совпадает с путём, команда выводит ошибку и выходит со статусом 1.1661Примеры ниже используют `~/work/my-repo` как заполнитель. Замените его на путь к вашему проекту. Если состояние не совпадает с путём, команда выводит ошибку и выходит со статусом 1.

1660 1662 

1661Предпросмотр плана без удаления:1663Предпросмотр плана без удаления:

1662 1664 

1663```bash theme={null}1665```bash theme={null}

1664claude project purge ~/work/my-repo --dry-run1666claude purge ~/work/my-repo --dry-run

1665```1667```

1666 1668 

1667План перечисляет каждый совпадающий элемент и причину его включения:1669План перечисляет каждый совпадающий элемент и причину его включения:


1684Удалить с одним запросом подтверждения:1686Удалить с одним запросом подтверждения:

1685 1687 

1686```bash theme={null}1688```bash theme={null}

1687claude project purge ~/work/my-repo1689claude purge ~/work/my-repo

1688```1690```

1689 1691 

1690Команда выводит тот же план, затем спрашивает `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` и удаляет только если вы ответите `y`.1692Команда выводит тот же план, затем спрашивает `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` и удаляет только если вы ответите `y`.


1694Пропустите запрос подтверждения для использования в скриптах:1696Пропустите запрос подтверждения для использования в скриптах:

1695 1697 

1696```bash theme={null}1698```bash theme={null}

1697claude project purge ~/work/my-repo --yes1699claude purge ~/work/my-repo --yes

1698```1700```

1699 1701 

1700Передайте `--all` вместо пути, чтобы очистить состояние для каждого проекта сразу, что удаляет `history.jsonl` полностью, а не фильтруя его. Передайте `-i`, чтобы пройти через план удаления по одному элементу за раз.1702Передайте `--all` вместо пути, чтобы очистить состояние для каждого проекта сразу, что удаляет `history.jsonl` полностью, а не фильтруя его. Передайте `-i`, чтобы пройти через план удаления по одному элементу за раз.

Details

500 Ограничения500 Ограничения

501</h2>501</h2>

502 502 

503* Projects доступны в claude.ai/code, в настольном приложении и в мобильном приложении Claude, но не в CLI терминала, расширении VS Code или плагине JetBrains, и не через Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry. Команда [`claude project`](/docs/ru/cli-reference) CLI, которая управляет локальным состоянием Claude Code для директории, не связана.503* Projects доступны в claude.ai/code, в настольном приложении и в мобильном приложении Claude, но не в CLI терминала, расширении VS Code или плагине JetBrains, и не через Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry.

504* Потоки проекта — это [облачные сеансы](/docs/ru/claude-code-on-the-web) или сеансы на вашей собственной машине через [Remote Control](/docs/ru/remote-control), с Anthropic в качестве поставщика модели в обоих случаях. [Безопасность](/docs/ru/security) и [Использование данных](/docs/ru/data-usage) охватывают, как облачные сеансы изолированы и что сохраняется, а [Connection and security](/docs/ru/remote-control#connection-and-security) охватывает, как поток на вашей машине подключается и что хранится.504* Потоки проекта — это [облачные сеансы](/docs/ru/claude-code-on-the-web) или сеансы на вашей собственной машине через [Remote Control](/docs/ru/remote-control), с Anthropic в качестве поставщика модели в обоих случаях. [Безопасность](/docs/ru/security) и [Использование данных](/docs/ru/data-usage) охватывают, как облачные сеансы изолированы и что сохраняется, а [Connection and security](/docs/ru/remote-control#connection-and-security) охватывает, как поток на вашей машине подключается и что хранится.

505* Вы не можете добавить сеанс, который вы запустили сами на вашей машине, в проект. Проект достигает вашей машины только путем [запуска потока там через Remote Control](#run-a-thread-on-your-own-computer), и этот раздел перечисляет, что ему нужно.505* Вы не можете добавить сеанс, который вы запустили сами на вашей машине, в проект. Проект достигает вашей машины только путем [запуска потока там через Remote Control](#run-a-thread-on-your-own-computer), и этот раздел перечисляет, что ему нужно.

506* Песочница потока приостанавливается между ходами и возобновляется, когда поток продолжает. Если песочница не может быть возобновлена, поток продолжает с свежего клона, поэтому незафиксированные изменения могут быть потеряны. На долгих задачах попросите Claude зафиксировать и отправить работу в процессе.506* Песочница потока приостанавливается между ходами и возобновляется, когда поток продолжает. Если песочница не может быть возобновлена, поток продолжает с свежего клона, поэтому незафиксированные изменения могут быть потеряны. На долгих задачах попросите Claude зафиксировать и отправить работу в процессе.

Details

40| `claude mcp login <name>` | Запустить процесс OAuth настроенного MCP-сервера без открытия интерактивной панели `/mcp`. Работает для HTTP, SSE и серверов коннекторов claude.ai. Добавьте `--no-browser` при работе через SSH, чтобы вывести URL авторизации вместо открытия браузера, а затем вставьте URL перенаправления обратно в поле ввода. См. [Аутентификация из командной строки](/docs/ru/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |40| `claude mcp login <name>` | Запустить процесс OAuth настроенного MCP-сервера без открытия интерактивной панели `/mcp`. Работает для HTTP, SSE и серверов коннекторов claude.ai. Добавьте `--no-browser` при работе через SSH, чтобы вывести URL авторизации вместо открытия браузера, а затем вставьте URL перенаправления обратно в поле ввода. См. [Аутентификация из командной строки](/docs/ru/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

41| `claude mcp logout <name>` | Очистить сохранённые учётные данные OAuth для MCP-сервера | `claude mcp logout sentry` |41| `claude mcp logout <name>` | Очистить сохранённые учётные данные OAuth для MCP-сервера | `claude mcp logout sentry` |

42| `claude plugin` | Управлять [плагинами](/docs/ru/plugins/overview) Claude Code. Псевдоним: `claude plugins`. Подкоманды см. в [справочнике по плагинам](/docs/ru/plugins/cli-reference#claude-plugin-commands) | `claude plugin install code-review@claude-plugins-official` |42| `claude plugin` | Управлять [плагинами](/docs/ru/plugins/overview) Claude Code. Псевдоним: `claude plugins`. Подкоманды см. в [справочнике по плагинам](/docs/ru/plugins/cli-reference#claude-plugin-commands) | `claude plugin install code-review@claude-plugins-official` |

43| `claude project purge [path]` | Удалить всё локальное состояние Claude Code для проекта: транскрипты, списки задач, логи отладки, историю редактирования файлов, строки истории промптов и запись проекта в `~/.claude.json`. Опустите `[path]`, чтобы выбрать из интерактивного списка. Флаги: `--dry-run` для предпросмотра, `-y`/`--yes` для пропуска подтверждения, `-i`/`--interactive` для подтверждения каждого элемента, `--all` для всех проектов. См. [Очистить локальные данные](/docs/ru/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |43| `claude purge [path]` | Удалить всё локальное состояние Claude Code для проекта: транскрипты, списки задач, логи отладки, историю редактирования файлов, строки истории промптов и запись проекта в `~/.claude.json`. Опустите `[path]`, чтобы выбрать из интерактивного списка. Флаги: `--dry-run` для предпросмотра, `-y`/`--yes` для пропуска подтверждения, `-i`/`--interactive` для подтверждения каждого элемента, `--all` для всех проектов. См. [Очистить локальные данные](/docs/ru/claude-directory#clear-local-data) | `claude purge ~/work/repo --dry-run` |

44| `claude remote-control` | Запустить сервер [Remote Control](/docs/ru/remote-control) для управления Claude Code из Claude.ai или приложения Claude. Работает в режиме сервера (без локальной интерактивной сессии). См. [флаги режима сервера](/docs/ru/remote-control#start-a-remote-control-session). После остановки сервера вы можете вернуть сессии, которые он обслуживал. См. [Возобновить сессии после остановки сервера](/docs/ru/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | Запустить сервер [Remote Control](/docs/ru/remote-control) для управления Claude Code из Claude.ai или приложения Claude. Работает в режиме сервера (без локальной интерактивной сессии). См. [флаги режима сервера](/docs/ru/remote-control#start-a-remote-control-session). После остановки сервера вы можете вернуть сессии, которые он обслуживал. См. [Возобновить сессии после остановки сервера](/docs/ru/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | Перезапустить [фоновую сессию](/docs/ru/agent-view#manage-sessions-from-the-shell), работающую или остановленную, с сохранением её диалога. Используйте `--all` для перезапуска всех работающих сессий, например чтобы применить обновлённый двоичный файл Claude Code | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | Перезапустить [фоновую сессию](/docs/ru/agent-view#manage-sessions-from-the-shell), работающую или остановленную, с сохранением её диалога. Используйте `--all` для перезапуска всех работающих сессий, например чтобы применить обновлённый двоичный файл Claude Code | `claude respawn 7c5dcf5d` |

46| `claude rm <id>` | Удалить [фоновую сессию](/docs/ru/agent-view#manage-sessions-from-the-shell) из списка. Если в удалении [отказано из-за worktree сессии](/docs/ru/agent-view#what-deleting-a-session-removes) и повторный вызов `claude rm` может это решить, сообщение об отказе выводит точный флаг и значение для передачи: `--discard-unpushed <commit>@<worktree-id>` отбрасывает worktree с неотправленными коммитами вместе с этими коммитами, а `--force-remove-worktree <worktree-id>` удаляет каталог worktree, который git или хук `WorktreeRemove` не смогли удалить. `--discard-unpushed` требует Claude Code v2.1.260 или новее, а `--force-remove-worktree` требует v2.1.268 или новее. Транскрипт диалога остаётся на вашем локальном компьютере и доступен через `claude --resume` | `claude rm 7c5dcf5d` |46| `claude rm <id>` | Удалить [фоновую сессию](/docs/ru/agent-view#manage-sessions-from-the-shell) из списка. Если в удалении [отказано из-за worktree сессии](/docs/ru/agent-view#what-deleting-a-session-removes) и повторный вызов `claude rm` может это решить, сообщение об отказе выводит точный флаг и значение для передачи: `--discard-unpushed <commit>@<worktree-id>` отбрасывает worktree с неотправленными коммитами вместе с этими коммитами, а `--force-remove-worktree <worktree-id>` удаляет каталог worktree, который git или хук `WorktreeRemove` не смогли удалить. `--discard-unpushed` требует Claude Code v2.1.260 или новее, а `--force-remove-worktree` требует v2.1.268 или новее. Транскрипт диалога остаётся на вашем локальном компьютере и доступен через `claude --resume` | `claude rm 7c5dcf5d` |


51 51 

52Если вы опечатаетесь в подкоманде, Claude Code предложит ближайшее совпадение и завершит работу без запуска сессии. Например, `claude udpate` выводит `Did you mean claude update?`.52Если вы опечатаетесь в подкоманде, Claude Code предложит ближайшее совпадение и завершит работу без запуска сессии. Например, `claude udpate` выводит `Did you mean claude update?`.

53 53 

54Начиная с версии v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` запускает подкоманду `daemon`. В более ранних версиях `daemon <subcommand>` рассматривалась как промпт для новой интерактивной сессии, поэтому подкоманда никогда не выполнялась, если флаг шёл первым, — распространённая ситуация, когда для `claude` задан псевдоним, включающий этот флаг. Только стоящий в начале `--dangerously-skip-permissions` или `--allow-dangerously-skip-permissions` направляет к `daemon` таким образом; любой другой флаг в начале по-прежнему запускает интерактивную сессию.54`claude --dangerously-skip-permissions daemon <subcommand>` запускает подкоманду `daemon`, поэтому подкоманда работает, когда для `claude` задан псевдоним, включающий этот флаг. Только стоящий в начале `--dangerously-skip-permissions` или `--allow-dangerously-skip-permissions` направляет к `daemon` таким образом; если перед `daemon` стоит любой другой флаг, подкоманда не выполняется.

55 55 

56<h2 id="cli-flags">56<h2 id="cli-flags">

57 Флаги CLI57 Флаги CLI

Details

118 Добавление учётных данных118 Добавление учётных данных

119</h4>119</h4>

120 120 

121Вы добавляете учётные данные по одному из редактора среды, которая уже существует. Диалог для новой среды их не предлагает. Редактирования тоже нет. Чтобы изменить хосты учётных данных или значение, удалите их и добавьте снова.121Вы добавляете учётные данные по одному и не можете редактировать их после добавления. Чтобы изменить хосты или значение учётных данных, удалите их и добавьте снова.

122 122 

123<Steps>123<Steps>

124 <Step title="Откройте учётные данные API среды">124 <Step title="Откройте учётные данные API среды">

125 [Откройте среду для редактирования](#configure-your-environment) на [claude.ai/code](https://claude.ai/code). В диалоге **Edit cloud environment** найдите **API credentials** ниже **Environment variables**. Вы видите учётные данные, уже находящиеся в среде, каждые с хостами, к которым они применяются.125 [Откройте среду для редактирования](#configure-your-environment) на [claude.ai/code](https://claude.ai/code). В диалоге **Edit environment** найдите раздел **API credentials**. Вы видите учётные данные, уже находящиеся в среде, каждые с хостами, к которым они применяются.

126 </Step>126 </Step>

127 127 

128 <Step title="Добавьте учётные данные">128 <Step title="Добавьте учётные данные">

129 Выберите **Add credential** и заполните форму. Сохраняйте тип учётных данных по умолчанию, **Bearer**, для ключа API, который путешествует в заголовке запроса, и заполните эти поля:129 Выберите **Add credential** и заполните форму. Оставьте **Credential type** по умолчанию, **Bearer**, для API-ключа, который передаётся в заголовке запроса, и заполните эти поля:

130 130 

131 * **Name**: метка для учётных данных, такая как `Internal billing API`131 * **Name**: метка для учётных данных, такая как `Internal billing API`

132 * **Allowed websites**: хосты API, такие как `api.example.com`. Ведущий `*.` соответствует каждому поддомену132 * **Allowed websites**: хосты API, такие как `api.example.com`. Ведущий `*.` соответствует каждому поддомену

code-review.md +1 −0

Details

348 * `--fix`: применяет результаты к вашему рабочему дереву после проверки348 * `--fix`: применяет результаты к вашему рабочему дереву после проверки

349 * `--comment`: публикует результаты в pull request GitHub в виде встроенных комментариев или в merge request GitLab в виде одной заметки349 * `--comment`: публикует результаты в pull request GitHub в виде встроенных комментариев или в merge request GitLab в виде одной заметки

350 * `--post`: при `ultra` облачной проверке pull request `github.com` предварительно выбирает публикацию завершённых результатов в PR в диалоговом окне запуска; см. [Публикация результатов в pull request](/docs/ru/ultrareview#post-findings-to-the-pull-request). Требуется Claude Code v2.1.227 или позже350 * `--post`: при `ultra` облачной проверке pull request `github.com` предварительно выбирает публикацию завершённых результатов в PR в диалоговом окне запуска; см. [Публикация результатов в pull request](/docs/ru/ultrareview#post-findings-to-the-pull-request). Требуется Claude Code v2.1.227 или позже

351 * `--max-findings <n>`, `--max-findings all` или `--max-findings default`: сообщает до `n` результатов или все результаты с `all` вместо обычного ограничения проверки. Последующие проверки повторно используют введённое вами значение, пока вы не передадите `--max-findings default`. Требуется Claude Code v2.1.288 или позже

351 352 

352 Когда вы передаёте `--comment` для merge request GitLab, Claude Code публикует результаты через CLI `glab` GitLab. Требуется Claude Code v2.1.257 или позже. Когда `glab` не установлен, Claude выводит результаты в терминал вместо этого.353 Когда вы передаёте `--comment` для merge request GitLab, Claude Code публикует результаты через CLI `glab` GitLab. Требуется Claude Code v2.1.257 или позже. Когда `glab` не установлен, Claude выводит результаты в терминал вместо этого.

353 354 

commands.md +2 −2

Details

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/ru/skills#bundled-skills).** Загрузить справочный материал [Claude API](https://platform.claude.com/docs/en/api/overview) и [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) для языка вашего проекта. Также активируется автоматически, когда ваш код импортирует `anthropic` или `@anthropic-ai/sdk`. Для того, что делает каждая подкоманда и какую версию она требует, см. [Работать над проектами Claude API](/docs/ru/skills#work-on-claude-api-projects) |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/ru/skills#bundled-skills).** Загрузить справочный материал [Claude API](https://platform.claude.com/docs/en/api/overview) и [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) для языка вашего проекта. Также активируется автоматически, когда ваш код импортирует `anthropic` или `@anthropic-ai/sdk`. Для того, что делает каждая подкоманда и какую версию она требует, см. [Работать над проектами Claude API](/docs/ru/skills#work-on-claude-api-projects) |

73| `/claude-in-chrome [task]` | **[Skill](/docs/ru/skills#bundled-skills).** Попросить Claude выполнить задачу в вашем браузере, такую как тестирование страницы, заполнение формы или чтение логов консоли, через [Claude в Chrome](/docs/ru/chrome). Доступно, когда интеграция Chrome включена для сессии, например с `claude --chrome`, или когда Claude Code может предложить [установить расширение](/docs/ru/chrome#install-the-extension-when-claude-asks) |73| `/claude-in-chrome [task]` | **[Skill](/docs/ru/skills#bundled-skills).** Попросить Claude выполнить задачу в вашем браузере, такую как тестирование страницы, заполнение формы или чтение логов консоли, через [Claude в Chrome](/docs/ru/chrome). Доступно, когда интеграция Chrome включена для сессии, например с `claude --chrome`, или когда Claude Code может предложить [установить расширение](/docs/ru/chrome#install-the-extension-when-claude-asks) |

74| `/clear [name]` | Начать новый разговор с пустым контекстом. Передайте имя для обозначения предыдущего разговора в средстве выбора `/resume`. Чтобы освободить контекст, продолжая тот же разговор, используйте `/compact` вместо этого. Возобновите предыдущий разговор с помощью `/resume`, или, в том же процессе Claude Code, восстановите его из [записи предыдущей сессии меню перемотки](/docs/ru/checkpointing#rewind-past-a-cleared-conversation). Псевдонимы: `/reset`, `/new` |74| `/clear [name]` | Начать новый разговор с пустым контекстом. Передайте имя для обозначения предыдущего разговора в средстве выбора `/resume`. Чтобы освободить контекст, продолжая тот же разговор, используйте `/compact` вместо этого. Возобновите предыдущий разговор с помощью `/resume`, или, в том же процессе Claude Code, восстановите его из [записи предыдущей сессии меню перемотки](/docs/ru/checkpointing#rewind-past-a-cleared-conversation). Псевдонимы: `/reset`, `/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/ru/skills#bundled-skills).** Проверить текущий diff или номер PR, ветку или путь, который вы передаёте, на наличие ошибок корректности. В зависимости от вашей модели и уровня усилия, проверка также охватывает возможности очистки. Передайте `--fix` для применения результатов, `--comment` для их публикации на GitHub PR или GitLab merge request, или `ultra` для запуска глубокой [облачной проверки](/docs/ru/ultrareview). Публикация в GitLab merge request требует Claude Code v2.1.257 или позже. С `ultra` на целевом `github.com` PR передайте `--post` для предварительного выбора [публикации готовых результатов на PR](/docs/ru/ultrareview#post-findings-to-the-pull-request) в диалоге запуска; `--post` требует Claude Code v2.1.227 или позже. См. [Проверить diff локально](/docs/ru/code-review#review-a-diff-locally) для уровней усилия, нацеливания и того, как это связано с `/simplify`. Псевдоним: `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/ru/skills#bundled-skills).** Проверить текущий diff или номер PR, ветку или путь, который вы передаёте, на наличие ошибок корректности. В зависимости от вашей модели и уровня усилия, проверка также охватывает возможности очистки. Передайте `--fix` для применения результатов, `--comment` для их публикации на GitHub PR или GitLab merge request, или `ultra` для запуска глубокой [облачной проверки](/docs/ru/ultrareview). Публикация в GitLab merge request требует Claude Code v2.1.257 или позже. С `ultra` на целевом `github.com` PR передайте `--post` для предварительного выбора [публикации готовых результатов на PR](/docs/ru/ultrareview#post-findings-to-the-pull-request) в диалоге запуска; `--post` требует Claude Code v2.1.227 или позже. См. [Проверить diff локально](/docs/ru/code-review#review-a-diff-locally) для уровней усилия, нацеливания и того, как это связано с `/simplify`. Псевдоним: `/review` |

76| `/color [color\|default]` | Установить цвет строки промпта для текущей сессии. Доступные цвета: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Используйте `default` для сброса или запустите без аргумента для выбора случайного цвета. Когда [Remote Control](/docs/ru/remote-control) подключён, цвет синхронизируется с claude.ai/code. Также доступно в неинтерактивном режиме (`-p`); требует Claude Code v2.1.205 или позже |76| `/color [color\|default]` | Установить цвет строки промпта для текущей сессии. Доступные цвета: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Используйте `default` для сброса или запустите без аргумента для выбора случайного цвета. Когда [Remote Control](/docs/ru/remote-control) подключён, цвет синхронизируется с claude.ai/code. Также доступно в неинтерактивном режиме (`-p`); требует Claude Code v2.1.205 или позже |

77| `/compact [instructions]` | Освободить контекст путём суммирования разговора до сих пор. Опционально передайте инструкции фокуса для суммирования. См. [как сжатие обрабатывает правила, skills и файлы памяти](/docs/ru/context-window#what-survives-compaction) |77| `/compact [instructions]` | Освободить контекст путём суммирования разговора до сих пор. Опционально передайте инструкции фокуса для суммирования. См. [как сжатие обрабатывает правила, skills и файлы памяти](/docs/ru/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | Открыть интерфейс [Параметры](/docs/ru/settings) для настройки темы, модели, [стиля вывода](/docs/ru/output-styles) и других предпочтений. Передайте одну или несколько пар `key=value` для установки параметра напрямую без открытия интерфейса, например `/config thinking=false`, `/config theme=dark` или `/config model=sonnet`. Форма `key=value` также работает в неинтерактивном режиме (`-p`) и из мобильного приложения Claude через [Remote Control](/docs/ru/remote-control). Форма `key=value` не может включить параметр, который требует вашего подтверждения на панели, такой как [`autoContinueAtUsageLimit`](/docs/ru/interactive-mode#turn-automatic-continue-off), хотя может его отключить. Запустите `/config --help` для списка принимаемых ключей. Псевдоним: `/settings` |78| `/config [key=value ...]` | Открыть интерфейс [Параметры](/docs/ru/settings) для настройки темы, модели, [стиля вывода](/docs/ru/output-styles) и других предпочтений. Передайте одну или несколько пар `key=value` для установки параметра напрямую без открытия интерфейса, например `/config thinking=false`, `/config theme=dark` или `/config model=sonnet`. Форма `key=value` также работает в неинтерактивном режиме (`-p`) и из мобильного приложения Claude через [Remote Control](/docs/ru/remote-control). Форма `key=value` не может включить параметр, который требует вашего подтверждения на панели, такой как [`autoContinueAtUsageLimit`](/docs/ru/interactive-mode#turn-automatic-continue-off), хотя может его отключить. Запустите `/config --help` для списка принимаемых ключей. Псевдоним: `/settings` |


134| `/remote-env` | Выбрать [облачное окружение](/docs/ru/cloud-environments#select-an-environment-from-the-cli) по умолчанию для облачных сессий, которые вы запускаете из CLI |134| `/remote-env` | Выбрать [облачное окружение](/docs/ru/cloud-environments#select-an-environment-from-the-cli) по умолчанию для облачных сессий, которые вы запускаете из CLI |

135| `/rename [name]` | Переименовать текущую сессию и показать имя на строке промпта. Без имени автоматически создаёт одно из истории разговора. Также доступно в неинтерактивном режиме (`-p`); требует Claude Code v2.1.205 или позже. Из каждого интерфейса переименования, включая claude.ai и приложение рабочего стола, Claude Code заменяет управляющие и невидимые символы в новом имени пробелами и ограничивает имя 200 символами. Если имя пусто после удаления невидимых символов, Claude Code отклоняет его и показывает `That name is empty once invisible characters are removed. Usage: /rename <name>`. Замена символов и ограничение длины требуют Claude Code v2.1.221 или позже. Если другая живая сессия на этой машине уже использует имя, которое вы передаёте, Claude Code применяет [вариант его](/docs/ru/sessions#name-your-sessions) вместо этого |135| `/rename [name]` | Переименовать текущую сессию и показать имя на строке промпта. Без имени автоматически создаёт одно из истории разговора. Также доступно в неинтерактивном режиме (`-p`); требует Claude Code v2.1.205 или позже. Из каждого интерфейса переименования, включая claude.ai и приложение рабочего стола, Claude Code заменяет управляющие и невидимые символы в новом имени пробелами и ограничивает имя 200 символами. Если имя пусто после удаления невидимых символов, Claude Code отклоняет его и показывает `That name is empty once invisible characters are removed. Usage: /rename <name>`. Замена символов и ограничение длины требуют Claude Code v2.1.221 или позже. Если другая живая сессия на этой машине уже использует имя, которое вы передаёте, Claude Code применяет [вариант его](/docs/ru/sessions#name-your-sessions) вместо этого |

136| `/resume [session]` | Возобновить разговор по ID или имени или открыть средство выбора сессии. [Фоновые сессии](/docs/ru/agent-view) появляются в средстве выбора отмеченные с `bg`. Возобновление одной, которая всё ещё работает, из средства выбора или по ID или имени, [открывает эту сессию](/docs/ru/sessions#resume-a-running-background-session): ваш текущий разговор переходит в фон и этот терминал прикрепляется к работающей. Нажмите `←` на пустом промпте для возврата в представление агента, которое также перечисляет разговор, который вы оставили. До версии 2.1.285 Claude Code отказывал и говорил вам открыть сессию с `claude attach` или остановить её сначала. Псевдоним: `/continue` |136| `/resume [session]` | Возобновить разговор по ID или имени или открыть средство выбора сессии. [Фоновые сессии](/docs/ru/agent-view) появляются в средстве выбора отмеченные с `bg`. Возобновление одной, которая всё ещё работает, из средства выбора или по ID или имени, [открывает эту сессию](/docs/ru/sessions#resume-a-running-background-session): ваш текущий разговор переходит в фон и этот терминал прикрепляется к работающей. Нажмите `←` на пустом промпте для возврата в представление агента, которое также перечисляет разговор, который вы оставили. До версии 2.1.285 Claude Code отказывал и говорил вам открыть сессию с `claude attach` или остановить её сначала. Псевдоним: `/continue` |

137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | Псевдоним [`/code-review`](/docs/ru/code-review#review-a-diff-locally): проверяет текущий diff или номер PR, ветку или путь, который вы передаёте, такой как `/review 1234`, и принимает те же уровни усилия и флаги. Без заданного уровня проверка повторно использует последний уровень от `low` до `max`, который вы вводили; см. [Проверить diff локально](/docs/ru/code-review#review-a-diff-locally) для точных правил. Для глубокой облачной проверки используйте [`/code-review ultra`](/docs/ru/ultrareview). До версии 2.1.223 `/review` была отдельной командой, которая запускала однопроходную проверку только для чтения GitHub pull request по номеру, перечисляя открытые PR для выбора при запуске без аргумента; с v2.1.186 по v2.1.201 она запускала тот же многоагентный движок, что и `/code-review medium` |137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Псевдоним [`/code-review`](/docs/ru/code-review#review-a-diff-locally): проверяет текущий diff или номер PR, ветку или путь, который вы передаёте, такой как `/review 1234`, и принимает те же уровни усилия и флаги. Без заданного уровня проверка повторно использует последний уровень от `low` до `max`, который вы вводили; см. [Проверить diff локально](/docs/ru/code-review#review-a-diff-locally) для точных правил. Для глубокой облачной проверки используйте [`/code-review ultra`](/docs/ru/ultrareview). До версии 2.1.223 `/review` была отдельной командой, которая запускала однопроходную проверку только для чтения GitHub pull request по номеру, перечисляя открытые PR для выбора при запуске без аргумента; с v2.1.186 по v2.1.201 она запускала тот же многоагентный движок, что и `/code-review medium` |

138| `/rewind` | Перемотать разговор и/или код к предыдущей точке или суммировать из выбранного сообщения. См. [checkpointing](/docs/ru/checkpointing). Псевдонимы: `/checkpoint`, `/undo` |138| `/rewind` | Перемотать разговор и/или код к предыдущей точке или суммировать из выбранного сообщения. См. [checkpointing](/docs/ru/checkpointing). Псевдонимы: `/checkpoint`, `/undo` |

139| `/run` | **[Skill](/docs/ru/skills#bundled-skills).** Запустить и управлять приложением вашего проекта, чтобы увидеть работающее изменение, не только проходящие тесты. См. [Запустить и проверить ваше приложение](/docs/ru/skills#run-and-verify-your-app) |139| `/run` | **[Skill](/docs/ru/skills#bundled-skills).** Запустить и управлять приложением вашего проекта, чтобы увидеть работающее изменение, не только проходящие тесты. См. [Запустить и проверить ваше приложение](/docs/ru/skills#run-and-verify-your-app) |

140| `/run-skill-generator` | **[Skill](/docs/ru/skills#bundled-skills).** Научить `/run` и `/verify` как собирать, запускать и управлять приложением вашего проекта из чистого окружения путём написания per-project [skill](/docs/ru/skills#run-and-verify-your-app) |140| `/run-skill-generator` | **[Skill](/docs/ru/skills#bundled-skills).** Научить `/run` и `/verify` как собирать, запускать и управлять приложением вашего проекта из чистого окружения путём написания per-project [skill](/docs/ru/skills#run-and-verify-your-app) |

Details

48 48 

49 Начиная с сегодня у вас есть доступ к Claude Code, агенту AI для кодирования, который работает в49 Начиная с сегодня у вас есть доступ к Claude Code, агенту AI для кодирования, который работает в

50 вашем терминале, читает вашу фактическую кодовую базу и выполняет реальные задачи от начала до конца:50 вашем терминале, читает вашу фактическую кодовую базу и выполняет реальные задачи от начала до конца:

51 отладка, рефакторинг, тесты, PR. Это не автодополнение и не окно чата. Он редактирует файлы,51 отладка, рефакторинг, тесты, PR. Это не автодополнение и не окно чата. Он редактирует файлы

52 запускает ваши команды и просит разрешение перед чем-либо рискованным.52 и запускает ваши команды.

53 53 

54 Начните работу за две минуты:54 Начните работу за две минуты:

55 55 


66 - "Расскажите мне, как [модуль] обрабатывает [X]"66 - "Расскажите мне, как [модуль] обрабатывает [X]"

67 - "Посмотрите на мой рабочий diff и скажите мне, что рискованно перед тем, как я отправлю"67 - "Посмотрите на мой рабочий diff и скажите мне, что рискованно перед тем, как я отправлю"

68 68 

69 Куда идет ваш код: Claude Code работает в вашем терминале и разговаривает напрямую69 Куда идет ваш код: Claude Code работает в вашем терминале и обращается напрямую

70 с API Anthropic, без сторонних серверов в цепи. Он просит разрешение перед70 к API Anthropic. В соответствии с нашим планом Team или Enterprise

71 редактированием файлов или запуском команд. В соответствии с нашим планом Team или Enterprise,71 Anthropic не использует ваш код или промпты для обучения своих моделей.

72 Anthropic не использует ваш код или подсказки для обучения своих моделей.

73 Подробности: https://code.claude.com/docs/en/data-usage72 Подробности: https://code.claude.com/docs/en/data-usage

74 https://code.claude.com/docs/en/security73 https://code.claude.com/docs/en/security

75 74 


88 🚀 *Claude Code доступен для [команды]*87 🚀 *Claude Code доступен для [команды]*

89 88 

90 Агент AI для кодирования, работает в вашем терминале, читает ваш репозиторий, выполняет реальную работу:89 Агент AI для кодирования, работает в вашем терминале, читает ваш репозиторий, выполняет реальную работу:

91 ошибки, рефакторинг, тесты, PR. Просит разрешение перед тем, как что-либо трогать.90 ошибки, рефакторинг, тесты, PR.

92 91 

93 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`92 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`

94 93 

95 *Первое, что нужно попробовать* → запустите `/init`, затем: "тест в [файл] нестабилен,94 *Первое, что нужно попробовать* → запустите `/init`, затем: "тест в [файл] нестабилен,

96 выясните почему и исправьте".95 выясните почему и исправьте".

97 96 

98 🔒 Работает в вашем терминале, разговаривает только с API Anthropic. В соответствии с нашим97 🔒 Работает в вашем терминале, обращается напрямую к API Anthropic. В соответствии с нашим

99 планом Team или Enterprise ваш код и подсказки не используются для обучения моделей.98 планом Team или Enterprise ваш код и промпты не используются для обучения моделей.

100 Использование данных → https://code.claude.com/docs/en/data-usage99 Использование данных → https://code.claude.com/docs/en/data-usage

101 100 

102 📚 Quickstart · VS Code · Бесплатный курс на 1 час101 📚 Quickstart · VS Code · Бесплатный курс на 1 час


182[Продолжите с "Начните работу за две минуты" из стандартного объявления]181[Продолжите с "Начните работу за две минуты" из стандартного объявления]

183 182 

184Одна дополнительная вещь для пилотов: при первом изменении нескольких файлов нажмите Shift+Tab183Одна дополнительная вещь для пилотов: при первом изменении нескольких файлов нажмите Shift+Tab

185пока не увидите "plan". Claude выложит ровно то, что он намеревается сделать184пока не увидите "plan". Claude изложит то, что он намеревается сделать,

186перед тем, как трогать файл. Это самый быстрый способ откалибровать, насколько ему доверять.185не редактируя ваш исходный код. Это самый быстрый способ откалибровать, насколько ему доверять.

187```186```

188 187 

189<h3 id="champion-recruitment-dm">188<h3 id="champion-recruitment-dm">


316**Режимы разрешений**315**Режимы разрешений**

317 316 

318```markdown theme={null}317```markdown theme={null}

319🛡️ *Совет: Один нажатие клавиши между "смотреть, но не трогать" и "просто сделай это"*318🛡️ *Совет: Одно нажатие клавиши между "смотри, но не трогай" и "просто сделай это"*

320 319 

321Иногда вы хотите, чтобы Claude просил перед каждым редактированием. Иногда вы просто хотите320Иногда вы хотите, чтобы Claude спрашивал перед каждой правкой. Иногда вы просто хотите,

322чтобы он отправил. Вы не должны выбирать один навсегда.321чтобы он довёл дело до конца. Не нужно раз и навсегда выбирать что-то одно.

323 322 

324*Shift+Tab* циклирует, сколько Claude может делать без запроса: *Manual* (значение323*Shift+Tab* переключает, сколько Claude может делать без вашего подтверждения: *Manual* (значение

325`default`) просит перед редактированием файлов и большинством команд оболочки, *acceptEdits* позволяет редактированиям файлов и общим командам файловой системы324настройки `default`) спрашивает перед редактированием файлов и большинством команд оболочки, *acceptEdits* пропускает

326проходить, пока все еще проверяя перед другими командами оболочки, и *plan*325редактирование файлов и распространённые команды файловой системы,

327предлагает изменения для вашего одобрения перед тем, как что-либо будет тронуто. Plan mode — это326но по-прежнему спрашивает перед другими командами оболочки, а *plan*

328строитель доверия, поэтому начните с него для чего-либо, касающегося нескольких файлов.327исследует код и предлагает изменения, не редактируя ваши исходники. Режим планирования

328помогает выстроить доверие, поэтому начинайте с него для всего, что затрагивает несколько файлов.

329 329 

330*Попробуйте сейчас:* на вашем следующем рефакторинге нажмите Shift+Tab пока не увидите "plan",330*Попробуйте сейчас:* при следующем рефакторинге нажимайте Shift+Tab, пока не увидите "plan",

331затем опишите изменение. Вы получите полное предложение перед тем, как один файл переместится.331затем опишите изменение. Вы получите полное предложение для проверки.

332 332 

333📖 Режимы разрешений → https://code.claude.com/docs/ru/permissions333📖 Режимы разрешений → https://code.claude.com/docs/ru/permissions

334```334```


480**Архитектура безопасности**480**Архитектура безопасности**

481 481 

482```markdown theme={null}482```markdown theme={null}

483🔐 *Совет: Ответ на "это безопасно?" на следующий раз, когда вас спросят*483🔐 *Совет: Ответ на вопрос "это безопасно?" на случай, когда вас спросят в следующий раз*

484 484 

485Кто-то в вашей команде спросит "подождите, куда идет мой код?"485Кто-нибудь в вашей команде обязательно спросит: "подождите, а куда уходит мой код?"

486Вот краткая версия, которую вы можете вставить.486Вот краткая версия ответа, которую можно вставить.

487 487 

488Разрешение в первую очередь по дизайну. Каждое редактирование файла, команда оболочки и внешний488Режим разрешений определяет, какие действия Claude может выполнять, не спрашивая вас

489вызов контролируются вашим одобрением. CLI работает в вашем терминале и разговаривает489заранее. CLI работает в вашем терминале, обращается напрямую к API Anthropic

490напрямую с API Anthropic, без сторонних серверов, и поддерживает опциональное490и поддерживает опциональную изоляцию в песочнице на уровне ОС для shell-команд. На тарифах Team и Enterprise

491изоляцию на уровне ОС для команд оболочки. В соответствии с нашим планом Enterprise,491Anthropic не использует ваш код или промпты для обучения своих моделей.

492Anthropic не использует ваш код или подсказки для обучения своих моделей.

493 492 

494*Попробуйте сейчас:* сохраните эти две ссылки на следующий раз, когда вопрос возникнет.493*Попробуйте сейчас:* сохраните эти две ссылки на случай, когда вопрос возникнет снова.

495Они отвечают на большинство вопросов безопасности.494Они отвечают на большинство вопросов проверки безопасности.

496 495 

497📖 https://code.claude.com/docs/ru/security496📖 https://code.claude.com/docs/ru/security

498📖 https://code.claude.com/docs/ru/data-usage497📖 https://code.claude.com/docs/ru/data-usage


532| - | - |531| - | - |

533| "Работает ли это в VS Code?" | Да. Существует расширение VS Code и плагин JetBrains с одинаковыми функциями, встроенные в ваш редактор. [VS Code →](/docs/ru/vs-code) |532| "Работает ли это в VS Code?" | Да. Существует расширение VS Code и плагин JetBrains с одинаковыми функциями, встроенные в ваш редактор. [VS Code →](/docs/ru/vs-code) |

534| "Нужно ли мне что-то настраивать в первую очередь?" | Нет. Установите, затем запустите `claude` в любом репозитории. Запустите `/init` один раз и всё готово. [Быстрый старт →](/docs/ru/quickstart) |533| "Нужно ли мне что-то настраивать в первую очередь?" | Нет. Установите, затем запустите `claude` в любом репозитории. Запустите `/init` один раз и всё готово. [Быстрый старт →](/docs/ru/quickstart) |

535| "Куда идёт мой код?" | CLI работает в вашем терминале и отправляет контекст в API Anthropic для вывода, без серверов третьих сторон. В плане Team или Enterprise ваш код и подсказки не используются для обучения моделей. [Использование данных →](/docs/ru/data-usage) |534| "Куда идёт мой код?" | CLI работает в вашем терминале и отправляет контекст в API Anthropic для вывода. В плане Team или Enterprise ваш код и промпты не используются для обучения моделей. [Использование данных →](/docs/ru/data-usage) |

536| "Может ли он видеть весь мой репозиторий?" | Он читает то, к чему вы ему даёте доступ. Чтение файлов в вашем рабочем каталоге не требует подтверждения; подсказки разрешений контролируют редактирование, команды оболочки, не являющиеся только для чтения, и чтение файлов инструментом file-tool вне этого каталога. Встроенный набор команд оболочки только для чтения, таких как `ls` и `cat`, работает без подтверждения; ограничьте его с помощью [правил sandboxing `denyRead`](/docs/ru/sandboxing#filesystem-isolation). [Разрешения →](/docs/ru/permissions) |535| "Может ли он видеть весь мой репозиторий?" | Он читает то, к чему вы ему даёте доступ. Чтение файлов в вашем рабочем каталоге не требует подтверждения. [Разрешения →](/docs/ru/permissions) |

537| "Чем это отличается от Copilot?" | Copilot автодополняет строки. Claude Code — это агент, который читает файлы, запускает команды и выполняет многофайловые редактирования. [Обзор →](/docs/ru/overview) |536| "Чем это отличается от Copilot?" | Copilot автодополняет строки. Claude Code — это агент, который читает файлы, запускает команды и выполняет многофайловые редактирования. [Обзор →](/docs/ru/overview) |

538| "Что мне попробовать в первую очередь?" | Ошибку, которую вы откладывали, потому что это утомительно. "Тест в \[файле] нестабилен, выясните почему." [Быстрый старт →](/docs/ru/quickstart) |537| "Что мне попробовать в первую очередь?" | Ошибку, которую вы откладывали, потому что это утомительно. "Тест в \[файле] нестабилен, выясните почему." [Быстрый старт →](/docs/ru/quickstart) |

539 538 

Details

226* **Получающий сеанс запрашивает разрешения**: Claude Code доставляет каждое сообщение. Он удерживает одно для вашего одобрения только когда отправляющий сеанс идентифицирует себя как обходящий запросы разрешений.226* **Получающий сеанс запрашивает разрешения**: Claude Code доставляет каждое сообщение. Он удерживает одно для вашего одобрения только когда отправляющий сеанс идентифицирует себя как обходящий запросы разрешений.

227* **Получающий сеанс обходит запросы разрешений**: Claude Code удерживает каждое сообщение для вашего одобрения. Он доставляет одно только когда отправляющий сеанс идентифицирует себя как также обходящий.227* **Получающий сеанс обходит запросы разрешений**: Claude Code удерживает каждое сообщение для вашего одобрения. Он доставляет одно только когда отправляющий сеанс идентифицирует себя как также обходящий.

228 228 

229Когда значение по умолчанию удерживает сообщение, Claude Code открывает диалог одобрения в получающем сеансе. Диалог показывает отправителя и предпросмотр:229Когда поведение по умолчанию удерживает сообщение в интерактивной сессии терминала, Claude Code открывает там диалоговое окно подтверждения. Оно показывает отправителя и предпросмотр:

230 230 

231* **Approve** доставляет то одно сообщение Claude.231* **Approve** доставляет то одно сообщение Claude.

232* **Deny**, или закрытие диалога, отбрасывает его.232* **Deny**, или закрытие диалога, отбрасывает его.


234* Пока терминал не прикреплен к [фоновому сеансу](/docs/ru/agent-view), Claude Code оставляет диалог открытым после крайнего срока. После того как вы прикрепите, если диалог остается без ответа в течение полного периода крайнего срока, Claude Code закрывает его и отбрасывает сообщение.234* Пока терминал не прикреплен к [фоновому сеансу](/docs/ru/agent-view), Claude Code оставляет диалог открытым после крайнего срока. После того как вы прикрепите, если диалог остается без ответа в течение полного периода крайнего срока, Claude Code закрывает его и отбрасывает сообщение.

235* Если класс режима разрешений этого сеанса изменяется пока сообщения удерживаются, Claude Code повторно применяет входящие правила, доставляет сообщения, которые они теперь принимают, и показывает уведомление.235* Если класс режима разрешений этого сеанса изменяется пока сообщения удерживаются, Claude Code повторно применяет входящие правила, доставляет сообщения, которые они теперь принимают, и показывает уведомление.

236 236 

237Сессия в расширении VS Code или в приложении Desktop не может показать диалоговое окно. Claude Code хранит там удержанное сообщение до того же срока, как описано в разделе [Неинтерактивные сессии](#non-interactive-sessions).

238 

237Claude Code удерживает максимум 100 сообщений, и после этого отбрасывает самое старое.239Claude Code удерживает максимум 100 сообщений, и после этого отбрасывает самое старое.

238 240 

239<h3 id="non-interactive-sessions">241<h3 id="non-interactive-sessions">

env-vars.md +382 −380

Details

124 Переменные124 Переменные

125</h2>125</h2>

126 126 

127Числовые переменные, такие как таймауты, бюджеты токенов и количество повторов, принимают научную нотацию и написание с разделителями цифр в дополнение к простым цифрам, за исключением случаев, когда в строке переменной указано, что она принимает только простые цифры. Например, Claude Code читает `2e3` как 2000 и `64_000` как 64000. До версии 2.1.211 эти написания могли молча установить гораздо меньшее значение, например `1e6` установить таймаут на 1.127Числовые переменные, такие как таймауты, бюджеты токенов и количество повторных попыток, помимо обычных цифр принимают экспоненциальную запись и запись с разделителями разрядов, кроме случаев, когда в строке переменной указано, что она принимает только обычные цифры. Например, Claude Code читает `2e3` как 2000, а `64_000` как 64000. До v2.1.211 такие варианты записи могли незаметно устанавливать гораздо меньшее значение, например `1e6` устанавливало таймаут равным 1.

128 128 

129<Note>129<Note>

130 Для переменных, которые включают или отключают поведение, установите `1`, `true`, `yes` или `on`, чтобы включить, и `0`, `false`, `no` или `off`, чтобы отключить, в любом регистре.130 Для переменных, которые включают или отключают какое-либо поведение, задайте `1`, `true`, `yes` или `on`, чтобы включить его, и `0`, `false`, `no` или `off`, чтобы отключить, в любом регистре.

131 131 

132 Некоторые переменные читают только то, установлены ли они вообще, поэтому любое непустое значение, включая `0`, включает поведение, а отключить поведение можно, отменив установку переменной или установив её на пустое значение. Эти переменные работают таким образом:132 Некоторые переменные проверяют только то, заданы ли они вообще, поэтому любое непустое значение, включая `0`, включает поведение, а отключить его можно, удалив переменную или задав ей пустое значение. Так работают следующие переменные:

133 133 

134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

135 * `DISABLE_TELEMETRY`135 * `DISABLE_TELEMETRY`


138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

139 * `IS_DEMO`139 * `IS_DEMO`

140 140 

141 Одна другая переменная имеет свое собственное правило: `FORCE_HYPERLINK` читает число, поэтому только `0` отключает его. Каждая строка переменной также указывает свое собственное правило.141 Ещё одна переменная подчиняется собственному правилу: `FORCE_HYPERLINK` читает число, поэтому отключает её только `0`. Правило каждой переменной также указано в её строке.

142</Note>142</Note>

143 143 

144| Переменная | Назначение |144| Переменная | Назначение |

145| :- | :- |145| :- | :- |

146| `ANTHROPIC_API_KEY` | Ключ API отправляется как заголовок `X-Api-Key`. Если установлен, этот ключ используется вместо вашей подписки Claude Pro, Max, Team или Enterprise, даже если вы вошли в систему. В неинтерактивном режиме (`-p`) ключ всегда используется при наличии. В интерактивном режиме вам предлагается одобрить ключ один раз перед тем, как он переопределит вашу подписку. Чтобы использовать вашу подписку, запустите `unset ANTHROPIC_API_KEY` |146| `ANTHROPIC_API_KEY` | API-ключ, отправляемый в заголовке `X-Api-Key`. Если переменная задана, этот ключ используется вместо вашей подписки Claude Pro, Max, Team или Enterprise, даже если вы вошли в систему. В неинтерактивном режиме (`-p`) ключ, если он присутствует, используется всегда. В интерактивном режиме вам один раз предлагается подтвердить ключ, прежде чем он переопределит вашу подписку. Чтобы использовать вместо него подписку, выполните `unset ANTHROPIC_API_KEY` |

147| `ANTHROPIC_AUTH_TOKEN` | Пользовательское значение для заголовка `Authorization` (значение, которое вы установите здесь, будет дополнено префиксом `Bearer `) |147| `ANTHROPIC_AUTH_TOKEN` | Пользовательское значение заголовка `Authorization` (к заданному здесь значению будет добавлен префикс `Bearer `) |

148| `ANTHROPIC_AWS_API_KEY` | Ключ API рабочей области для [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), созданный в консоли AWS. Отправляется как `x-api-key` и имеет приоритет над AWS SigV4 |148| `ANTHROPIC_AWS_API_KEY` | API-ключ рабочего пространства для [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), созданный в AWS Console. Отправляется как `x-api-key` и имеет приоритет над AWS SigV4 |

149| `ANTHROPIC_AWS_BASE_URL` | Переопределить URL конечной точки [Claude Platform on AWS](/docs/ru/claude-platform-on-aws). Используйте для пользовательских регионов или при маршрутизации через [LLM gateway](/docs/ru/llm-gateway). По умолчанию `https://aws-external-anthropic.{region}.api.aws`. Claude Code разрешает регион с [той же приоритетностью, что и на Amazon Bedrock](/docs/ru/amazon-bedrock#3-configure-claude-code) |149| `ANTHROPIC_AWS_BASE_URL` | Переопределяет URL эндпоинта [Claude Platform on AWS](/docs/ru/claude-platform-on-aws). Используйте для пользовательских регионов или при маршрутизации через [LLM-шлюз](/docs/ru/llm-gateway). По умолчанию `https://aws-external-anthropic.{region}.api.aws`. Claude Code определяет регион с [тем же приоритетом, что и в Amazon Bedrock](/docs/ru/amazon-bedrock#3-configure-claude-code) |

150| `ANTHROPIC_AWS_WORKSPACE_ID` | Требуется для [Claude Platform on AWS](/docs/ru/claude-platform-on-aws). Отправляется при каждом запросе как заголовок `anthropic-workspace-id` |150| `ANTHROPIC_AWS_WORKSPACE_ID` | Обязательна для [Claude Platform on AWS](/docs/ru/claude-platform-on-aws). Отправляется с каждым запросом в заголовке `anthropic-workspace-id` |

151| `ANTHROPIC_BASE_URL` | Переопределить конечную точку API для маршрутизации запросов через прокси или шлюз. Если установлено на хост, не являющийся первой стороной, [поиск инструментов MCP](/docs/ru/mcp#scale-with-mcp-tool-search) отключен по умолчанию. Установите `ENABLE_TOOL_SEARCH=true`, если ваш прокси пересылает блоки `tool_reference`. Начиная с версии 2.1.196, [Remote Control](/docs/ru/remote-control#requirements) отключен, когда это указывает на хост, отличный от `api.anthropic.com`, что соответствует его поведению на Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry |151| `ANTHROPIC_BASE_URL` | Переопределяет эндпоинт API, чтобы направлять запросы через прокси или шлюз. Если задан хост, не принадлежащий Anthropic, [MCP tool search](/docs/ru/mcp#scale-with-mcp-tool-search) по умолчанию отключается. Задайте `ENABLE_TOOL_SEARCH=true`, если ваш прокси пересылает блоки `tool_reference`. Начиная с v2.1.196, [Remote Control](/docs/ru/remote-control#requirements) отключается, если эта переменная указывает на хост, отличный от `api.anthropic.com`, — так же, как в Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry |

152| `ANTHROPIC_BEDROCK_BASE_URL` | Переопределить URL конечной точки Amazon Bedrock. Используйте для пользовательских конечных точек Amazon Bedrock или при маршрутизации через [LLM gateway](/docs/ru/llm-gateway). См. [Amazon Bedrock](/docs/ru/amazon-bedrock) |152| `ANTHROPIC_BEDROCK_BASE_URL` | Переопределяет URL эндпоинта Amazon Bedrock. Используйте для пользовательских эндпоинтов Amazon Bedrock или при маршрутизации через [LLM-шлюз](/docs/ru/llm-gateway). См. [Amazon Bedrock](/docs/ru/amazon-bedrock) |

153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Переопределить URL конечной точки Amazon Bedrock Mantle. См. [Конечная точка Mantle](/docs/ru/amazon-bedrock#use-the-mantle-endpoint) |153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Переопределяет URL эндпоинта Amazon Bedrock Mantle. См. [Эндпоинт Mantle](/docs/ru/amazon-bedrock#use-the-mantle-endpoint) |

154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Префикс профиля кросс-региональной логической обработки (`us`, `eu`, `apac`, `jp`, `au` или `global`) Claude Code пытается сначала вместо того, который получен из региона AWS. Игнорируется в регионах AWS GovCloud. Требует Claude Code версии 2.1.224 или позже. См. [Amazon Bedrock](/docs/ru/amazon-bedrock#cross-region-inference-profile-prefixes) |154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Префикс межрегионального профиля инференса (`us`, `eu`, `apac`, `jp`, `au` или `global`), который Claude Code пробует первым вместо префикса, выводимого из региона AWS. Игнорируется в регионах AWS GovCloud. Требуется Claude Code v2.1.224 или новее. См. [Amazon Bedrock](/docs/ru/amazon-bedrock#cross-region-inference-profile-prefixes) |

155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Уровень обслуживания](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) Amazon Bedrock (`default`, `flex` или `priority`). Отправляется как заголовок `X-Amzn-Bedrock-Service-Tier`. См. [Amazon Bedrock](/docs/ru/amazon-bedrock#service-tiers) |155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Уровень обслуживания](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) Amazon Bedrock (`default`, `flex` или `priority`). Отправляется в заголовке `X-Amzn-Bedrock-Service-Tier`. См. [Amazon Bedrock](/docs/ru/amazon-bedrock#service-tiers) |

156| `ANTHROPIC_BETAS` | Разделённый запятыми список дополнительных значений заголовка `anthropic-beta` для включения в запросы API. Claude Code уже отправляет необходимые ему бета-заголовки; используйте это для участия в [бета-версии Anthropic API](https://platform.claude.com/docs/en/api/beta-headers) перед тем, как Claude Code добавит встроенную поддержку. В отличие от флага [`--betas`](/docs/ru/cli-reference#cli-flags), который требует аутентификации с помощью ключа API, эта переменная работает со всеми методами аутентификации, включая подписку Claude.ai |156| `ANTHROPIC_BETAS` | Список дополнительных значений заголовка `anthropic-beta` через запятую для включения в запросы к API. Claude Code уже отправляет необходимые ему бета-заголовки; используйте эту переменную, чтобы подключиться к [бета-функции Anthropic API](https://platform.claude.com/docs/en/api/beta-headers) до того, как в Claude Code появится её встроенная поддержка. В отличие от [флага `--betas`](/docs/ru/cli-reference#cli-flags), который требует аутентификации по API-ключу, эта переменная работает со всеми методами аутентификации, включая подписку Claude.ai |

157| `ANTHROPIC_CUSTOM_HEADERS` | Пользовательские заголовки для добавления к запросам (формат `Name: Value`, разделённые новыми строками для нескольких заголовков). Если имя или значение содержит символ, который HTTP-заголовок не может нести, например фигурную кавычку или пробел нулевой ширины, запрос не выполняется с ошибкой, которая определяет пару по позиции. Требует Claude Code версии 2.1.227 или позже. [Invalid request header value](/docs/ru/errors#invalid-request-header-value) перечисляет точный набор символов и где выполняется проверка. Значение, которое устанавливает учётные данные, организацию или тенант, маршрутизацию или заголовок поведения API, такой как `Authorization` или `Host`, считается [параметром, требующим одобрения](/docs/ru/server-managed-settings#environment-variables-and-the-approval-dialog), когда управляемые на сервере параметры его доставляют. Из параметров проекта или локальных параметров такое значение следует [правилам для применения значений `env`](/docs/ru/settings-reference#when-claude-code-applies-env-values) |157| `ANTHROPIC_CUSTOM_HEADERS` | Пользовательские заголовки, добавляемые к запросам (формат `Name: Value`, несколько заголовков разделяются переводом строки). Если имя или значение содержит символ, который не может передаваться в HTTP-заголовке, например фигурную кавычку или пробел нулевой ширины, запрос завершается ошибкой, указывающей позицию этой пары. Требуется Claude Code v2.1.227 или новее. В разделе [Invalid request header value](/docs/ru/errors#invalid-request-header-value) перечислен точный набор символов и указано, где выполняется проверка. Значение, задающее заголовок учётных данных, организации или тенанта, маршрутизации или поведения API, например `Authorization` или `Host`, считается [настройкой, требующей подтверждения](/docs/ru/server-managed-settings#environment-variables-and-the-approval-dialog), когда его доставляют управляемые сервером настройки. Если такое значение задано в настройках проекта или локальных настройках, оно подчиняется [правилам применения значений `env`](/docs/ru/settings-reference#when-claude-code-applies-env-values) |

158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID модели для добавления в качестве пользовательской записи в средство выбора `/model`. Используйте это, чтобы сделать нестандартную или специфичную для шлюза модель выбираемой без замены встроенных псевдонимов. См. [Конфигурация модели](/docs/ru/model-config#add-a-custom-model-option) |158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID модели, добавляемой как пользовательский пункт в меню выбора `/model`. Используйте, чтобы сделать нестандартную или специфичную для шлюза модель доступной для выбора, не заменяя встроенные псевдонимы. См. [Конфигурация модели](/docs/ru/model-config#add-a-custom-model-option) |

159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Описание отображения для пользовательской записи модели в средстве выбора `/model`. По умолчанию `Custom model (<model-id>)`, если не установлено |159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Отображаемое описание пользовательского пункта модели в меню выбора `/model`. Если не задано, по умолчанию используется `Custom model (<model-id>)` |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Имя отображения для пользовательской записи модели в средстве выбора `/model`. Если не установлено, запись показывает имя модели, если Claude Code [распознаёт ID](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), и ID модели в противном случае |160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Отображаемое имя пользовательского пункта модели в меню выбора `/model`. Если не задано, пункт показывает название модели, если Claude Code [распознаёт ID](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), а в противном случае — ID модели |

161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Разделённый запятыми список [возможностей](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), которые поддерживает пользовательская модель, например `effort,thinking`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Список [возможностей](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), поддерживаемых пользовательской моделью, через запятую, например `effort,thinking`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID модели, на которую разрешается псевдоним `fable`, и ID, который Claude Code распознаёт как модель Fable для [автоматического переключения модели](/docs/ru/model-config#automatic-model-fallback) на сторонних поставщиков. См. [Конфигурация модели](/docs/ru/model-config#environment-variables) |162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID модели, в который разрешается псевдоним `fable`, а также ID, который Claude Code распознаёт как модель Fable для [автоматического переключения на резервную модель](/docs/ru/model-config#automatic-model-fallback) у сторонних провайдеров. См. [Конфигурация модели](/docs/ru/model-config#environment-variables) |

163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Описание отображения для закреплённой модели Fable в средстве выбора `/model`. Если не установлено, строка показывает описание по умолчанию, начинающееся с `Custom Fable model`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Отображаемое описание закреплённой модели Fable в меню выбора `/model`. Если не задано, в строке показывается описание по умолчанию, начинающееся с `Custom Fable model`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Имя отображения для закреплённой модели Fable в средстве выбора `/model`. Если не установлено, строка показывает имя модели, если Claude Code распознаёт закреплённый ID, и закреплённый ID в противном случае. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Отображаемое имя закреплённой модели Fable в меню выбора `/model`. Если не задано, в строке показывается название модели, если Claude Code распознаёт закреплённый ID, а в противном случае — сам закреплённый ID. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Разделённый запятыми список [возможностей](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), которые поддерживает закреплённая модель Fable, например `effort,thinking`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Список [возможностей](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), поддерживаемых закреплённой моделью Fable, через запятую, например `effort,thinking`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID модели, на которую разрешается псевдоним `haiku`, также используется для [фоновой функциональности](/docs/ru/costs#background-token-usage). См. [Конфигурация модели](/docs/ru/model-config#environment-variables) |166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID модели, в который разрешается псевдоним `haiku`; также используется для [фоновых функций](/docs/ru/costs#background-token-usage). См. [Конфигурация модели](/docs/ru/model-config#environment-variables) |

167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Описание отображения для закреплённой модели Haiku в средстве выбора `/model`. Если не установлено, строка показывает описание по умолчанию, начинающееся с `Custom Haiku model`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Отображаемое описание закреплённой модели Haiku в меню выбора `/model`. Если не задано, в строке показывается описание по умолчанию, начинающееся с `Custom Haiku model`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Имя отображения для закреплённой модели Haiku в средстве выбора `/model`. Если не установлено, строка показывает имя модели, если Claude Code распознаёт закреплённый ID, и закреплённый ID в противном случае. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Отображаемое имя закреплённой модели Haiku в меню выбора `/model`. Если не задано, в строке показывается название модели, если Claude Code распознаёт закреплённый ID, а в противном случае — сам закреплённый ID. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Разделённый запятыми список [возможностей](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), которые поддерживает закреплённая модель Haiku, например `effort,thinking`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Список [возможностей](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), поддерживаемых закреплённой моделью Haiku, через запятую, например `effort,thinking`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

170| `ANTHROPIC_DEFAULT_MODEL` | Модель, на которой новые сеансы начинаются по умолчанию. Требует Claude Code версии 2.1.236 или позже. См. [Установить модель по умолчанию для новых сеансов](/docs/ru/model-config#set-a-default-model-for-new-sessions) |170| `ANTHROPIC_DEFAULT_MODEL` | Модель, с которой по умолчанию начинаются новые сессии. Требуется Claude Code v2.1.236 или новее. См. [Задание модели по умолчанию для новых сессий](/docs/ru/model-config#set-a-default-model-for-new-sessions) |

171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID модели, на которую разрешается псевдоним `opus`, и которую использует `opusplan` во время активного Plan Mode. См. [Конфигурация модели](/docs/ru/model-config#environment-variables) |171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID модели, в который разрешается псевдоним `opus` и который `opusplan` использует, пока активен режим планирования. См. [Конфигурация модели](/docs/ru/model-config#environment-variables) |

172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Описание отображения для закреплённой модели Opus в средстве выбора `/model`. Если не установлено, строка показывает описание по умолчанию, начинающееся с `Custom Opus model`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Отображаемое описание закреплённой модели Opus в меню выбора `/model`. Если не задано, в строке показывается описание по умолчанию, начинающееся с `Custom Opus model`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Имя отображения для закреплённой модели Opus в средстве выбора `/model`. Если не установлено, строка показывает имя модели, если Claude Code распознаёт закреплённый ID, и закреплённый ID в противном случае. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Отображаемое имя закреплённой модели Opus в меню выбора `/model`. Если не задано, в строке показывается название модели, если Claude Code распознаёт закреплённый ID, а в противном случае — сам закреплённый ID. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Разделённый запятыми список [возможностей](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), которые поддерживает закреплённая модель Opus, например `effort,thinking`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Список [возможностей](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), поддерживаемых закреплённой моделью Opus, через запятую, например `effort,thinking`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID модели, на которую разрешается псевдоним `sonnet`, и которую использует `opusplan`, когда Plan Mode не активен. См. [Конфигурация модели](/docs/ru/model-config#environment-variables) |175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID модели, в который разрешается псевдоним `sonnet` и который `opusplan` использует, когда режим планирования не активен. См. [Конфигурация модели](/docs/ru/model-config#environment-variables) |

176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Описание отображения для закреплённой модели Sonnet в средстве выбора `/model`. Если не установлено, строка показывает описание по умолчанию, начинающееся с `Custom Sonnet model`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Отображаемое описание закреплённой модели Sonnet в меню выбора `/model`. Если не задано, в строке показывается описание по умолчанию, начинающееся с `Custom Sonnet model`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Имя отображения для закреплённой модели Sonnet в средстве выбора `/model`. Если не установлено, строка показывает имя модели, если Claude Code распознаёт закреплённый ID, и закреплённый ID в противном случае. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Отображаемое имя закреплённой модели Sonnet в меню выбора `/model`. Если не задано, в строке показывается название модели, если Claude Code распознаёт закреплённый ID, а в противном случае — сам закреплённый ID. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Разделённый запятыми список [возможностей](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), которые поддерживает закреплённая модель Sonnet, например `effort,thinking`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Список [возможностей](/docs/ru/model-config#customize-pinned-model-display-and-capabilities), поддерживаемых закреплённой моделью Sonnet, через запятую, например `effort,thinking`. См. [Конфигурация модели](/docs/ru/model-config#customize-pinned-model-display-and-capabilities) |

179| `ANTHROPIC_FEDERATION_RULE_ID` | ID правила федерации для [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Когда вы устанавливаете его вместе с `ANTHROPIC_ORGANIZATION_ID`, Claude Code выбирает учётные данные федерации, которые имеют приоритет над вашим учётным данным `/login`. См. [приоритет аутентификации](/docs/ru/authentication#authentication-precedence) |179| `ANTHROPIC_FEDERATION_RULE_ID` | ID правила федерации для [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Если задать её вместе с `ANTHROPIC_ORGANIZATION_ID`, Claude Code выбирает учётные данные федерации, которые имеют приоритет над учётными данными `/login`. См. [приоритет аутентификации](/docs/ru/authentication#authentication-precedence) |

180| `ANTHROPIC_FOUNDRY_API_KEY` | Ключ API для аутентификации Microsoft Foundry (см. [Microsoft Foundry](/docs/ru/microsoft-foundry)) |180| `ANTHROPIC_FOUNDRY_API_KEY` | API-ключ для аутентификации в Microsoft Foundry (см. [Microsoft Foundry](/docs/ru/microsoft-foundry)) |

181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Токен Bearer для аутентификации Microsoft Foundry, такой как токен доступа Microsoft Entra. Claude Code отправляет его как заголовок `Authorization: Bearer`. Имеет приоритет над `ANTHROPIC_FOUNDRY_API_KEY` и над цепочкой учётных данных Azure по умолчанию. См. [Microsoft Foundry](/docs/ru/microsoft-foundry). Требует Claude Code версии 2.1.203 или позже |181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Bearer-токен для аутентификации в Microsoft Foundry, например токен доступа Microsoft Entra. Claude Code отправляет его в заголовке `Authorization: Bearer`. Имеет приоритет над `ANTHROPIC_FOUNDRY_API_KEY` и над цепочкой учётных данных Azure по умолчанию. См. [Microsoft Foundry](/docs/ru/microsoft-foundry). Требуется Claude Code v2.1.203 или новее |

182| `ANTHROPIC_FOUNDRY_BASE_URL` | Полный базовый URL для ресурса Microsoft Foundry (например, `https://my-resource.services.ai.azure.com/anthropic`). Альтернатива `ANTHROPIC_FOUNDRY_RESOURCE` (см. [Microsoft Foundry](/docs/ru/microsoft-foundry)) |182| `ANTHROPIC_FOUNDRY_BASE_URL` | Полный базовый URL ресурса Microsoft Foundry (например, `https://my-resource.services.ai.azure.com/anthropic`). Альтернатива `ANTHROPIC_FOUNDRY_RESOURCE` (см. [Microsoft Foundry](/docs/ru/microsoft-foundry)) |

183| `ANTHROPIC_FOUNDRY_RESOURCE` | Имя ресурса Microsoft Foundry (например, `my-resource`). Claude Code [отклоняет URL или имя хоста](/docs/ru/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Обязательна, если `ANTHROPIC_FOUNDRY_BASE_URL` не задана (см. [Microsoft Foundry](/docs/ru/microsoft-foundry)) |183| `ANTHROPIC_FOUNDRY_RESOURCE` | Имя ресурса Microsoft Foundry (например, `my-resource`). Claude Code [отклоняет URL или имя хоста](/docs/ru/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Обязательна, если не задана `ANTHROPIC_FOUNDRY_BASE_URL` (см. [Microsoft Foundry](/docs/ru/microsoft-foundry)) |

184| `ANTHROPIC_MODEL` | Имя параметра модели для использования (см. [Конфигурация модели](/docs/ru/model-config#environment-variables)) |184| `ANTHROPIC_MODEL` | Имя используемой настройки модели (см. [Конфигурация модели](/docs/ru/model-config#environment-variables)) |

185| `ANTHROPIC_ORGANIZATION_ID` | ID организации для [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Установите его вместе с `ANTHROPIC_FEDERATION_RULE_ID`. См. [приоритет аутентификации](/docs/ru/authentication#authentication-precedence) |185| `ANTHROPIC_ORGANIZATION_ID` | ID организации для [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Задавайте вместе с `ANTHROPIC_FEDERATION_RULE_ID`. См. [приоритет аутентификации](/docs/ru/authentication#authentication-precedence) |

186| `ANTHROPIC_PROFILE` | Имя профиля Anthropic для аутентификации, такого как созданный [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) или [входом в учётную запись Console без ключа API](/docs/ru/authentication#sign-in-without-an-api-key). См. [приоритет аутентификации](/docs/ru/authentication#authentication-precedence) |186| `ANTHROPIC_PROFILE` | Имя профиля Anthropic для аутентификации, например профиля, созданного командой [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) или при [входе в аккаунт Console без API-ключа](/docs/ru/authentication#sign-in-without-an-api-key). См. [приоритет аутентификации](/docs/ru/authentication#authentication-precedence) |

187| `ANTHROPIC_SMALL_FAST_MODEL` | \[УСТАРЕЛО] Имя [модели класса Haiku для фоновых задач](/docs/ru/costs) |187| `ANTHROPIC_SMALL_FAST_MODEL` | \[УСТАРЕЛО] Имя [модели класса Haiku для фоновых задач](/docs/ru/costs) |

188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Переопределить регион AWS для модели класса Haiku при использовании Amazon Bedrock или Amazon Bedrock Mantle. На Amazon Bedrock это вступает в силу только при установке `ANTHROPIC_DEFAULT_HAIKU_MODEL` или устаревшего `ANTHROPIC_SMALL_FAST_MODEL`, так как Amazon Bedrock в противном случае запускает фоновые задачи на [модели Sonnet по умолчанию или основной модели](/docs/ru/amazon-bedrock#4-pin-model-versions) в регионе сеанса |188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Переопределяет регион AWS для модели класса Haiku при использовании Amazon Bedrock или Amazon Bedrock Mantle. В Amazon Bedrock действует, только если также задана `ANTHROPIC_DEFAULT_HAIKU_MODEL` или устаревшая `ANTHROPIC_SMALL_FAST_MODEL`, поскольку в противном случае Amazon Bedrock выполняет фоновые задачи на [модели Sonnet по умолчанию или основной модели](/docs/ru/amazon-bedrock#4-pin-model-versions) в регионе сессии |

189| `ANTHROPIC_VERTEX_BASE_URL` | Переопределить URL конечной точки Google Cloud's Agent Platform. Используйте для пользовательских конечных точек Google Cloud's Agent Platform или при маршрутизации через [LLM gateway](/docs/ru/llm-gateway). См. [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai) |189| `ANTHROPIC_VERTEX_BASE_URL` | Переопределяет URL эндпоинта Google Cloud's Agent Platform. Используйте для пользовательских эндпоинтов Google Cloud's Agent Platform или при маршрутизации через [LLM-шлюз](/docs/ru/llm-gateway). См. [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai) |

190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID проекта GCP, на который адресованы запросы Google Cloud's Agent Platform. См. [Настройка учётных данных GCP](/docs/ru/google-vertex-ai#3-configure-gcp-credentials) |190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID проекта GCP, которому адресуются запросы Google Cloud's Agent Platform. См. [Настройка учётных данных GCP](/docs/ru/google-vertex-ai#3-configure-gcp-credentials) |

191| `ANTHROPIC_WORKSPACE_ID` | ID рабочей области для [федерации рабочей нагрузки](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Установите это, когда ваше правило федерации охватывает более одной рабочей области, чтобы обмен токенов знал, на какую рабочую область ориентироваться |191| `ANTHROPIC_WORKSPACE_ID` | ID рабочего пространства для [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Задайте её, если ваше правило федерации охватывает более одного рабочего пространства, чтобы при обмене токенов было известно, на какое рабочее пространство ориентироваться |

192| `API_FORCE_IDLE_TIMEOUT` | Переопределить таймаут простоя тела в 5 минут, который прерывает потоковый ответ модели, когда байты не поступают. Установите на `0`, чтобы отключить таймаут, например, когда медленный [шлюз](/docs/ru/llm-gateway) или локальная модель делает паузу дольше 5 минут между фрагментами, или `1`, чтобы держать его включённым для каждого поставщика. Если не установлено, таймаут активен на поставщиках, отличных от прямого API Anthropic, [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) и Amazon Bedrock с `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` установленным. [Сторожи потока](/docs/ru/network-config#streaming-idle-watchdogs) работают независимо от него и прерывают длительную молчаливую паузу даже при установке `0` здесь |192| `API_FORCE_IDLE_TIMEOUT` | Переопределяет 5-минутный таймаут простоя тела ответа, который прерывает потоковый ответ модели, если байты не поступают. Задайте `0`, чтобы отключить таймаут, например когда медленный [шлюз](/docs/ru/llm-gateway) или локальная модель делает паузы между фрагментами дольше 5 минут, или `1`, чтобы оставить его включённым для всех провайдеров. Если переменная не задана, таймаут активен для провайдеров, отличных от прямого Anthropic API, [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) и Amazon Bedrock с заданной `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`. [Сторожевые таймеры потока](/docs/ru/network-config#streaming-idle-watchdogs) работают независимо от него и прерывают длительную паузу без данных, даже если здесь задано `0` |

193| `API_TIMEOUT_MS` | Таймаут для запросов API в миллисекундах (по умолчанию: 600000 или 10 минут; максимум: 2147483647). Увеличьте это, когда запросы истекают на медленных сетях или при маршрутизации через прокси. Значения выше максимума переполняют базовый таймер и вызывают немедленный отказ запросов |193| `API_TIMEOUT_MS` | Таймаут запросов к API в миллисекундах (по умолчанию: 600000, или 10 минут; максимум: 2147483647). Увеличьте его, если запросы завершаются по таймауту в медленных сетях или при маршрутизации через прокси. Значения выше максимума вызывают переполнение базового таймера, и запросы сразу завершаются ошибкой |

194| `AWS_BEARER_TOKEN_BEDROCK` | Ключ API Amazon Bedrock для аутентификации (см. [Ключи API Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |194| `AWS_BEARER_TOKEN_BEDROCK` | API-ключ Amazon Bedrock для аутентификации (см. [API-ключи Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

195| `BASH_DEFAULT_TIMEOUT_MS` | Таймаут по умолчанию для команды инструмента Bash или PowerShell на переднем плане, в миллисекундах (по умолчанию: 120000, то есть 2 минуты). Значение по умолчанию больше 30 минут также становится [ограничением времени для фоновых команд](/docs/ru/tools-reference#time-limit-for-background-commands) по умолчанию в сессиях без присмотра. Ограничение времени для фоновых команд требует Claude Code v2.1.285 или новее |195| `BASH_DEFAULT_TIMEOUT_MS` | Таймаут по умолчанию для команды инструмента Bash или PowerShell на переднем плане, в миллисекундах (по умолчанию: 120000, или 2 минуты). Значение по умолчанию больше 30 минут также становится [ограничением времени для фоновых команд](/docs/ru/tools-reference#time-limit-for-background-commands) по умолчанию в сессиях без присмотра. Ограничение времени для фоновых команд требует Claude Code v2.1.285 или новее |

196| `BASH_MAX_OUTPUT_LENGTH` | Максимальное количество символов вывода bash, которое Claude Code читает обратно в результат команды (по умолчанию: 30000; максимум: 150000). Если вы установите параметр [`bashOutputMaxChars`](/docs/ru/settings-reference#bashoutputmaxchars), Claude Code игнорирует эту переменную. См. [Ограничения вывода](/docs/ru/tools-reference#output-limits) |196| `BASH_MAX_OUTPUT_LENGTH` | Максимальное количество символов вывода bash, которое Claude Code считывает в результат команды (по умолчанию: 30000; максимум: 150000). Если задана настройка [`bashOutputMaxChars`](/docs/ru/settings-reference#bashoutputmaxchars), Claude Code игнорирует эту переменную. См. [Ограничения вывода](/docs/ru/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | Максимальный таймаут, который модель может задать для команды инструмента Bash или PowerShell на переднем плане, в миллисекундах (по умолчанию: 600000, то есть 10 минут). Фактический верхний предел — большее из этого значения и `BASH_DEFAULT_TIMEOUT_MS`. Фактический предел больше 2 часов также становится максимальным [ограничением времени для фоновых команд](/docs/ru/tools-reference#time-limit-for-background-commands) в сессиях без присмотра. Ограничение времени для фоновых команд требует Claude Code v2.1.285 или новее |197| `BASH_MAX_TIMEOUT_MS` | Максимальный таймаут, который модель может задать для команды инструмента Bash или PowerShell на переднем плане, в миллисекундах (по умолчанию: 600000, или 10 минут). Фактический предел — большее из этого значения и `BASH_DEFAULT_TIMEOUT_MS`. Фактический предел больше 2 часов также становится максимальным [ограничением времени для фоновых команд](/docs/ru/tools-reference#time-limit-for-background-commands) в сессиях без присмотра. Ограничение времени для фоновых команд требует Claude Code v2.1.285 или новее |

198| `BETA_TRACING_ENDPOINT` | Конечная точка OTLP для [детального бета-трассирования](/docs/ru/monitoring-usage#traces-beta): с `ENABLE_BETA_TRACING_DETAILED=1` логи и трассировки идут туда вместо настроенных экспортёров. Установите это в вашей оболочке, пользовательских параметрах или управляемых параметрах. Игнорируется в [параметрах проекта и локальных параметрах](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) |198| `BETA_TRACING_ENDPOINT` | OTLP-эндпоинт для [детальной бета-трассировки](/docs/ru/monitoring-usage#traces-beta): при `ENABLE_BETA_TRACING_DETAILED=1` логи и трассировки отправляются туда, а не в настроенные экспортёры. Задайте её в оболочке, пользовательских настройках или управляемых настройках. Игнорируется в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) |

199| `CCR_FORCE_BUNDLE` | Установите на `1`, чтобы заставить [`claude --cloud`](/docs/ru/claude-code-on-the-web#send-local-repositories-without-github) упаковать и загрузить ваш локальный репозиторий вместо клонирования из его удалённого источника |199| `CCR_FORCE_BUNDLE` | Задайте `1`, чтобы [`claude --cloud`](/docs/ru/claude-code-on-the-web#send-local-repositories-without-github) принудительно упаковывал и загружал ваш локальный репозиторий вместо клонирования из его удалённого источника |

200| `CLAUDECODE` | Установите на `1` в подпроцессах, которые порождает Claude Code (инструменты Bash и PowerShell, сеансы tmux, команды [hook](/docs/ru/hooks), команды [строки состояния](/docs/ru/statusline), подпроцессы [MCP сервера](/docs/ru/mcp) stdio). Расширения IDE также устанавливают это в своих интегрированных терминалах. Используйте для обнаружения, когда скрипт работает внутри подпроцесса, порождённого Claude Code. Чтобы проверить, был ли текущий процесс порождён непосредственно вызовом инструмента или hook, а не внутри MCP сервера stdio, который запустил Claude Code, используйте `CLAUDE_CODE_CHILD_SESSION` вместо этого |200| `CLAUDECODE` | Устанавливается в `1` в подпроцессах, которые запускает Claude Code (инструменты Bash и PowerShell, сессии tmux, команды [хуков](/docs/ru/hooks), команды [строки состояния](/docs/ru/statusline), подпроцессы stdio [MCP-серверов](/docs/ru/mcp)). Расширения IDE также задают её во встроенных терминалах. Используйте, чтобы определить, что скрипт выполняется внутри подпроцесса, запущенного Claude Code. Чтобы проверить, был ли текущий процесс запущен непосредственно вызовом инструмента или хуком, а не внутри stdio MCP-сервера, запущенного Claude Code, используйте вместо неё `CLAUDE_CODE_CHILD_SESSION` |

201| `CLAUDE_AFK_COUNTDOWN_MS` | Сколько миллисекунд перед автопродолжением появляется обратный отсчёт на экране в диалоговом окне [`AskUserQuestion`](/docs/ru/tools-reference) без ответа. По умолчанию `20000` (20 секунд), ограничено таймаутом автопродолжения. Не имеет эффекта, если автопродолжение отключено; см. параметр [`askUserQuestionTimeout`](/docs/ru/settings-reference#askuserquestiontimeout) и `CLAUDE_AFK_TIMEOUT_MS`. Требует Claude Code версии 2.1.198 или позже |201| `CLAUDE_AFK_COUNTDOWN_MS` | За сколько миллисекунд до автопродолжения на экране появляется обратный отсчёт в неотвеченном диалоговом окне [`AskUserQuestion`](/docs/ru/tools-reference). По умолчанию `20000` (20 секунд), не больше таймаута автопродолжения. Не действует, если автопродолжение не включено; см. настройку [`askUserQuestionTimeout`](/docs/ru/settings-reference#askuserquestiontimeout) и `CLAUDE_AFK_TIMEOUT_MS`. Требуется Claude Code v2.1.198 или новее |

202| `CLAUDE_AFK_TIMEOUT_MS` | Сколько миллисекунд времени простоя перед тем, как диалоговое окно [`AskUserQuestion`](/docs/ru/tools-reference) без ответа автоматически продолжится без вас. Автопродолжение отключено по умолчанию; включите его с помощью параметра [`askUserQuestionTimeout`](/docs/ru/settings-reference#askuserquestiontimeout). Эта переменная является переопределением для демонстраций и автоматизированных тестов: при установке она имеет приоритет над этим параметром и включает автопродолжение даже при отсутствии параметра или значении `never`. Установка `0` не отключает таймаут; она закрывает диалоговое окно немедленно. В версиях 2.1.198 и 2.1.199 автопродолжение было включено по умолчанию с таймаутом `60000` (60 секунд). Требует Claude Code версии 2.1.198 или позже |202| `CLAUDE_AFK_TIMEOUT_MS` | Через сколько миллисекунд простоя неотвеченное диалоговое окно [`AskUserQuestion`](/docs/ru/tools-reference) автоматически продолжает работу без вас. Автопродолжение по умолчанию отключено; включить его можно настройкой [`askUserQuestionTimeout`](/docs/ru/settings-reference#askuserquestiontimeout). Эта переменная — переопределение для демонстраций и автоматических тестов: если она задана, она имеет приоритет над этой настройкой и включает автопродолжение, даже если настройка не задана или равна `never`. Значение `0` не отключает таймаут, а сразу закрывает диалоговое окно. В v2.1.198 и v2.1.199 автопродолжение было включено по умолчанию с таймаутом `60000` (60 секунд). Требуется Claude Code v2.1.198 или новее |

203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Установите на `1`, чтобы отключить все встроенные типы [подагентов](/docs/ru/sub-agents), такие как Explore и Plan. Применяется только в неинтерактивном режиме (флаг `-p`). Полезно для пользователей SDK, которые хотят чистый лист. Это также удаляет `general-purpose`, подагента, который Claude Code запускает, когда вызов инструмента Agent опускает `subagent_type`. Такой вызов затем не выполняется с [`subagent_type is required`](/docs/ru/errors#subagent-type-is-required) |203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Задайте `1`, чтобы отключить все встроенные типы [субагентов](/docs/ru/sub-agents), такие как Explore и Plan. Действует только в неинтерактивном режиме (флаг `-p`). Полезно пользователям SDK, которым нужен чистый лист. Это также удаляет `general-purpose` — субагента, которого Claude Code запускает, когда в вызове инструмента Agent не указан `subagent_type`. Такой вызов тогда завершается ошибкой [`subagent_type is required`](/docs/ru/errors#subagent-type-is-required) |

204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Установите на `1`, чтобы пропустить префикс `mcp__<server>__` на именах инструментов из MCP серверов, созданных SDK. Инструменты используют свои исходные имена. Только использование SDK |204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Задайте `1`, чтобы не добавлять префикс `mcp__<server>__` к именам инструментов MCP-серверов, созданных через SDK. Инструменты используют свои исходные имена. Только для использования SDK |

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Таймаут стагнации в миллисекундах для подагентов. По умолчанию `600000` (10 минут); если вы повысите `CLAUDE_STREAM_IDLE_TIMEOUT_MS` при включённом стороже потока, по умолчанию он повысится вместе с ним, как описано в [Обработка медленных или зависших ответов API](/docs/ru/agent-sdk/typescript#handle-slow-or-stalled-api-responses). Таймер сбрасывается при каждом событии потока прогресса; если прогресс не поступает в течение окна, Claude Code прерывает подагента и сообщает о стагнации родителю |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Таймаут зависания субагентов в миллисекундах. По умолчанию `600000` (10 минут); если вы увеличите `CLAUDE_STREAM_IDLE_TIMEOUT_MS` при включённом сторожевом таймере потока, значение по умолчанию увеличится вместе с ним, как описано в разделе [Обработка медленных или зависших ответов API](/docs/ru/agent-sdk/typescript#handle-slow-or-stalled-api-responses). Таймер сбрасывается при каждом событии прогресса потоковой передачи; если в течение этого окна прогресс не поступает, Claude Code прерывает субагента и сообщает о зависании родителю |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Установите процент (1-100) окна автокомпактирования, при котором срабатывает автокомпактирование. Используйте более низкие значения, такие как `50`, для более раннего компактирования; переменная не может повысить порог, поэтому значения выше процента по умолчанию игнорируются. Применяется только в сеансах, которые [компактируют перед пределом контекста модели](/docs/ru/model-config#context-window-and-auto-compaction). Применяется к основным разговорам и подагентам |206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Задаёт процент (1–100) окна автосжатия, при котором срабатывает автосжатие. Используйте меньшие значения, например `50`, чтобы сжимать раньше; переменная не может повысить порог, поэтому значения выше процента по умолчанию игнорируются. Действует только в сессиях, которые [сжимаются до достижения лимита контекста модели](/docs/ru/model-config#context-window-and-auto-compaction). Применяется как к основным диалогам, так и к субагентам |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Установите на `1`, чтобы принудительно включить автоматическое фоновое выполнение долгоживущих задач агента. Когда включено, подагенты перемещаются в фон после работы примерно две минуты. Также включает [автоматическое фоновое выполнение долгих вызовов инструментов MCP](/docs/ru/mcp#automatic-backgrounding-of-long-tool-calls) в неинтерактивном режиме на Claude Code версии 2.1.212 или позже |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Задайте `1`, чтобы принудительно включить автоматический перевод долгих задач агентов в фоновый режим. Если включено, субагенты переводятся в фоновый режим примерно через две минуты работы. Также включает [автоматический перевод долгих вызовов инструментов MCP в фоновый режим](/docs/ru/mcp#automatic-backgrounding-of-long-tool-calls) в неинтерактивном режиме в Claude Code v2.1.212 или новее |

208| `CLAUDE_AX_PREPARK_MS` | В [режиме программы чтения с экрана](/docs/ru/accessibility) — сколько миллисекунд Claude Code ждёт, прежде чем вывести новую или изменённую строку. По умолчанию `0`, поэтому Claude Code не ждёт. До v2.1.287 значение по умолчанию было `50`. Claude Code ограничивает ожидание значением `5000`. Требуется Claude Code v2.1.233 или новее |208| `CLAUDE_AX_PREPARK_MS` | В [режиме экранного диктора](/docs/ru/accessibility) — сколько миллисекунд Claude Code ждёт перед выводом новой или изменённой строки. По умолчанию `0`, то есть Claude Code не ждёт. До v2.1.287 значение по умолчанию было `50`. Claude Code ограничивает ожидание значением `5000`. Требуется Claude Code v2.1.233 или новее |

209| `CLAUDE_AX_SCREEN_READER` | Установите на `1` для отображения, удобного для чтения с экрана: плоский текст без декоративных границ или анимаций. Установите на `0`, чтобы принудительно отключить режим чтения с экрана, даже если [`axScreenReader`](/docs/ru/settings-reference#axscreenreader) имеет значение `true`. Флаг [`--ax-screen-reader`](/docs/ru/cli-reference#cli-flags) имеет приоритет. Требует Claude Code версии 2.1.181 или позже |209| `CLAUDE_AX_SCREEN_READER` | Задайте `1`, чтобы выводить результат, удобный для экранного диктора: простой текст без декоративных рамок и анимаций. Задайте `0`, чтобы принудительно отключить режим экранного диктора, даже если [`axScreenReader`](/docs/ru/settings-reference#axscreenreader) равно `true`. Флаг [`--ax-screen-reader`](/docs/ru/cli-reference#cli-flags) имеет приоритет. Требуется Claude Code v2.1.181 или новее |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | В [режиме чтения с экрана](/docs/ru/accessibility) сколько миллисекунд Claude Code удерживает первый рендер интерфейса после строки подтверждения запуска, чтобы ваш чтец с экрана мог полностью произнести строку перед тем, как новый вывод её прервёт. По умолчанию `3000`. Установите `0` для немедленного рендера. Claude Code ограничивает удержание на `600000` (10 минут). Ваше первое нажатие клавиши завершает удержание раньше. Требует Claude Code версии 2.1.217 или позже |210| `CLAUDE_AX_STARTUP_QUIET_MS` | В [режиме экранного диктора](/docs/ru/accessibility) — сколько миллисекунд Claude Code задерживает первую отрисовку интерфейса после строки подтверждения запуска, чтобы экранный диктор успел прочитать строку полностью, прежде чем её прервёт новый вывод. По умолчанию `3000`. Задайте `0`, чтобы отрисовывать сразу. Claude Code ограничивает задержку значением `600000` (10 минут). Первое нажатие клавиши досрочно завершает задержку. Требуется Claude Code v2.1.217 или новее |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Вернуться в исходный рабочий каталог после каждой команды Bash или PowerShell в основном сеансе |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Возвращаться в исходный рабочий каталог после каждой команды Bash или PowerShell в основной сессии |

212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Таймаут в миллисекундах для сторожа простоя потока на уровне байтов; при установке он имеет приоритет над `CLAUDE_STREAM_IDLE_TIMEOUT_MS` для этого сторожа и оставляет сторожа на уровне событий без изменений. Claude Code зажимает эту переменную между 10 секундами и 30 минутами. Требует Claude Code версии 2.1.210 или позже |212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Таймаут в миллисекундах для сторожевого таймера простоя потоковой передачи на уровне байтов; если задана, для этого сторожевого таймера имеет приоритет над `CLAUDE_STREAM_IDLE_TIMEOUT_MS` и не меняет сторожевой таймер на уровне событий. Claude Code ограничивает значение этой переменной диапазоном от 10 секунд до 30 минут. Требуется Claude Code v2.1.210 или новее |

213| `CLAUDE_CLIENT_PRESENCE_FILE` | Путь к файлу, который внешний инструмент, такой как слушатель блокировки экрана, создаёт при разблокировке экрана и удаляет при его блокировке. Пока файл существует, Claude Code пропускает [мобильные push-уведомления Remote Control](/docs/ru/remote-control#mobile-push-notifications), поэтому вы перестаёте получать push-уведомления, пока активно используете компьютер. Когда файл отсутствует или нечитаем, уведомления отправляются как обычно. Claude Code проверяет файл один раз за событие, вызывающее push, а не опрашивает его. Требует Claude Code версии 2.1.181 или позже |213| `CLAUDE_CLIENT_PRESENCE_FILE` | Путь к файлу, который внешний инструмент, например прослушиватель блокировки экрана, создаёт при разблокировке экрана и удаляет при его блокировке. Пока файл существует, Claude Code пропускает [мобильные push-уведомления Remote Control](/docs/ru/remote-control#mobile-push-notifications), чтобы вы не получали push-уведомления, пока активно пользуетесь компьютером. Если файл отсутствует или недоступен для чтения, уведомления отправляются как обычно. Claude Code проверяет файл один раз при каждом событии, вызывающем push-уведомление, а не опрашивает его постоянно. Требуется Claude Code v2.1.181 или новее |

214| `CLAUDE_CODE_ACCESSIBILITY` | Установите на `1`, чтобы сохранить видимый собственный курсор терминала и отключить индикатор курсора с инвертированным текстом. Позволяет увеличителям экрана, таким как macOS Zoom, отслеживать положение курсора |214| `CLAUDE_CODE_ACCESSIBILITY` | Задайте `1`, чтобы нативный курсор терминала оставался видимым и отключить индикатор курсора с инвертированным текстом. Позволяет экранным лупам, таким как macOS Zoom, отслеживать положение курсора |

215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Установите на `1`, чтобы загружать файлы памяти из каталогов, указанных с помощью `--add-dir`. Загружает `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` и `CLAUDE.local.md`. По умолчанию дополнительные каталоги не загружают файлы памяти |215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Задайте `1`, чтобы загружать файлы памяти из каталогов, указанных через `--add-dir`. Загружаются `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` и `CLAUDE.local.md`. По умолчанию из дополнительных каталогов файлы памяти не загружаются |

216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Установите на `1`, чтобы перерисовать весь экран при каждом кадре в [полноэкранном рендере](/docs/ru/fullscreen) вместо отправки добавочных обновлений. Используйте это, если полноэкранный режим показывает устаревшие или неправильно размещённые фрагменты текста. Claude Code включает это автоматически для фоновых сеансов и [представления агента](/docs/ru/agent-view) на Windows |216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Задайте `1`, чтобы в [полноэкранной отрисовке](/docs/ru/fullscreen) перерисовывать весь экран в каждом кадре вместо отправки инкрементальных обновлений. Используйте, если в полноэкранном режиме появляются устаревшие или смещённые фрагменты текста. Claude Code включает это автоматически для фоновых сессий и [представления агентов](/docs/ru/agent-view) в Windows |

217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Установите на `1`, чтобы отправлять параметр [effort](/docs/ru/model-config#adjust-effort-level) при каждом запросе, даже когда Claude Code не распознаёт ID модели как поддерживающий effort. Используйте это при маршрутизации через [LLM gateway](/docs/ru/llm-gateway) или сторонний поставщик, который обслуживает модели под пользовательскими идентификаторами. Модели, которые отклоняют параметр effort в API, включая модели Claude 3, Sonnet 4.0 и 4.5, Opus 4.0 и 4.1 и Haiku 4.5, по-прежнему исключены, чтобы запросы не не выполнялись |217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Задайте `1`, чтобы отправлять параметр [effort](/docs/ru/model-config#adjust-effort-level) с каждым запросом, даже если Claude Code не распознаёт ID модели как поддерживающий effort. Используйте при маршрутизации через [LLM-шлюз](/docs/ru/llm-gateway) или стороннего провайдера, который предоставляет модели под пользовательскими идентификаторами. Модели, которые отклоняют параметр effort на уровне API, включая модели Claude 3, Sonnet 4.0 и 4.5, Opus 4.0 и 4.1, а также Haiku 4.5, по-прежнему исключаются, чтобы запросы не завершались ошибкой |

218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Интервал в миллисекундах, при котором учётные данные должны быть обновлены (при использовании [`apiKeyHelper`](/docs/ru/settings-reference#apikeyhelper)) |218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Интервал в миллисекундах, с которым следует обновлять учётные данные (при использовании [`apiKeyHelper`](/docs/ru/settings-reference#apikeyhelper)) |

219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Установите на `0`, чтобы остановить Claude Code от автоматического открытия браузера при публикации нового [артефакта](/docs/ru/artifacts#create-an-artifact) |219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Задайте `0`, чтобы Claude Code не открывал браузер автоматически при публикации нового [артефакта](/docs/ru/artifacts#create-an-artifact) |

220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Установите на `0`, чтобы остановить Claude от чтения и ответа на [комментарии к артефакту](/docs/ru/artifacts#collect-comments-on-an-artifact). Не имеет эффекта, когда `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [отключил артефакты](/docs/ru/artifacts#availability). Требует Claude Code версии 2.1.221 или позже |220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Задайте `0`, чтобы Claude не читал [комментарии к артефакту](/docs/ru/artifacts#collect-comments-on-an-artifact) и не отвечал на них. Не действует, если `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [отключила артефакты](/docs/ru/artifacts#availability). Требуется Claude Code v2.1.221 или новее |

221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Установите на `0`, чтобы остановить Claude от [самостоятельного ответа на комментарии, отправленные ему](/docs/ru/artifacts#let-claude-reply-to-comments-on-its-own). Требует Claude Code версии 2.1.228 или позже |221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Задайте `0`, чтобы Claude не [отвечал самостоятельно на отправленные ему комментарии](/docs/ru/artifacts#let-claude-reply-to-comments-on-its-own). Требуется Claude Code v2.1.228 или новее |

222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Установите на `0`, чтобы опустить [блок атрибуции](/docs/ru/llm-gateway-protocol#system-prompt-attribution-block), который несёт версию клиента и отпечаток подсказки, из начала системной подсказки. Кэширование при прямом подключении к API Anthropic не затронуто в любом случае. В некоторых прямых установках Claude Code сохраняет блок на запросах классификатора [автоматического режима](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) даже при установке `0`. В [Блок атрибуции системной подсказки](/docs/ru/llm-gateway-protocol#system-prompt-attribution-block) проверьте, какие подключения и учётные данные это охватывает. До версии 2.1.181 блок включал токен для каждого запроса на пользовательских базовых URL и подключениях Microsoft Foundry, поэтому на этих версиях установите его на `0`, когда ваш LLM gateway кэширует на теле запроса или пересылает запросы сторонним поставщикам, или когда вы подключаетесь к Microsoft Foundry напрямую |222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Задайте `0`, чтобы не добавлять в начало системного промпта [блок атрибуции](/docs/ru/llm-gateway-protocol#system-prompt-attribution-block), содержащий версию клиента и отпечаток промпта. Кэширование при прямом подключении к Anthropic API в любом случае не затрагивается. В некоторых конфигурациях с прямым подключением Claude Code сохраняет блок в запросах классификатора [авторежима](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), даже если задано `0`. В разделе [Блок атрибуции системного промпта](/docs/ru/llm-gateway-protocol#system-prompt-attribution-block) проверьте, какие подключения и учётные данные это охватывает. До v2.1.181 блок включал токен для каждого запроса при пользовательских базовых URL и подключениях к Microsoft Foundry, поэтому в этих версиях задайте `0`, если ваш LLM-шлюз кэширует по телу запроса или пересылает запросы стороннему провайдеру, либо если вы подключаетесь к Microsoft Foundry напрямую |

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Когда `CLAUDE_AUTO_BACKGROUND_TASKS` включен, секунды между напоминаниями Claude проверить [фоновые подагенты](/docs/ru/sub-agents#run-subagents-in-foreground-or-background), которые всё ещё работают. Принимает простое целое число от `1` до `86400` только; любое другое значение или написание читается как не установленное. Если не установлено, напоминаний о проверке нет. Требует Claude Code версии 2.1.248 или позже |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Когда включена `CLAUDE_AUTO_BACKGROUND_TASKS`, — количество секунд между напоминаниями Claude проверить [фоновых субагентов](/docs/ru/sub-agents#run-subagents-in-foreground-or-background), которые всё ещё работают. Принимает только обычное целое число от `1` до `86400`; любое другое значение или вариант записи считается незаданным. Если переменная не задана, напоминаний о проверке нет. Требуется Claude Code v2.1.248 или новее |

224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Установить [окно автокомпактирования](/docs/ru/model-config#set-the-auto-compact-window) в токенах, от `100000` до `1000000`. Принимает простое целое число, такое как `500000` только: значение, такое как `500k`, читается как `500` и зажимается на минимум 100K. Эффективное окно также ограничено окном контекста модели. Имеет приоритет над командой `/autocompact`, флагом `--autocompact` и параметром `autoCompactWindow`. Процент `used_percentage` в строке состояния всегда измеряется относительно полного окна контекста модели, поэтому после установки этой переменной этот процент больше не указывает, когда будет запущено компактирование |224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Задаёт [окно автосжатия](/docs/ru/model-config#set-the-auto-compact-window) в токенах, от `100000` до `1000000`. Принимает только обычное целое число, например `500000`: значение вроде `500k` читается как `500` и ограничивается минимумом в 100K. Фактическое окно также не может превышать контекстное окно модели. Имеет приоритет над командой `/autocompact`, флагом `--autocompact` и настройкой `autoCompactWindow`. Значение `used_percentage` в строке состояния всегда вычисляется относительно полного контекстного окна модели, поэтому, когда эта переменная задана, этот процент больше не указывает, когда произойдёт сжатие |

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Переопределить автоматическое [подключение IDE](/docs/ru/vs-code). По умолчанию Claude Code подключается автоматически при запуске внутри интегрированного терминала поддерживаемой IDE. Установите на `false`, чтобы предотвратить это. Установите на `true`, чтобы принудительно попытаться подключиться, когда автоопределение не работает, например, когда tmux скрывает родительский терминал. Имеет приоритет над глобальным параметром конфигурации [`autoConnectIde`](/docs/ru/settings-reference#autoconnectide) |225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Переопределяет автоматическое [подключение к IDE](/docs/ru/vs-code). По умолчанию Claude Code подключается автоматически при запуске во встроенном терминале поддерживаемой IDE. Задайте `false`, чтобы это предотвратить. Задайте `true`, чтобы принудительно попытаться подключиться, когда автоопределение не срабатывает, например когда tmux скрывает родительский терминал. Имеет приоритет над глобальной настройкой конфигурации [`autoConnectIde`](/docs/ru/settings-reference#autoconnectide) |

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Контролирует, просит ли Claude Code сервер [проверить действия автоматического режима](/docs/ru/permission-modes#server-side-classifier-review). Установите на `0`, чтобы использовать вместо этого собственные запросы классификатора Claude Code. На прямом подключении к API Anthropic требуется версия 2.1.281 или позже. Связанный раздел перечисляет, какие сеансы просят сервер, когда переменная не установлена, и с какой версии. Требует Claude Code версии 2.1.271 или позже |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Определяет, просит ли Claude Code сервер [проверять действия авторежима](/docs/ru/permission-modes#server-side-classifier-review). Задайте `0`, чтобы вместо этого использовать собственные запросы классификатора Claude Code. При прямом подключении к Anthropic API требуется v2.1.281 или новее. В указанном разделе перечислено, какие сессии обращаются к серверу, когда переменная не задана, и с какой версии. Требуется Claude Code v2.1.271 или новее |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Время в миллисекундах, которое Claude Code ждёт, пока цепочка поставщика учётных данных AWS по умолчанию выдаст учётные данные, прежде чем запрос не выполнится с [`AWS default-chain credential resolve timed out`](/docs/ru/errors#aws-default-chain-credential-resolve-timed-out) (по умолчанию: `60000`). Повысьте это, когда шаг в вашей цепочке законно нуждается в большем времени, например вход на основе браузера через обёртку, такую как `aws-vault`, с MFA. Применяется везде, где Claude Code подписывает с цепочкой по умолчанию: [Amazon Bedrock](/docs/ru/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) и [конечная точка Mantle](/docs/ru/amazon-bedrock#use-the-mantle-endpoint). Требует Claude Code версии 2.1.207 или позже |227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Время в миллисекундах, в течение которого Claude Code ждёт получения учётных данных от цепочки поставщиков учётных данных AWS по умолчанию, прежде чем запрос завершится ошибкой [`AWS default-chain credential resolve timed out`](/docs/ru/errors#aws-default-chain-credential-resolve-timed-out) (по умолчанию: `60000`). Увеличьте значение, если какому-то шагу вашей цепочки действительно требуется больше времени, например при входе через SSO в браузере с MFA через обёртку вроде `aws-vault`. Применяется везде, где Claude Code подписывает запросы с помощью цепочки по умолчанию: [Amazon Bedrock](/docs/ru/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) и [эндпоинт Mantle](/docs/ru/amazon-bedrock#use-the-mantle-endpoint). Требуется Claude Code v2.1.207 или новее |

228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Установите на `0`, чтобы отключить [diff файлов, которые изменились во время выполнения команды Bash](/docs/ru/hooks#bash), или `1`, чтобы записать его в каждом режиме разрешений. Имеет приоритет над параметром [`bashEditDiffEnabled`](/docs/ru/settings-reference#basheditdiffenabled). Требует Claude Code версии 2.1.269 или позже |228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Задайте `0`, чтобы отключить [diff файлов, изменившихся во время выполнения команды Bash](/docs/ru/hooks#bash), или `1`, чтобы записывать его во всех режимах разрешений. Имеет приоритет над настройкой [`bashEditDiffEnabled`](/docs/ru/settings-reference#basheditdiffenabled). Требуется Claude Code v2.1.269 или новее |

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Установите на `0`, чтобы неинтерактивный сеанс сообщал статус простоя своему хосту при каждом завершении хода, даже если фоновая работа всё ещё выполняется. По умолчанию сеанс продолжает сообщать статус выполнения после завершения хода, пока фоновая работа, такая как фоновый агент или запуск [workflow](/docs/ru/workflows), всё ещё активна. Это удерживает хост, который наблюдает статус, такой как список удалённых сеансов, от объявления, что Claude ждёт вашего ввода во время работы. Фоновые команды оболочки, такие как сервер разработки, не удерживают статус выполнения. Статус выполнения по умолчанию и отказ `0` требуют Claude Code версии 2.1.269 или позже; на более ранних версиях установите `1`, чтобы удержать статус выполнения |229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Задайте `0`, чтобы неинтерактивная сессия сообщала своему хосту статус простоя в конце каждого хода, даже пока фоновая работа ещё выполняется. По умолчанию сессия продолжает сообщать статус выполнения после окончания хода, пока фоновая работа, например фоновый агент или запуск [workflow](/docs/ru/workflows), ещё активна. Это не позволяет хосту, отслеживающему статус, например списку удалённых сессий, объявить, что Claude ждёт вашего ввода посреди работы. Фоновые shell-команды, например сервер разработки, не удерживают статус выполнения. Статус выполнения по умолчанию и отказ от него с помощью `0` требуют Claude Code v2.1.269 или новее; в более ранних версиях задайте `1`, чтобы удерживать статус выполнения |

230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Установите автоматически в подпроцессах инструмента Bash и [команды hook](/docs/ru/hooks) пока сеанс имеет активное подключение [Remote Control](/docs/ru/remote-control), и удалено при завершении подключения. Значение — это ID сеанса в форме `session_`, тот же идентификатор, который появляется в URL `claude.ai/code` сеанса, поэтому скрипт может ссылаться обратно на сеанс, который его запустил. Требует Claude Code версии 2.1.199 или позже. В [облачных сеансах](/docs/ru/claude-code-on-the-web) вместо этого читайте `CLAUDE_CODE_REMOTE_SESSION_ID` |230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Устанавливается автоматически в подпроцессах инструмента Bash и [команд хуков](/docs/ru/hooks), пока у сессии есть активное подключение [Remote Control](/docs/ru/remote-control), и удаляется при завершении подключения. Значение — ID сессии в форме `session_`, тот же идентификатор, что отображается в URL сессии `claude.ai/code`, поэтому скрипт может сослаться на запустившую его сессию. Требуется Claude Code v2.1.199 или новее. В [облачных сессиях](/docs/ru/claude-code-on-the-web) вместо неё читайте `CLAUDE_CODE_REMOTE_SESSION_ID` |

231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Установите на `0`, чтобы Claude Code читал байт `0x08`, также написанный `^H`, как простой Backspace, или `1`, чтобы читать его как Ctrl+Backspace. Любое значение заменяет платформу по умолчанию. По умолчанию Claude Code читает его как Ctrl+Backspace на Windows, за исключением случаев, когда `TERM_PROGRAM` — это `mintty` или `TERM` — это `cygwin`, и как простой Backspace на macOS и Linux. Установите `0` в терминале Windows, где [Backspace удаляет целое слово](/docs/ru/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Задайте `0`, чтобы Claude Code читал байт `0x08`, также записываемый как `^H`, как обычный Backspace, или `1`, чтобы читать его как Ctrl+Backspace. Любое из значений заменяет поведение платформы по умолчанию. По умолчанию Claude Code читает его как Ctrl+Backspace в Windows, кроме случаев, когда `TERM_PROGRAM` равно `mintty` или `TERM` равно `cygwin`, и как обычный Backspace в macOS и Linux. Задайте `0` в терминале Windows, где [Backspace удаляет целое слово](/docs/ru/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |

232| `CLAUDE_CODE_CERT_STORE` | Разделённый запятыми список источников сертификатов CA для TLS подключений. `bundled` — это набор Mozilla CA, поставляемый с Claude Code. `system` — это хранилище доверия операционной системы, читается только на рантаймах с `tls.getCACertificates`: собственный двоичный файл или Node 22.15 или позже для установок npm. См. [Хранилище сертификатов CA](/docs/ru/network-config#ca-certificate-store). По умолчанию `bundled,system` |232| `CLAUDE_CODE_CERT_STORE` | Список источников сертификатов CA для TLS-подключений через запятую. `bundled` — набор CA Mozilla, поставляемый с Claude Code. `system` — хранилище доверенных сертификатов операционной системы, которое читается только в средах выполнения с `tls.getCACertificates`: в нативном бинарном файле или в Node 22.15 и новее при установке через npm. См. [Хранилище сертификатов CA](/docs/ru/network-config#ca-certificate-store). По умолчанию `bundled,system` |

233| `CLAUDE_CODE_CHILD_SESSION` | Установите на `1` в подпроцессах, которые Claude Code порождает через инструменты Bash, PowerShell и Monitor, команды [hook](/docs/ru/hooks) и команды [строки состояния](/docs/ru/statusline). Не установлено для подпроцессов [MCP сервера](/docs/ru/mcp) stdio, которые долгоживущие и пережидают сеанс, который их порождает. В отличие от `CLAUDECODE`, это устанавливается только самим Claude Code при запуске подпроцесса, а не расширениями IDE, поэтому надёжно отличает вложенный сеанс от верхнего уровня `claude`, запущенного в интегрированном терминале IDE. Вложенный интерактивный TUI `claude`, запущенный таким образом, автоматически исключается из `--resume`, `--continue`, истории со стрелкой вверх и списка `claude agents`. Неинтерактивные сеансы `claude -p` по-прежнему сохраняются. Установите `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1`, чтобы переопределить это исключение. Требует Claude Code версии 2.1.172 или позже |233| `CLAUDE_CODE_CHILD_SESSION` | Устанавливается в `1` в подпроцессах, которые Claude Code запускает через инструменты Bash, PowerShell и Monitor, в командах [хуков](/docs/ru/hooks) и командах [строки состояния](/docs/ru/statusline). Не устанавливается для подпроцессов stdio [MCP-серверов](/docs/ru/mcp), которые живут долго и переживают запустившую их сессию. В отличие от `CLAUDECODE`, эту переменную задаёт только сам Claude Code при запуске подпроцесса, а не расширения IDE, поэтому она надёжно отличает вложенную сессию от `claude` верхнего уровня, запущенного во встроенном терминале IDE. Вложенный интерактивный TUI `claude`, запущенный таким образом, автоматически исключается из `--resume`, `--continue`, истории по стрелке вверх и списка `claude agents`. Неинтерактивные сессии `claude -p` по-прежнему сохраняются. Задайте `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1`, чтобы отменить это исключение. Требуется Claude Code v2.1.172 или новее |

234| `CLAUDE_CODE_CLIENT_CERT` | Путь к файлу сертификата клиента для аутентификации mTLS |234| `CLAUDE_CODE_CLIENT_CERT` | Путь к файлу клиентского сертификата для аутентификации mTLS |

235| `CLAUDE_CODE_CLIENT_KEY` | Путь к файлу приватного ключа клиента для аутентификации mTLS |235| `CLAUDE_CODE_CLIENT_KEY` | Путь к файлу закрытого ключа клиента для аутентификации mTLS |

236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Парольная фраза для зашифрованного CLAUDE\_CODE\_CLIENT\_KEY (опционально) |236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Парольная фраза для зашифрованного CLAUDE\_CODE\_CLIENT\_KEY (необязательно) |

237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Удалено в версии 2.1.186 и теперь не работает. Ранее устанавливало отдельный таймаут для фазы подключения, TLS и заголовка ответа потокового запроса API. Используйте `API_TIMEOUT_MS` для таймаута для каждого запроса. Для фазы заголовка ответа потокового запроса см. `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Удалена в v2.1.186 и теперь ни на что не влияет. Ранее задавала отдельный таймаут для этапа подключения, TLS и заголовков ответа потокового запроса к API. Для таймаута отдельного запроса используйте `API_TIMEOUT_MS`. Для этапа заголовков ответа потокового запроса см. `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Переопределить путь файла журнала отладки. Несмотря на имя, это путь к файлу, а не каталог. Требует отдельного включения режима отладки через `--debug`, `/debug` или переменную окружения `DEBUG`: установка только этой переменной не включает логирование. Флаг [`--debug-file`](/docs/ru/cli-reference#cli-flags) делает оба сразу. По умолчанию `~/.claude/debug/<session-id>.txt` |238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Переопределяет путь к файлу отладочного лога. Несмотря на название, это путь к файлу, а не к каталогу. Требует отдельного включения режима отладки через `--debug`, `/debug` или переменную окружения `DEBUG`: одна лишь эта переменная не включает логирование. Флаг [`--debug-file`](/docs/ru/cli-reference#cli-flags) делает и то и другое сразу. По умолчанию `~/.claude/debug/<session-id>.txt` |

239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Минимальный уровень логирования, записываемый в файл журнала отладки. Значения: `verbose`, `debug` (по умолчанию), `info`, `warn`, `error`. Установите на `verbose`, чтобы включить высокообъёмную диагностику, такую как полный вывод команды строки состояния, или повысьте на `error`, чтобы уменьшить шум |239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Минимальный уровень логирования, записываемый в файл отладочного лога. Значения: `verbose`, `debug` (по умолчанию), `info`, `warn`, `error`. Задайте `verbose`, чтобы включить объёмную диагностику, например полный вывод команды строки состояния, или повысьте до `error`, чтобы уменьшить шум |

240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Установите на `1`, чтобы отключить поддержку [окна контекста 1M](/docs/ru/model-config#extended-context). Если установлено, варианты модели 1M недоступны в средстве выбора модели, и Claude Code удерживает сеансы на моделях с собственным окном 1M, таких как [Sonnet 5.5](/docs/ru/model-config#sonnet-5-5-and-sonnet-5-context-window) и модели Fable, на окне 200K; см. [Расширенный контекст](/docs/ru/model-config#extended-context) для того, как применяется удержание. Полезно для корпоративных сред с требованиями соответствия. Для его роли в исправлении окна для нераспознанного ID модели `[1m]` см. [Исправить окно для ID шлюза или пользовательской модели](/docs/ru/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Задайте `1`, чтобы отключить поддержку [контекстного окна 1M](/docs/ru/model-config#extended-context). Если задано, варианты моделей с 1M недоступны в меню выбора модели, и Claude Code ограничивает сессии на моделях с нативным окном 1M, таких как [Sonnet 5.5](/docs/ru/model-config#sonnet-5-5-and-sonnet-5-context-window) и модели Fable, окном 200K; как применяется это ограничение, см. в разделе [Расширенный контекст](/docs/ru/model-config#extended-context). Полезно в корпоративных средах с требованиями соответствия. О роли этой переменной в исправлении окна для нераспознанного ID модели с `[1m]` см. [Исправление окна для ID модели шлюза или пользовательского ID](/docs/ru/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Установите на `1`, чтобы отключить [адаптивное рассуждение](/docs/ru/model-config#adjust-effort-level) на Opus 4.6 и Sonnet 4.6 и вернуться к фиксированному бюджету мышления, контролируемому `MAX_THINKING_TOKENS`. Не имеет эффекта на [модели Fable](/docs/ru/model-config#extended-thinking), Sonnet 5 или Opus 4.7 и позже, которые всегда используют адаптивное рассуждение |241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Задайте `1`, чтобы отключить [адаптивные рассуждения](/docs/ru/model-config#adjust-effort-level) в Opus 4.6 и Sonnet 4.6 и перейти на фиксированный бюджет мышления, управляемый `MAX_THINKING_TOKENS`. Не влияет на [модели Fable](/docs/ru/model-config#extended-thinking), Sonnet 5 и новее, а также Opus 4.7 и новее, которые всегда используют адаптивные рассуждения |

242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Установите на `1`, чтобы остановить Claude Code от объединения [управляемых параметров](/docs/ru/managed-settings#precedence-within-the-managed-tier) блоков `env` для каждого ключа между источниками администратора, поэтому применяется только весь блок `env` источника с наивысшим приоритетом, как до версии 2.1.223. Установите это в окружении, которое запускает Claude Code, так как Claude Code игнорирует копию, доставленную через блок параметров `env`. Требует Claude Code версии 2.1.223 или позже |242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Задайте `1`, чтобы Claude Code не объединял блоки `env` [управляемых настроек](/docs/ru/managed-settings#precedence-within-the-managed-tier) по ключам из разных административных источников, и применялся только весь блок `env` источника с наивысшим приоритетом, как до v2.1.223. Задавайте её в окружении, из которого запускается Claude Code, поскольку Claude Code игнорирует копию, доставленную через блок `env` настроек. Требуется Claude Code v2.1.223 или новее |

243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Установите на `1`, чтобы отключить [инструмент советника](/docs/ru/advisor). Команда `/advisor` становится недоступной, любой настроенный `advisorModel` игнорируется, и флаг `--advisor` принимается, но не имеет эффекта, поэтому существующие скрипты, которые его передают, продолжают работать без ошибок |243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Задайте `1`, чтобы отключить [инструмент advisor](/docs/ru/advisor). Команда `/advisor` становится недоступной, любая настроенная `advisorModel` игнорируется, а флаг `--advisor` принимается, но ни на что не влияет, поэтому существующие скрипты, которые его передают, продолжают работать без ошибок |

244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Установите на `1`, чтобы отключить [фоновые агенты и представление агента](/docs/ru/agent-view): `claude agents`, `--bg`, `/background` и супервизор по требованию. Эквивалентно параметру [`disableAgentView`](/docs/ru/settings-reference#disableagentview) |244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Задайте `1`, чтобы отключить [фоновых агентов и представление агентов](/docs/ru/agent-view): `claude agents`, `--bg`, `/background` и супервизор, запускаемый по требованию. Эквивалентно настройке [`disableAgentView`](/docs/ru/settings-reference#disableagentview) |

245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Установите на `1`, чтобы отключить [полноэкранный рендер](/docs/ru/fullscreen) и использовать классический рендер основного экрана. Разговор остаётся в собственной прокрутке вашего терминала, поэтому `Cmd+f` и режим копирования tmux работают как обычно. Имеет приоритет над `CLAUDE_CODE_NO_FLICKER` и параметром [`tui`](/docs/ru/settings-reference#tui). Вы также можете переключаться с помощью `/tui default`. Не применяется к фоновым сеансам, открытым из [представления агента](/docs/ru/agent-view), которые всегда используют полноэкранный рендер |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Задайте `1`, чтобы отключить [полноэкранную отрисовку](/docs/ru/fullscreen) и использовать классический отрисовщик основного экрана. Диалог остаётся в нативной прокрутке терминала, поэтому `Cmd+f` и режим копирования tmux работают как обычно. Имеет приоритет над `CLAUDE_CODE_NO_FLICKER` и настройкой [`tui`](/docs/ru/settings-reference#tui). Также можно переключиться командой `/tui default`. Не применяется к фоновым сессиям, открытым из [представления агентов](/docs/ru/agent-view), которые всегда используют полноэкранную отрисовку |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Установите на `1`, чтобы отключить инструмент [Artifact](/docs/ru/artifacts), который публикует вывод сеанса как приватную веб-страницу на claude.ai. После установки ни один файл параметров не включит инструмент обратно. Чтобы вместо этого отключить инструмент из файла параметров, установите [`enableArtifact`](/docs/ru/settings-reference#enableartifact) на `false`; устаревший ключ [`disableArtifact`](/docs/ru/settings-reference#disableartifact) также отключает его |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Задайте `1`, чтобы отключить инструмент [Artifact](/docs/ru/artifacts), который публикует результаты сессии как приватную веб-страницу на claude.ai. После того как она задана, ни один файл настроек не может снова включить инструмент. Чтобы вместо этого отключить инструмент из файла настроек, задайте [`enableArtifact`](/docs/ru/settings-reference#enableartifact) равным `false`; устаревший ключ [`disableArtifact`](/docs/ru/settings-reference#disableartifact) тоже его отключает |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Установите на `1`, чтобы отключить обработку вложений. Упоминания файлов с синтаксисом `@` отправляются как простой текст вместо расширения в содержимое файла |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Задайте `1`, чтобы отключить обработку вложений. Упоминания файлов с синтаксисом `@` отправляются как обычный текст, а не разворачиваются в содержимое файла |

248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Задайте `1`, чтобы процесс Claude Code сам выполнял команду [`gcpAuthRefresh`](/docs/ru/settings-reference#gcpauthrefresh) или [`awsAuthRefresh`](/docs/ru/settings-reference#awsauthrefresh), а не ждал, пока её выполнит другой процесс. Требуется Claude Code v2.1.286 или новее |248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Задайте `1`, чтобы процесс Claude Code сам выполнял свою команду [`gcpAuthRefresh`](/docs/ru/settings-reference#gcpauthrefresh) или [`awsAuthRefresh`](/docs/ru/settings-reference#awsauthrefresh), а не ждал, пока её выполнит другой процесс. Требуется Claude Code v2.1.286 или новее |

249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Установите на `1`, чтобы отключить [автоматическую память](/docs/ru/memory#auto-memory). Установите на `0`, чтобы принудительно включить автоматическую память, даже если режим `--bare` или [`autoMemoryEnabled: false`](/docs/ru/settings-reference#automemoryenabled) в противном случае отключили бы её. Когда отключено, Claude не создаёт и не загружает файлы автоматической памяти |249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Задайте `1`, чтобы отключить [автоматическую память](/docs/ru/memory#auto-memory). Задайте `0`, чтобы принудительно включить автоматическую память, даже если режим `--bare` или [`autoMemoryEnabled: false`](/docs/ru/settings-reference#automemoryenabled) иначе отключили бы её. Если она отключена, Claude не создаёт и не загружает файлы автоматической памяти |

250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Установите на `1`, чтобы отключить всю функциональность фоновых задач, включая параметр `run_in_background` на инструментах Bash и подагента, автофоновое выполнение и сочетание клавиш Ctrl+B |250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Задайте `1`, чтобы отключить всю функциональность фоновых задач, включая параметр `run_in_background` у инструментов Bash и субагентов, автоматический перевод в фоновый режим и сочетание клавиш Ctrl+B |

251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Установите на `1`, чтобы остановить Claude Code от обработки потокового ответа [Amazon Bedrock](/docs/ru/amazon-bedrock) с отсутствующим или пустым заголовком `Content-Type` как двоичного потока событий Amazon Bedrock. По умолчанию Claude Code предполагает, что шлюз удалил заголовок из иначе неизменённого ответа, поэтому он декодирует тело и потоковая передача продолжает работать. Установите это только для шлюза, который также повторно выдаёт поток как события, отправляемые сервером; Claude Code затем читает тело без заголовка как события, отправляемые сервером, вместо этого. Требует Claude Code версии 2.1.239 или позже |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Задайте `1`, чтобы Claude Code не считал потоковый ответ [Amazon Bedrock](/docs/ru/amazon-bedrock) с отсутствующим или пустым заголовком `Content-Type` двоичным потоком событий Amazon Bedrock. По умолчанию Claude Code предполагает, что шлюз удалил заголовок из в остальном неизменённого ответа, поэтому декодирует тело, и потоковая передача продолжает работать. Задавайте её только для шлюза, который также повторно выдаёт поток в виде server-sent events; тогда Claude Code читает тело без заголовка как server-sent events. Требуется Claude Code v2.1.239 или новее |

252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Установите на `1`, чтобы пропустить проверку того, что потоковый ответ [Amazon Bedrock](/docs/ru/amazon-bedrock) несёт тип содержимого `application/vnd.amazon.eventstream`. Без этой переменной, когда ответ несёт другой тип содержимого, Claude Code не выполняет запрос с ошибкой, называющей этот тип, что означает [шлюз или прокси преобразует ответ](/docs/ru/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Настройте шлюз для пересылки заголовка `Content-Type` и тела без изменений, а не устанавливайте эту переменную. Требует Claude Code версии 2.1.208 или позже |252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Задайте `1`, чтобы пропустить проверку того, что потоковый ответ [Amazon Bedrock](/docs/ru/amazon-bedrock) имеет content-type `application/vnd.amazon.eventstream`. Без этой переменной, если ответ имеет другой content-type, Claude Code завершает запрос ошибкой с указанием этого типа, что означает, что [шлюз или прокси преобразует ответ](/docs/ru/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Вместо того чтобы задавать эту переменную, настройте шлюз так, чтобы он пересылал заголовок `Content-Type` и тело без изменений. Требуется Claude Code v2.1.208 или новее |

253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Установите на `1`, чтобы остановить запущенные фоновые команды оболочки [фонового сеанса](/docs/ru/agent-view), динамические workflows, и, начиная с версии 2.1.198, фоновые подагенты, когда [супервизор](/docs/ru/agent-view#the-supervisor-process) останавливает, перезапускает или обновляет процесс этого сеанса, вместо передачи их следующему процессу сеанса. Влияет только на эту передачу: фоновое выполнение сеанса с `←` или [`/background`](/docs/ru/agent-view#from-inside-a-session) по-прежнему переносит текущую работу, и `CLAUDE_DISABLE_ADOPT` отключает оба. Требует Claude Code версии 2.1.196 или позже |253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Задайте `1`, чтобы останавливать выполняющиеся фоновые shell-команды, динамические workflow и, начиная с v2.1.198, фоновых субагентов [фоновой сессии](/docs/ru/agent-view), когда [супервизор](/docs/ru/agent-view#the-supervisor-process) останавливает, перезапускает или обновляет процесс этой сессии, вместо того чтобы передавать их следующему процессу сессии. Влияет только на эту передачу: перевод сессии в фоновый режим с помощью `←` или [`/background`](/docs/ru/agent-view#from-inside-a-session) по-прежнему переносит незавершённую работу, а `CLAUDE_DISABLE_ADOPT` отключает и то и другое. Требуется Claude Code v2.1.196 или новее |

254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Установите на `1`, чтобы остановить Claude Code от завершения [фоновых команд оболочки](/docs/ru/interactive-mode#background-bash-commands) под давлением памяти. По умолчанию на macOS и Linux Claude Code завершает фоновые оболочки, когда операционная система сообщает о критическом давлении памяти и сеанс был неактивен 30 минут без хода или запущенного подагента. Windows не имеет сигнала давления памяти, поэтому эта переменная не имеет эффекта там. Требует Claude Code версии 2.1.193 или позже |254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Задайте `1`, чтобы Claude Code не завершал [фоновые shell-команды](/docs/ru/interactive-mode#background-bash-commands) при нехватке памяти. По умолчанию в macOS и Linux Claude Code завершает фоновые оболочки, когда операционная система сообщает о критической нехватке памяти, а сессия простаивает 30 минут без выполняющегося хода или субагента. В Windows нет сигнала о нехватке памяти, поэтому там эта переменная ни на что не влияет. Требуется Claude Code v2.1.193 или новее |

255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Установите на `1`, чтобы отключить [skills](/docs/ru/skills) и workflows, включённые в Claude Code: встроенные skills и workflows полностью удаляются, в то время как встроенные команды, такие как `/init`, остаются типируемыми, но скрыты от модели. `/doctor` остаётся типируемым, как встроенные команды; скройте его с помощью `DISABLE_DOCTOR_COMMAND` вместо этого. Skills из плагинов, `.claude/skills/` и `.claude/commands/` не затронуты. Эквивалентно параметру [`disableBundledSkills`](/docs/ru/settings-reference#disablebundledskills) |255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Задайте `1`, чтобы отключить [скиллы](/docs/ru/skills) и workflow, входящие в состав Claude Code: встроенные скиллы и workflow полностью удаляются, а встроенные команды, такие как `/init`, по-прежнему можно ввести, но они скрыты от модели. `/doctor`, как и встроенные команды, по-прежнему можно ввести; чтобы скрыть её, используйте `DISABLE_DOCTOR_COMMAND`. Скиллы из плагинов, `.claude/skills/` и `.claude/commands/` не затрагиваются. Эквивалентно настройке [`disableBundledSkills`](/docs/ru/settings-reference#disablebundledskills) |

256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Установите на `1`, чтобы сохранить инструменты браузера [Claude in Chrome](/docs/ru/chrome) доступными, опуская раздел Chrome системной подсказки и `/claude-in-chrome` [встроенный skill](/docs/ru/skills#bundled-skills). Для хостов, которые встраивают Claude Code и предоставляют свои собственные рекомендации браузера. Требует Claude Code версии 2.1.257 или позже |256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Задайте `1`, чтобы инструменты браузера [Claude in Chrome](/docs/ru/chrome) оставались доступными, но раздел Chrome системного промпта и [встроенный скилл](/docs/ru/skills#bundled-skills) `/claude-in-chrome` были опущены. Для хостов, которые встраивают Claude Code и предоставляют собственные инструкции по работе с браузером. Требуется Claude Code v2.1.257 или новее |

257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Установите на `1`, чтобы предотвратить загрузку любых файлов памяти CLAUDE.md в контекст, включая файлы памяти пользователя, проекта и автоматической памяти |257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Задайте `1`, чтобы запретить загрузку в контекст любых файлов памяти CLAUDE.md, включая пользовательские, проектные файлы и файлы автоматической памяти |

258| `CLAUDE_CODE_DISABLE_CRON` | Установите на `1`, чтобы отключить [запланированные задачи](/docs/ru/scheduled-tasks). Skill `/loop` и инструменты cron становятся недоступными, и любые уже запланированные задачи перестают срабатывать, включая задачи, которые уже выполняются в середине сеанса |258| `CLAUDE_CODE_DISABLE_CRON` | Задайте `1`, чтобы отключить [запланированные задачи](/docs/ru/scheduled-tasks). Скилл `/loop` и инструменты cron становятся недоступными, а все уже запланированные задачи перестают срабатывать, включая задачи, уже выполняющиеся в ходе сессии |

259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Установите на `1`, чтобы отключить ограничение времени на [критические пути удаления](/docs/ru/permission-modes#critical-paths) подсказки. В режиме `auto` Claude Code затем отправляет эти удаления классификатору вместо этого, и в режиме `bypassPermissions` подсказка ждёт вашего ответа. Установите это в окружении, которое запускает Claude Code, так как Claude Code игнорирует копию, доставленную через блок параметров `env`. Требует Claude Code версии 2.1.281 или позже |259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Задайте `1`, чтобы отключить ограничение времени для запросов подтверждения [удаления критических путей](/docs/ru/permission-modes#critical-paths). В режиме `auto` Claude Code тогда отправляет такие удаления классификатору, а в режиме `bypassPermissions` запрос ждёт вашего ответа. Задавайте её в окружении, из которого запускается Claude Code, поскольку Claude Code игнорирует копию, доставленную через блок `env` настроек. Требуется Claude Code v2.1.281 или новее |

260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Установите `1`, чтобы удалять из запросов к API предварительные заголовки запроса `anthropic-beta`, связанные с ними поля тела и бета-поля схемы инструментов, такие как `defer_loading` и `eager_input_streaming`. Используйте, когда прокси-шлюз отклоняет запросы с ошибкой `Unexpected value(s)` для заголовка `anthropic-beta` или с ошибкой `Extra inputs are not permitted`. В разделе [Отключение предварительных возможностей](/docs/ru/llm-gateway-protocol#disable-pre-release-capabilities) перечислено, что удаляет переменная, включая [MCP Tool Search](/docs/ru/mcp#scale-with-mcp-tool-search), и что Claude Code продолжает отправлять |260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Задайте `1`, чтобы удалять из запросов к API предварительные заголовки запроса `anthropic-beta`, связанные с ними поля тела и бета-поля схемы инструментов, такие как `defer_loading` и `eager_input_streaming`. Используйте, если прокси-шлюз отклоняет запросы с ошибкой `Unexpected value(s)` для заголовка `anthropic-beta` или ошибкой `Extra inputs are not permitted`. В разделе [Отключение предварительных возможностей](/docs/ru/llm-gateway-protocol#disable-pre-release-capabilities) перечислено, что удаляет эта переменная, включая [MCP tool search](/docs/ru/mcp#scale-with-mcp-tool-search), и что Claude Code продолжает отправлять |

261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Установите на `1`, чтобы отключить встроенные [подагенты Explore и Plan](/docs/ru/sub-agents#built-in-subagents). Claude исследует с помощью своих инструментов поиска или подагента общего назначения вместо этого, и [режим плана](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) читает файлы напрямую, а не запускает агентов Explore и Plan. Пользовательские подагенты с именами `Explore` или `Plan` не затронуты. Чтобы удалить каждый встроенный тип подагента в Agent SDK или неинтерактивном режиме, используйте `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` вместо этого. Требует Claude Code версии 2.1.198 или позже |261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Задайте `1`, чтобы отключить встроенных [субагентов Explore и Plan](/docs/ru/sub-agents#built-in-subagents). Вместо них Claude исследует код с помощью своих инструментов поиска или субагента общего назначения, а [режим планирования](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) читает файлы напрямую, а не запускает агентов Explore и Plan. Пользовательские субагенты с именами `Explore` или `Plan` не затрагиваются. Чтобы удалить все встроенные типы субагентов в Agent SDK или неинтерактивном режиме, используйте вместо неё `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`. Требуется Claude Code v2.1.198 или новее |

262| `CLAUDE_CODE_DISABLE_FAST_MODE` | Установите на `1`, чтобы отключить [быстрый режим](/docs/ru/fast-mode) |262| `CLAUDE_CODE_DISABLE_FAST_MODE` | Задайте `1`, чтобы отключить [быстрый режим](/docs/ru/fast-mode) |

263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Установите на `1`, чтобы отключить опросы качества сеанса "How is Claude doing?". Опросы также отключены, когда установлены `DISABLE_TELEMETRY`, `DO_NOT_TRACK` или `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, если только `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` не включит их обратно. Чтобы установить частоту выборки вместо полного отключения, используйте параметр [`feedbackSurveyRate`](/docs/ru/settings-reference#feedbacksurveyrate). См. [Опросы качества сеанса](/docs/ru/data-usage#session-quality-surveys) |263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Задайте `1`, чтобы отключить опросы о качестве сессии «How is Claude doing?». Опросы также отключаются, если задана `DISABLE_TELEMETRY`, `DO_NOT_TRACK` или `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, если только `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` не включает их обратно. Чтобы задать частоту выборки вместо полного отключения, используйте настройку [`feedbackSurveyRate`](/docs/ru/settings-reference#feedbacksurveyrate). См. [Опросы о качестве сессии](/docs/ru/data-usage#session-quality-surveys) |

264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Установите на `1`, чтобы отключить файл [checkpointing](/docs/ru/checkpointing). Команда `/rewind` не сможет восстановить изменения кода. Переопределяет параметр [`fileCheckpointingEnabled`](/docs/ru/settings-reference#filecheckpointingenabled) |264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Задайте `1`, чтобы отключить [чекпоинты](/docs/ru/checkpointing) файлов. Команда `/rewind` не сможет восстанавливать изменения кода. Переопределяет настройку [`fileCheckpointingEnabled`](/docs/ru/settings-reference#filecheckpointingenabled) |

265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Установите на `1`, чтобы удалить встроенные инструкции рабочего процесса commit и PR и снимок статуса git из системной подсказки Claude. Полезно при использовании собственных skills рабочего процесса git. Имеет приоритет над параметром [`includeGitInstructions`](/docs/ru/settings-reference#includegitinstructions) при установке |265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Задайте `1`, чтобы удалить из контекста Claude встроенные инструкции по рабочему процессу коммитов и PR, а также снимок статуса git. Полезно при использовании собственных скиллов для рабочего процесса git. Если задана, имеет приоритет над настройкой [`includeGitInstructions`](/docs/ru/settings-reference#includegitinstructions) |

266| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Установите на `1`, чтобы предотвратить автоматическое переотображение Opus 4.0 и 4.1 на текущую версию Opus на API Anthropic. Используйте, когда вы намеренно хотите закрепить более старую модель. Переотображение не выполняется на Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry |266| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Задайте `1`, чтобы предотвратить автоматическую замену Opus 4.0 и 4.1 на текущую версию Opus в Anthropic API. Используйте, если вы намеренно хотите закрепить более старую модель. Замена не выполняется в Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry |

267| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Установите на `1`, чтобы остановить Claude Code на [Amazon Bedrock](/docs/ru/amazon-bedrock#when-a-model-is-disabled-mid-session) и [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai#when-a-model-is-disabled-mid-session) от переключения на более старую модель, когда ваша учётная запись теряет доступ к модели сеанса в середине сеанса; отказанный запрос не выполняется сразу вместо этого. [Цепочка модели резервного варианта](/docs/ru/model-config#fallback-model-chains), которую вы настраиваете, по-прежнему переключается на этот отказ, и [проверки модели при запуске](/docs/ru/amazon-bedrock#startup-model-checks) по-прежнему переключаются при запуске. Требует Claude Code версии 2.1.285 или позже |267| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Задайте `1`, чтобы Claude Code в [Amazon Bedrock](/docs/ru/amazon-bedrock#when-a-model-is-disabled-mid-session) и [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai#when-a-model-is-disabled-mid-session) не переключался на более старую модель, когда ваш аккаунт теряет доступ к модели сессии посреди сессии; вместо этого отклонённый запрос сразу завершается ошибкой. Настроенная вами [цепочка резервных моделей](/docs/ru/model-config#fallback-model-chains) по-прежнему переключается при таком отказе, а [проверки моделей при запуске](/docs/ru/amazon-bedrock#startup-model-checks) по-прежнему переключаются на резервный вариант при запуске. Требуется Claude Code v2.1.285 или новее |

268| `CLAUDE_CODE_DISABLE_MOUSE` | Установите на `1`, чтобы отключить отслеживание мыши в [полноэкранном рендере](/docs/ru/fullscreen). Прокрутка клавиатуры с `PgUp` и `PgDn` по-прежнему работает. Используйте это, чтобы сохранить собственное поведение копирования при выборе вашего терминала |268| `CLAUDE_CODE_DISABLE_MOUSE` | Задайте `1`, чтобы отключить отслеживание мыши в [полноэкранной отрисовке](/docs/ru/fullscreen). Прокрутка с клавиатуры с помощью `PgUp` и `PgDn` по-прежнему работает. Используйте, чтобы сохранить нативное поведение терминала «копирование при выделении» |

269| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Установите на `1`, чтобы отключить обработку щелчков, перетаскивания и наведения в [полноэкранном рендере](/docs/ru/fullscreen) при сохранении прокрутки колеса мыши. Используйте это, когда вы хотите, чтобы прокрутка колеса работала внутри Claude Code, но не хотите, чтобы щелчки позиционировали курсор, расширяли вывод инструмента или открывали ссылки. `CLAUDE_CODE_DISABLE_MOUSE` имеет приоритет при установке обоих. Требует Claude Code версии 2.1.195 или позже |269| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Задайте `1`, чтобы отключить обработку щелчков, перетаскивания и наведения в [полноэкранной отрисовке](/docs/ru/fullscreen), сохранив прокрутку колесом мыши. Используйте, если хотите, чтобы прокрутка колесом работала внутри Claude Code, но не хотите, чтобы щелчки перемещали курсор, разворачивали вывод инструментов или открывали ссылки. Если заданы обе переменные, `CLAUDE_CODE_DISABLE_MOUSE` имеет приоритет. Требуется Claude Code v2.1.195 или новее |

270| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Установите на `1`, чтобы остановить Claude Code от повторного чтения [сертификата и ключа клиента mTLS](/docs/ru/network-config#mtls-authentication) при отказе запроса API с ошибкой на уровне подключения, такой как сброс подключения или ошибка TLS handshake. С отключённой перезагрузкой Claude Code загружает повёрнутые файлы только при следующем применении параметров или при следующем запуске. Требует Claude Code версии 2.1.232 или позже |270| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Задайте `1`, чтобы Claude Code не перечитывал [клиентский сертификат и ключ mTLS](/docs/ru/network-config#mtls-authentication), когда запрос к API завершается ошибкой на уровне соединения, например сбросом соединения или ошибкой TLS-рукопожатия. При отключённой перезагрузке Claude Code загружает обновлённые файлы только при следующем применении настроек или при следующем запуске. Требуется Claude Code v2.1.232 или новее |

271| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Установите на любое непустое значение, такое как `1`, чтобы отключить несущественный сетевой трафик: автообновления, телеметрию, отчёты об ошибках, команду `/feedback`, [отзывы, составленные Claude](/docs/ru/tools-reference#sendfeedback-tool-behavior), примечания к выпуску, проверки [значка статуса PR и MR](/docs/ru/interactive-mode#pr-review-status) и проверки доступности, такие как проверка [быстрого режима](/docs/ru/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Это также останавливает [фоновые запуски источников команд плагина](/docs/ru/plugins/loading#when-a-command-source-re-runs), которые являются локальными командами, а не сетевым трафиком, потому что они могут вызвать установку зависимостей. **Установка на `0` или `false` по-прежнему отключает этот трафик**, в отличие от большинства переменных включения/отключения; отмените установку переменной, чтобы разрешить её снова. Также отключает получение флагов функций, что делает [Remote Control](/docs/ru/remote-control#requirements) и другие [функции, которые нуждаются в получении флагов функций](#features-that-need-feature-flag-fetching) недоступными. Автоустановка официального рынка плагинов не охватывается; отключите её с помощью `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Не влияет на [обнаружение модели шлюза](/docs/ru/llm-gateway-connect#add-gateway-models-to-the-model-picker), которое имеет свой собственный opt-in |271| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Задайте любое непустое значение, например `1`, чтобы отключить необязательный сетевой трафик: автообновления, телеметрию, отчёты об ошибках, команду `/feedback`, [отзывы, составленные Claude](/docs/ru/tools-reference#sendfeedback-tool-behavior), примечания к выпускам, проверки [значка статуса PR и MR](/docs/ru/interactive-mode#pr-review-status) и проверки доступности, например проверку [быстрого режима](/docs/ru/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Это также останавливает [фоновые запуски источников `command` плагинов](/docs/ru/plugins/loading#when-a-command-source-re-runs), которые являются локальными командами, а не сетевым трафиком, поскольку они могут запускать установку зависимостей. **Значение `0` или `false` тоже отключает этот трафик**, в отличие от большинства переменных включения/отключения; чтобы снова разрешить его, удалите переменную. Также отключает получение флагов функций, из-за чего [Remote Control](/docs/ru/remote-control#requirements) и другие [функции, которым нужно получение флагов функций](#features-that-need-feature-flag-fetching), становятся недоступными. Автоустановка официального маркетплейса плагинов этим не охватывается; отключите её с помощью `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Не влияет на [обнаружение моделей шлюза](/docs/ru/llm-gateway-connect#add-gateway-models-to-the-model-picker), которое включается отдельно |

272| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Установите на `1`, чтобы отключить резервный вариант без потока, когда потоковый запрос не выполняется в середине потока. Ошибки потока распространяются на уровень повтора вместо этого. Полезно, когда прокси или шлюз вызывает резервный вариант для создания дублирующегося выполнения инструмента |272| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Задайте `1`, чтобы отключить резервный вариант без потоковой передачи, когда потоковый запрос завершается ошибкой посреди потока. Вместо этого ошибки потоковой передачи передаются на уровень повторных попыток. Полезно, когда из-за прокси или шлюза резервный вариант приводит к повторному выполнению инструментов |

273| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Установите на `1`, чтобы отправить уведомление рабочего стола инструмента `PushNotification` даже во время ввода текста в терминал или его фокусировки. По умолчанию инструмент пропускает как уведомление рабочего стола, так и [мобильный push](/docs/ru/remote-control#mobile-push-notifications), когда обнаруживает недавнюю активность клавиатуры или фокус терминала. Эта переменная отключает только эту локальную проверку, поэтому сервер по-прежнему может подавить мобильный push, когда обнаруживает, что вы активны. Требует Claude Code версии 2.1.193 или позже |273| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Задайте `1`, чтобы инструмент `PushNotification` отправлял уведомление на рабочий стол, даже пока вы печатаете в терминале или терминал находится в фокусе. По умолчанию инструмент пропускает и уведомление на рабочий стол, и [мобильное push-уведомление](/docs/ru/remote-control#mobile-push-notifications), когда обнаруживает недавнюю активность клавиатуры или фокус терминала. Эта переменная отключает только эту локальную проверку, поэтому сервер всё равно может подавить мобильное push-уведомление, если обнаружит, что вы активны. Требуется Claude Code v2.1.193 или новее |

274| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Установите на `1`, чтобы отключить автоматическую регистрацию официального рынка плагинов. Claude Code читает переменную, когда собирается зарегистрировать рынок, обычно при первом интерактивном запуске машины. Если переменная установлена в этот момент, Claude Code постоянно пропускает регистрацию. Отмена установки переменной позже не отменяет пропуск. Запустите `claude plugin marketplace add anthropics/claude-plugins-official` для регистрации рынка в любое время |274| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Задайте `1`, чтобы отключить автоматическую регистрацию официального маркетплейса плагинов. Claude Code читает переменную, когда собирается зарегистрировать маркетплейс, обычно при первом интерактивном запуске на компьютере. Если в этот момент переменная задана, Claude Code навсегда пропускает регистрацию. Удаление переменной позже не отменяет пропуск. Выполните `claude plugin marketplace add anthropics/claude-plugins-official`, чтобы зарегистрировать маркетплейс в любое время |

275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Установите на `1`, чтобы остановить Claude Code от запуска ваших [hooks Notification для неотвеченных запросов разрешений](/docs/ru/hooks#notification) в сеансах, где Claude Code отправляет их обратному вызову `canUseTool` Agent SDK, что является тем, как Claude Desktop и расширение VS Code размещают Claude Code. Не имеет эффекта в сеансах терминала. Требует Claude Code версии 2.1.233 или позже |275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Задайте `1`, чтобы Claude Code не запускал ваши [хуки `Notification` для неотвеченных запросов разрешения](/docs/ru/hooks#notification) в сессиях, где Claude Code отправляет эти запросы в обратный вызов `canUseTool` Agent SDK — именно так Claude Desktop и расширение VS Code размещают Claude Code. Не действует в терминальных сессиях. Требуется Claude Code v2.1.233 или новее |

276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Установите на `1`, чтобы пропустить загрузку skills из системного каталога управляемых skills. Полезно для сеансов контейнера или CI, которые не должны загружать skills, предоставленные оператором |276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Задайте `1`, чтобы пропустить загрузку скиллов из общесистемного каталога управляемых скиллов. Полезно для сессий в контейнерах или CI, которые не должны загружать скиллы, подготовленные оператором |

277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Установите на `1`, чтобы отключить проверку [инструмента PowerShell](/docs/ru/tools-reference#powershell-tool), которая отклоняет встроенные команды `cmd` `rd`, `rmdir`, `del` и `erase` на [системном пути](/docs/ru/permission-modes#remove-item-in-powershell), такой как корень диска или ваш домашний каталог. Claude Code игнорирует эту переменную в блоке `env` файла параметров. Требует Claude Code версии 2.1.283 или позже |277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Задайте `1`, чтобы отключить проверку [инструмента PowerShell](/docs/ru/tools-reference#powershell-tool), которая запрещает встроенные команды `cmd` `rd`, `rmdir`, `del` и `erase` для [системного пути](/docs/ru/permission-modes#remove-item-in-powershell), например корня диска или домашнего каталога. Claude Code игнорирует эту переменную в блоке `env` файла настроек. Требуется Claude Code v2.1.283 или новее |

278| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Установите на `1`, чтобы отключить проверку [критических путей](/docs/ru/permission-modes#critical-paths) для рекурсивного `rm`, чей целевой объект полностью является выводом подстановки команды, такой как `rm -rf "$(pwd)"`. Другие проверки критических путей продолжают работать. Установите это в окружении, которое запускает Claude Code, так как Claude Code игнорирует копию, доставленную через блок параметров `env`. Требует Claude Code версии 2.1.281 или позже |278| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Задайте `1`, чтобы Claude Code не отправлял поле структурированного вывода `output_config.format` и связанное с ним значение `anthropic-beta`, — для [LLM-шлюза](/docs/ru/llm-gateway-protocol#feature-pass-through), вышестоящий сервис которого их отклоняет. Остальные предварительные возможности, которые отключает [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ru/llm-gateway-protocol#disable-pre-release-capabilities), остаются включёнными. Требуется Claude Code v2.1.288 или новее |

279| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Установите на `1`, чтобы отключить автоматические обновления заголовка терминала на основе контекста разговора. Это также пропускает фоновый запрос модели small/fast для [создания заголовка сеанса](/docs/ru/sessions#name-your-sessions) |279| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Задайте `1`, чтобы отключить проверку [критических путей](/docs/ru/permission-modes#critical-paths) для рекурсивного `rm`, целью которого целиком является вывод подстановки команды, например `rm -rf "$(pwd)"`. Остальные проверки критических путей продолжают выполняться. Задавайте её в окружении, из которого запускается Claude Code, поскольку Claude Code игнорирует копию, доставленную через блок `env` настроек. Требуется Claude Code v2.1.281 или новее |

280| `CLAUDE_CODE_DISABLE_THINKING` | Установите на `1`, чтобы полностью опустить параметр `thinking` из запросов API. Это вариант совместимости для прокси и шлюзов, которые отклоняют параметр. На моделях, которые думают по умолчанию, опущение параметра означает, что модель может всё ещё думать. Чтобы явно отключить [расширенное мышление](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) на API Anthropic, используйте `MAX_THINKING_TOKENS=0` вместо этого. Ни одна переменная не отключает мышление на Opus 5.5, Sonnet 5.5 или моделях Fable, которые не могут иметь отключённое мышление. На [сторонних поставщиках](/docs/ru/third-party-integrations) `MAX_THINKING_TOKENS=0` аналогично опускает параметр, поэтому две переменные ведут себя одинаково там |280| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Задайте `1`, чтобы отключить автоматическое обновление заголовка терминала на основе контекста диалога. Это также пропускает фоновый запрос к малой/быстрой модели, который [генерирует название сессии](/docs/ru/sessions#name-your-sessions) |

281| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Установите на `1`, чтобы пропустить проактивное [автокомпактирование](/docs/ru/costs#reduce-token-usage) когда Claude Code не распознаёт ID модели, такой как [LLM gateway](/docs/ru/llm-gateway) псевдоним. Без этой переменной Claude Code компактирует при окне контекста, которое он предполагает для ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` может вместо этого исправить предполагаемое окно; см. [Исправить окно для ID шлюза или пользовательской модели](/docs/ru/model-config#correct-the-window-for-a-gateway-or-custom-model-id) для того, когда каждая переменная применяется. Требует Claude Code версии 2.1.223 или позже |281| `CLAUDE_CODE_DISABLE_THINKING` | Задайте `1`, чтобы полностью исключить параметр `thinking` из запросов к API. Это параметр совместимости для прокси и шлюзов, которые отклоняют этот параметр. На моделях, которые думают по умолчанию, отсутствие параметра означает, что модель всё равно может думать. Чтобы явно отключить [расширенное мышление](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) в Anthropic API, используйте вместо этого `MAX_THINKING_TOKENS=0`. Ни одна из переменных не отключает мышление в Opus 5.5, Sonnet 5.5 и моделях Fable, у которых мышление нельзя отключить. У [сторонних провайдеров](/docs/ru/third-party-integrations) `MAX_THINKING_TOKENS=0` точно так же исключает параметр, поэтому там обе переменные ведут себя одинаково |

282| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Установите на `1`, чтобы отключить виртуальную прокрутку в [полноэкранном рендере](/docs/ru/fullscreen) и отобразить каждое сообщение в стенограмме. Используйте это, если прокрутка в полноэкранном режиме показывает пустые области, где должны появиться сообщения |282| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Задайте `1`, чтобы пропускать упреждающее [автосжатие](/docs/ru/costs#reduce-token-usage), когда Claude Code не распознаёт ID модели, например псевдоним [LLM-шлюза](/docs/ru/llm-gateway). Без этой переменной Claude Code выполняет сжатие при контекстном окне, которое он предполагает для этого ID. Вместо этого `CLAUDE_CODE_MAX_CONTEXT_TOKENS` может исправить предполагаемое окно; когда применяется каждая из переменных, см. в разделе [Исправление окна для ID модели шлюза или пользовательского ID](/docs/ru/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Требуется Claude Code v2.1.223 или новее |

283| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Установите на `1`, чтобы отключить инструмент [WebFetch](/docs/ru/tools-reference#webfetch-tool-behavior). Инструмент [WebSearch](/docs/ru/tools-reference#websearch-tool-behavior) остаётся доступным. Требует Claude Code версии 2.1.285 или позже |283| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Задайте `1`, чтобы отключить виртуальную прокрутку в [полноэкранной отрисовке](/docs/ru/fullscreen) и отрисовывать каждое сообщение транскрипта. Используйте, если при прокрутке в полноэкранном режиме на месте сообщений появляются пустые области |

284| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Установите на `1`, чтобы запустить команды [инструмента PowerShell](/docs/ru/tools-reference#powershell-tool) на Windows напрямую вместо использования средства запуска `cmd.exe`. По умолчанию средство запуска позволяет команде PowerShell [работающей в фоне](/docs/ru/tools-reference#background-commands) [переносить на процесс следующего сеанса](/docs/ru/agent-view#the-supervisor-process), например, когда вы [фоновый сеанс](/docs/ru/agent-view#from-inside-a-session). Если вы установите переменную, фоновая команда PowerShell останавливается при выходе процесса сеанса. Команды Bash не затронуты. Требует Claude Code версии 2.1.269 или позже |284| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Задайте `1`, чтобы отключить инструмент [WebFetch](/docs/ru/tools-reference#webfetch-tool-behavior). Инструмент [WebSearch](/docs/ru/tools-reference#websearch-tool-behavior) остаётся доступным. Требуется Claude Code v2.1.285 или новее |

285| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Установите на `1`, чтобы отключить [workflows](/docs/ru/workflows#turn-workflows-off). Эквивалентно параметру [`disableWorkflows`](/docs/ru/settings-reference#disableworkflows) |285| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Задайте `1`, чтобы запускать команды [инструмента PowerShell](/docs/ru/tools-reference#powershell-tool) в Windows напрямую, а не через загрузчик `cmd.exe`. По умолчанию загрузчик позволяет команде PowerShell, [выполняющейся в фоновом режиме](/docs/ru/tools-reference#background-commands), [переходить к следующему процессу сессии](/docs/ru/agent-view#the-supervisor-process), например когда вы [переводите сессию в фоновый режим](/docs/ru/agent-view#from-inside-a-session). Если переменная задана, фоновая команда PowerShell останавливается при завершении процесса сессии. Команды Bash не затрагиваются. Требуется Claude Code v2.1.269 или новее |

286| `CLAUDE_CODE_EFFORT_LEVEL` | Установить уровень усилий для поддерживаемых моделей. Значения: `low`, `medium`, `high`, `xhigh`, `max` или `auto` для использования модели по умолчанию. Доступные уровни зависят от модели. Имеет приоритет над `--effort`, `/effort` и параметрами `modelSettings` и `effortLevel`. Ограничение [`maxEffortLevel`](/docs/ru/settings-reference#maxeffortlevel) по-прежнему применяется. См. [Отрегулировать уровень усилий](/docs/ru/model-config#adjust-effort-level) |286| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Задайте `1`, чтобы отключить [workflow](/docs/ru/workflows#turn-workflows-off). Эквивалентно настройке [`disableWorkflows`](/docs/ru/settings-reference#disableworkflows) |

287| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Принято для совместимости со старыми выпусками и не имеет эффекта. Автоматический режим доступен по умолчанию на каждом поставщике, включая Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry и сеансы [Claude apps gateway](/docs/ru/claude-apps-gateway) с входом. В версиях 2.1.158 через 2.1.206 установка на `1` была необходима для доступности [автоматического режима](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) на этих поставщиках |287| `CLAUDE_CODE_EFFORT_LEVEL` | Задаёт уровень effort для поддерживаемых моделей. Значения: `low`, `medium`, `high`, `xhigh`, `max` или `auto` для использования значения модели по умолчанию. Доступные уровни зависят от модели. Имеет приоритет над `--effort`, `/effort` и настройками `modelSettings` и `effortLevel`. Ограничение [`maxEffortLevel`](/docs/ru/settings-reference#maxeffortlevel) по-прежнему действует. См. [Настройка уровня effort](/docs/ru/model-config#adjust-effort-level) |

288| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Переопределить доступность [сводки сеанса](/docs/ru/interactive-mode#session-recap). Установите на `0`, чтобы принудительно отключить сводки независимо от переключателя `/config`. Установите на `1`, чтобы принудительно включить сводки, когда [`awaySummaryEnabled`](/docs/ru/settings-reference#awaysummaryenabled) имеет значение `false`. Имеет приоритет над параметром и переключателем `/config` |288| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Принимается для совместимости со старыми выпусками и ни на что не влияет. Авторежим по умолчанию доступен у всех провайдеров, включая Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry и сессии с выполненным входом через [Claude apps gateway](/docs/ru/claude-apps-gateway). В версиях с v2.1.158 по v2.1.206 для того, чтобы [авторежим](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) был доступен у этих провайдеров, требовалось задать этой переменной значение `1` |

289| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Установите на `1`, чтобы обновить состояние плагина на границах хода в [неинтерактивном режиме](/docs/ru/headless) после завершения фоновой установки. Отключено по умолчанию, потому что обновление изменяет системную подсказку в середине сеанса, что делает недействительным [кэширование подсказок](/docs/ru/prompt-caching) для этого хода |289| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Переопределяет доступность [сводки сессии](/docs/ru/interactive-mode#session-recap). Задайте `0`, чтобы принудительно отключить сводки независимо от переключателя в `/config`. Задайте `1`, чтобы принудительно включить сводки, когда [`awaySummaryEnabled`](/docs/ru/settings-reference#awaysummaryenabled) равно `false`. Имеет приоритет над настройкой и переключателем в `/config` |

290| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Установите на `1`, чтобы направить опрос качества сеанса "How is Claude doing?" на ваш собственный [сборщик OpenTelemetry](/docs/ru/monitoring-usage) когда трафик несущественный, связанный с Anthropic, заблокирован. Рейтинги опроса выдаются только как события OTEL вашему настроенному сборщику. Никакие данные опроса не отправляются Anthropic в этом режиме. Применяется, когда установлены `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` или `DO_NOT_TRACK`, и не имеет эффекта в противном случае. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` и политика отзывов организации имеют приоритет |290| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Установите `1`, чтобы обновлять состояние плагинов на границах ходов в [неинтерактивном режиме](/docs/ru/headless) после завершения фоновой установки. По умолчанию отключено, поскольку обновление меняет системный промпт посреди сессии, что делает недействительным [кэширование промптов](/docs/ru/prompt-caching) для этого хода |

291| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Контролирует, потоком ли входные данные вызова инструмента из API по мере их создания Claude. При отключении большой вход инструмента, такой как длинная запись файла, поступает только после завершения создания Claude, что может выглядеть как зависание. Включено по умолчанию на API Anthropic. На Amazon Bedrock и Google Cloud's Agent Platform включено для каждой модели, где развёрнутый контейнер это поддерживает. Установите на `0`, чтобы отказаться. Установите на `1`, чтобы принудительно включить при маршрутизации через прокси через `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` или `ANTHROPIC_BEDROCK_BASE_URL`. Отключено по умолчанию на Microsoft Foundry и подключениях [шлюза](/docs/ru/llm-gateway) |291| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Установите `1`, чтобы направлять опрос о качестве сессии "How is Claude doing?" в ваш собственный [коллектор OpenTelemetry](/docs/ru/monitoring-usage), когда второстепенный трафик к Anthropic заблокирован. Оценки из опроса передаются только в виде событий OTEL в настроенный вами коллектор. В этом режиме никакие данные опроса не отправляются в Anthropic. Применяется, когда задана `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` или `DO_NOT_TRACK`, и в остальных случаях не действует. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` и политика организации в отношении отзывов о продукте имеют приоритет |

292| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Установите на `1`, чтобы заполнить средство выбора `/model` из конечной точки `/v1/models` вашего шлюза, когда `ANTHROPIC_BASE_URL` указывает на совместимый с Anthropic шлюз, такой как LiteLLM, Kong или внутренний прокси. Отключено по умолчанию, потому что шлюзы, поддерживаемые общим ключом API, в противном случае показали бы каждому пользователю каждую модель, к которой может получить доступ ключ. Обнаруженные модели по-прежнему фильтруются по [`availableModels`](/docs/ru/settings-reference#availablemodels) списку разрешений, который получает сеанс; доставьте список через [MDM или файл управляемых параметров](/docs/ru/managed-settings#delivery-mechanisms), так как [доставка, управляемая сервером, недоступна на конфигурациях шлюза](/docs/ru/server-managed-settings#platform-availability) |292| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Управляет тем, передаются ли входные данные вызовов инструментов потоком из API по мере того, как Claude их генерирует. Если это отключено, большие входные данные инструмента, например запись длинного файла, поступают только после того, как Claude закончит их генерировать, что может выглядеть как зависание. По умолчанию включено в Anthropic API. В Amazon Bedrock и Google Cloud's Agent Platform включается для каждой модели отдельно, если развёрнутый контейнер это поддерживает. Установите `0`, чтобы отказаться. Установите `1`, чтобы принудительно включить при маршрутизации через прокси с помощью `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` или `ANTHROPIC_BEDROCK_BASE_URL`. По умолчанию отключено в Microsoft Foundry и при подключениях через [шлюз](/docs/ru/llm-gateway) |

293| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Удалено в версии 2.1.142, когда [быстрый режим](/docs/ru/fast-mode) по умолчанию переместился с Opus 4.6 на Opus 4.7 |293| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Установите `1`, чтобы заполнять список выбора `/model` из эндпоинта `/v1/models` вашего шлюза, когда `ANTHROPIC_BASE_URL` указывает на совместимый с Anthropic шлюз, такой как LiteLLM, Kong или внутренний прокси. По умолчанию отключено, поскольку иначе шлюзы с общим API-ключом показывали бы каждому пользователю все модели, к которым у ключа есть доступ. Обнаруженные модели по-прежнему фильтруются списком разрешённых моделей [`availableModels`](/docs/ru/settings-reference#availablemodels), который получает сессия; доставляйте этот список через [MDM или файл управляемых настроек](/docs/ru/managed-settings#delivery-mechanisms), поскольку [доставка с сервера недоступна для конфигураций со шлюзом](/docs/ru/server-managed-settings#platform-availability) |

294| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Установите на `false`, чтобы отключить предложения подсказок, серые предсказания, которые появляются в вводе подсказки. Имеет приоритет над параметром [`promptSuggestionEnabled`](/docs/ru/settings-reference#promptsuggestionenabled), который записывает переключатель **Prompt suggestions** в `/config`. Claude Code также [приостанавливает предложения, пока ваша учётная запись близка к или находится на пределе использования](/docs/ru/interactive-mode#when-claude-code-skips-suggestions). Установите на `true`, чтобы сохранить их включёнными до достижения лимита. Требует Claude Code версии 2.1.238 или позже. См. [Предложения подсказок](/docs/ru/interactive-mode#prompt-suggestions) |294| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Удалена в v2.1.142, когда модель по умолчанию для [быстрого режима](/docs/ru/fast-mode) сменилась с Opus 4.6 на Opus 4.7 |

295| `CLAUDE_CODE_ENABLE_TASKS` | Выбирает, какие инструменты отслеживания задач Claude Code предоставляет в [сеансах, которые их имеют](/docs/ru/tools-reference#task-tool-availability). По умолчанию Claude Code предоставляет инструменты Task `TaskCreate`, `TaskUpdate`, `TaskGet` и `TaskList`. Установите на `0`, чтобы получить вместо этого устаревший инструмент `TodoWrite`. См. [Список задач](/docs/ru/interactive-mode#task-list) |295| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Установите `false`, чтобы отключить предложения промптов — серые предсказания, которые появляются в поле ввода промпта. Имеет приоритет над настройкой [`promptSuggestionEnabled`](/docs/ru/settings-reference#promptsuggestionenabled), которую записывает переключатель **Prompt suggestions** в `/config`. Claude Code также [приостанавливает предложения, когда ваша учётная запись близка к лимиту использования или достигла его](/docs/ru/interactive-mode#when-claude-code-skips-suggestions). Установите `true`, чтобы оставить их включёнными до достижения лимита. Требуется Claude Code v2.1.238 или новее. См. [Предложения промптов](/docs/ru/interactive-mode#prompt-suggestions) |

296| `CLAUDE_CODE_ENABLE_TELEMETRY` | Установите на `1`, чтобы включить сбор данных OpenTelemetry для метрик и логирования. Требуется перед настройкой экспортёров OTel. Установите это в вашей оболочке, пользовательских параметрах или управляемых параметрах. Игнорируется в [параметрах проекта и локальных параметрах](/docs/ru/settings-reference#variables-claude-code-ignores-in-env). См. [Мониторинг](/docs/ru/monitoring-usage) |296| `CLAUDE_CODE_ENABLE_TASKS` | Выбирает, какие инструменты отслеживания задач Claude Code предоставляет в [сессиях, где они есть](/docs/ru/tools-reference#task-tool-availability). По умолчанию Claude Code предоставляет инструменты Task `TaskCreate`, `TaskUpdate`, `TaskGet` и `TaskList`. Установите `0`, чтобы вместо них получить устаревший инструмент `TodoWrite`. См. [Список задач](/docs/ru/interactive-mode#task-list) |

297| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Установите на `1`, чтобы получить инструменты отслеживания задач на каждой модели. Без этого Claude Code предоставляет их по умолчанию только на моделях, перечисленных в [Доступность инструмента Task](/docs/ru/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` по-прежнему выбирает инструменты Task или `TodoWrite`. Требует Claude Code версии 2.1.233 или позже |297| `CLAUDE_CODE_ENABLE_TELEMETRY` | Установите `1`, чтобы включить сбор данных OpenTelemetry для метрик и логирования. Требуется до настройки экспортёров OTel. Задайте её в оболочке, пользовательских настройках или управляемых настройках. Игнорируется в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env). См. [Мониторинг](/docs/ru/monitoring-usage) |

298| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Время в миллисекундах для ожидания после того, как цикл запроса становится неактивным, перед автоматическим выходом. Полезно для автоматизированных рабочих процессов и скриптов, использующих режим SDK |298| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Установите `1`, чтобы получить инструменты отслеживания задач на всех моделях. Без неё Claude Code по умолчанию предоставляет их только на моделях, перечисленных в разделе [Доступность инструмента Task](/docs/ru/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` по-прежнему выбирает между инструментами Task и `TodoWrite`. Требуется Claude Code v2.1.233 или новее |

299| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Установите на `1`, чтобы включить [команды агентов](/docs/ru/agent-teams). Команды агентов являются экспериментальными и отключены по умолчанию |299| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Время в миллисекундах, в течение которого нужно ждать после перехода цикла запросов в режим простоя, прежде чем автоматически завершить работу. Полезно для автоматизированных рабочих процессов и скриптов, использующих режим SDK |

300| `CLAUDE_CODE_EXTRA_BODY` | JSON объект для объединения на верхний уровень каждого тела запроса API. Полезно для передачи параметров, специфичных для поставщика, которые Claude Code не предоставляет напрямую. Значение, экспортированное в вашей оболочке, также применяется к [фоновым сеансам](/docs/ru/agent-view), которые вы отправляете с помощью `claude agents` или `--bg`. До версии 2.1.206 фоновые сеансы игнорировали экспортированное значение оболочки и использовали любую копию, которую унаследовал процесс супервизора фона |300| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Установите `1`, чтобы включить [команды агентов](/docs/ru/agent-teams). Команды агентов являются экспериментальной функцией и по умолчанию отключены |

301| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Переопределить ограничение токенов по умолчанию для чтения файлов. Полезно, когда вам нужно прочитать большие файлы полностью |301| `CLAUDE_CODE_EXTRA_BODY` | JSON-объект, объединяемый с верхним уровнем тела каждого API-запроса. Полезно для передачи специфичных для провайдера параметров, которые Claude Code не предоставляет напрямую. Значение, экспортированное в вашей оболочке, также применяется к [фоновым сессиям](/docs/ru/agent-view), которые вы запускаете с помощью `claude agents` или `--bg`. До v2.1.206 фоновые сессии игнорировали значение, экспортированное в оболочке, и использовали ту копию, которую унаследовал фоновый процесс-супервизор |

302| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Установите на `1`, чтобы принудительно сохранить стенограмму, историю подсказок и регистрацию `claude agents`, даже когда этот `claude` был запущен изнутри другого сеанса Claude Code. Используйте, когда унаследованное значение `CLAUDE_CODE_CHILD_SESSION`, например из сеанса `screen` или фонового средства запуска, впервые запущенного инструментом Bash Claude Code, вызывает неправильную классификацию подлинного сеанса верхнего уровня как вложенного. Начиная с версии 2.1.178, Claude Code автоматически обнаруживает случай tmux и игнорирует унаследованный маркер, поэтому tmux больше не нуждается в этой переменной. Также соблюдается на версиях 2.1.169 и ранее; не имеет эффекта на версиях 2.1.170 и 2.1.171, где обнаружение вложенного сеанса, которое оно переопределяет, было удалено |302| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Переопределяет лимит токенов по умолчанию для чтения файлов. Полезно, когда нужно прочитать большие файлы целиком |

303| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Установите на `1`, чтобы принудительно отобразить зачёркивание для `~~text~~` в ответах Claude, когда ваш терминал это поддерживает, но не автоопределён, например, через SSH без пересылки `TERM_PROGRAM`. Без этого необнаруженные терминалы показывают буквальные маркеры `~~` вместо отображения текста как зачёркнутого. Требует Claude Code версии 2.1.186 или позже |303| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Установите `1`, чтобы принудительно включить сохранение транскрипта, истории промптов и регистрацию в `claude agents`, даже если этот `claude` был запущен изнутри другой сессии Claude Code. Используйте, когда унаследованное значение `CLAUDE_CODE_CHILD_SESSION`, например из сессии `screen` или из фонового лаунчера, впервые запущенного инструментом Bash в Claude Code, приводит к тому, что настоящая сессия верхнего уровня ошибочно классифицируется как вложенная. Начиная с v2.1.178 Claude Code автоматически распознаёт случай с tmux и игнорирует унаследованный маркер, поэтому для tmux эта переменная больше не нужна. Также учитывается в v2.1.169 и более ранних версиях; не действует в v2.1.170 и v2.1.171, где было удалено обнаружение вложенных сессий, которое она переопределяет |

304| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Установите на `1`, чтобы принудительно включить режим DEC private 2026 [синхронизированный вывод](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036), когда ваш терминал это поддерживает, но не автоопределён. Полезно для эмуляторов, таких как Emacs `eat`, которые реализуют BSU/ESU, но не отвечают на зонд возможностей. Не имеет эффекта под tmux. В отличие от `CLAUDE_CODE_NO_FLICKER`, который переключается на [полноэкранный рендер](/docs/ru/fullscreen), это не изменяет рендер |304| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Установите `1`, чтобы принудительно включить отображение зачёркнутого текста для `~~text~~` в ответах Claude, когда ваш терминал это поддерживает, но не определяется автоматически, например через SSH без проброса `TERM_PROGRAM`. Без этого необнаруженные терминалы показывают буквальные маркеры `~~` вместо того, чтобы отображать текст зачёркнутым. Требуется Claude Code v2.1.186 или новее |

305| `CLAUDE_CODE_FORK_SUBAGENT` | Контролирует [режим fork](/docs/ru/sub-agents#turn-fork-mode-on-or-off), который позволяет Claude порождать [разветвлённые подагенты](/docs/ru/sub-agents#fork-the-current-conversation) сам и включен по умолчанию только в интерактивных сеансах. Установите на `1`, чтобы включить его в `claude -p` и Agent SDK также, или `0`, чтобы отключить его в каждом виде сеанса. Вы можете запустить `/subtask` независимо от того, включён ли режим fork. Интерактивное значение по умолчанию требует Claude Code версии 2.1.232 или позже; на более ранних версиях установите переменную на `1`, чтобы включить режим fork |305| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Установите `1`, чтобы принудительно включить [синхронизированный вывод](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) приватного режима DEC 2026, когда ваш терминал его поддерживает, но не определяется автоматически. Полезно для эмуляторов, таких как Emacs `eat`, которые реализуют BSU/ESU, но не отвечают на проверку возможностей. Не действует в tmux. В отличие от `CLAUDE_CODE_NO_FLICKER`, которая переключает на [полноэкранный рендеринг](/docs/ru/fullscreen), эта переменная не меняет рендерер |

306| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Установите на `1`, чтобы выдавать блоки текста и мышления [подагента](/docs/ru/sub-agents) в выводе `claude -p --output-format stream-json`, то же поведение, что и флаг [`--forward-subagent-text`](/docs/ru/cli-reference#cli-flags). Используйте переменную, когда средство запуска вызывает `claude` и не может передать флаг сам. В отличие от флага, который выходит с ошибкой вне неинтерактивного режима с выводом stream-json, переменная игнорируется там, чтобы вложенные вызовы продолжали работать при установке процесса. Требует Claude Code версии 2.1.211 или позже |306| `CLAUDE_CODE_FORK_SUBAGENT` | Управляет [режимом форка](/docs/ru/sub-agents#turn-fork-mode-on-or-off), который позволяет Claude самостоятельно порождать [форкнутых субагентов](/docs/ru/sub-agents#fork-the-current-conversation) и по умолчанию включён только в интерактивных сессиях. Установите `1`, чтобы включить его также в `claude -p` и Agent SDK, или `0`, чтобы отключить его во всех видах сессий. Вы можете выполнять `/subtask` независимо от того, включён ли режим форка. Для значения по умолчанию в интерактивном режиме требуется Claude Code v2.1.232 или новее; в более ранних версиях установите переменную в `1`, чтобы включить режим форка |

307| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Установите на `1`, чтобы отправлять [заголовки подсказок шлюза](/docs/ru/llm-gateway-protocol#gateway-hint-headers), такие как `x-claude-code-request-class` и `x-claude-code-compaction`, на пользовательский прокси или сторонний поставщик, такой как Amazon Bedrock или Claude Platform on AWS. Установите на `0`, чтобы остановить их отправку при каждом подключении, включая прямое подключение к API Anthropic, где Claude Code отправляет их по умолчанию. Требует Claude Code версии 2.1.273 или позже |307| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Установите `1`, чтобы выводить текст и блоки размышлений [субагентов](/docs/ru/sub-agents) в выводе `claude -p --output-format stream-json` — то же поведение, что и у флага [`--forward-subagent-text`](/docs/ru/cli-reference#cli-flags). Используйте переменную, когда обвязка вызывает `claude` и не может сама передать флаг. В отличие от флага, который завершается с ошибкой вне неинтерактивного режима с выводом stream-json, переменная в таких случаях игнорируется, чтобы вложенные вызовы продолжали работать, когда она задана для всего процесса. Требуется Claude Code v2.1.211 или новее |

308| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Таймаут в миллисекундах для запроса [обнаружения модели шлюза](/docs/ru/llm-gateway-protocol#model-discovery), который включает `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (по умолчанию: `3000`). Повысьте это, когда ваш шлюз нуждается в большем времени, чем три секунды, чтобы ответить на `/v1/models` при запуске. Принимает только простые цифры; `0`, отрицательные значения и другие написания сохраняют значение по умолчанию. Требует Claude Code версии 2.1.269 или позже |308| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Установите `1`, чтобы отправлять [заголовки-подсказки шлюза](/docs/ru/llm-gateway-protocol#gateway-hint-headers), такие как `x-claude-code-request-class` и `x-claude-code-compaction`, через пользовательский прокси или стороннего провайдера, например Amazon Bedrock или Claude Platform on AWS. Установите `0`, чтобы прекратить их отправку при любых подключениях, включая прямое подключение к Anthropic API, где Claude Code отправляет их по умолчанию. Требуется Claude Code v2.1.273 или новее |

309| `CLAUDE_CODE_GIT_BASH_PATH` | Только Windows: путь к исполняемому файлу Git Bash (`bash.exe`). Используйте, когда Git Bash установлен, но не в вашем PATH. Если путь не существует или файл не назван `bash.exe`, `sh.exe`, `bash` или `sh`, Claude Code игнорирует переменную и автоопределяет Git Bash, как если бы она была не установлена, логируя предупреждение, видимое с `--debug`. До версии 2.1.219 Claude Code выходил при запуске, когда путь не существовал, и использовал любой существующий файл как оболочку без проверки, что это bash или sh. См. [Настройка Windows](/docs/ru/setup#set-up-on-windows) |309| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Таймаут в миллисекундах для запроса [обнаружения моделей шлюза](/docs/ru/llm-gateway-protocol#model-discovery), который включает `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (по умолчанию: `3000`). Увеличьте его, если вашему шлюзу требуется больше трёх секунд, чтобы ответить на `/v1/models` при запуске. Принимает только цифры; `0`, отрицательные значения и другие формы записи сохраняют значение по умолчанию. Требуется Claude Code v2.1.269 или новее |

310| `CLAUDE_CODE_GLOB_HIDDEN` | Установите на `false`, чтобы исключить скрытые файлы из результатов, когда Claude вызывает [инструмент Glob](/docs/ru/tools-reference#glob-tool-behavior). Включено по умолчанию. Не влияет на автодополнение файлов `@`, `ls`, Grep или Read |310| `CLAUDE_CODE_GIT_BASH_PATH` | Только для Windows: путь к исполняемому файлу Git Bash (`bash.exe`). Используйте, когда Git Bash установлен, но отсутствует в PATH. Если путь не существует или файл не называется `bash.exe`, `sh.exe`, `bash` или `sh`, Claude Code игнорирует переменную и автоматически определяет Git Bash так, как если бы она не была задана, записывая в лог предупреждение, видимое с `--debug`. До v2.1.219 Claude Code завершал работу при запуске, если путь не существовал, и использовал любой существующий файл в качестве оболочки, не проверяя, является ли он bash или sh. См. [Настройка в Windows](/docs/ru/setup#set-up-on-windows) |

311| `CLAUDE_CODE_GLOB_NO_IGNORE` | Установите на `false`, чтобы заставить [инструмент Glob](/docs/ru/tools-reference#glob-tool-behavior) соблюдать шаблоны `.gitignore`. По умолчанию Glob возвращает все совпадающие файлы, включая игнорируемые git. Не влияет на автодополнение файлов `@`, которое имеет свой собственный параметр [`respectGitignore`](/docs/ru/settings-reference#respectgitignore) |311| `CLAUDE_CODE_GLOB_HIDDEN` | Установите `false`, чтобы исключать dot-файлы из результатов, когда Claude вызывает [инструмент Glob](/docs/ru/tools-reference#glob-tool-behavior). По умолчанию они включаются. Не влияет на автодополнение файлов через `@`, `ls`, Grep или Read |

312| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Таймаут в секундах для обнаружения файлов инструмента Glob. По умолчанию 20 секунд на большинстве платформ и 60 секунд на WSL |312| `CLAUDE_CODE_GLOB_NO_IGNORE` | Установите `false`, чтобы [инструмент Glob](/docs/ru/tools-reference#glob-tool-behavior) учитывал шаблоны `.gitignore`. По умолчанию Glob возвращает все подходящие файлы, включая игнорируемые git. Не влияет на автодополнение файлов через `@`, у которого есть собственная [настройка `respectGitignore`](/docs/ru/settings-reference#respectgitignore) |

313| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Сколько минут фоновая работа может держать активную цель в ожидании перед тем, как Claude Code [попросит Claude проверить её](/docs/ru/goal#background-work-defers-evaluation). По умолчанию `30`. Установите `0`, чтобы отключить проверки. Дайте целые минуты в простых цифрах, максимум `10080`, что составляет одну неделю. Claude Code обрабатывает любое другое значение как не установленное и использует значение по умолчанию. Требует Claude Code версии 2.1.234 или позже |313| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Таймаут в секундах для обнаружения файлов инструментом Glob. По умолчанию 20 секунд на большинстве платформ и 60 секунд в WSL |

314| `CLAUDE_CODE_HIDE_CWD` | Установите на `1`, чтобы скрыть рабочий каталог в логотипе запуска. Полезно для скринширов или записей, где путь раскрывает имя пользователя вашей ОС |314| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Сколько минут фоновая работа может удерживать активную цель в ожидании, прежде чем Claude Code [попросит Claude проверить её](/docs/ru/goal#background-work-defers-evaluation). По умолчанию `30`. Установите `0`, чтобы отключить проверки. Указывайте целое число минут цифрами, не более `10080`, то есть одна неделя. Любое другое значение Claude Code считает незаданным и использует значение по умолчанию. Требуется Claude Code v2.1.234 или новее |

315| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Переопределить адрес хоста, используемый для подключения к расширению IDE. По умолчанию Claude Code автоопределяет правильный адрес, включая маршрутизацию WSL-to-Windows |315| `CLAUDE_CODE_HIDE_CWD` | Установите `1`, чтобы скрыть рабочий каталог в логотипе при запуске. Полезно при демонстрации экрана или записи, когда путь раскрывает имя пользователя ОС |

316| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Установите на `1`, чтобы пропустить автоустановку расширений IDE. Эквивалентно установке [`autoInstallIdeExtension`](/docs/ru/settings-reference#autoinstallideextension) на `false` |316| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Переопределяет адрес хоста, используемый для подключения к расширению IDE. По умолчанию Claude Code автоматически определяет правильный адрес, включая маршрутизацию из WSL в Windows |

317| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Установите на `1`, чтобы пропустить проверку записей файла блокировки IDE при подключении. Используйте, когда автоподключение не может найти вашу IDE, несмотря на её работу |317| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Установите `1`, чтобы пропустить автоматическую установку расширений IDE. Эквивалентно установке [`autoInstallIdeExtension`](/docs/ru/settings-reference#autoinstallideextension) в `false` |

318| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Сколько [подагентов](/docs/ru/sub-agents#concurrent-subagent-limit) может работать в одном сеансе перед тем, как инструмент Agent откажется порождать другого (по умолчанию: 20). Принимает положительное целое число в простых цифрах; всё остальное игнорируется, поэтому переменная может отрегулировать ограничение, но не может отключить его. Требует Claude Code версии 2.1.217 или позже |318| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Установите `1`, чтобы пропустить проверку записей lock-файла IDE при подключении. Используйте, когда автоподключение не находит вашу IDE, хотя она запущена |

319| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Переопределить размер окна контекста, который Claude Code предполагает для активной модели. Начиная с версии 2.1.193, как это применяется, зависит от того, как Claude Code разрешает ID модели; см. [Исправить окно для ID шлюза или пользовательской модели](/docs/ru/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Используйте это при маршрутизации к модели через `ANTHROPIC_BASE_URL`, чьё окно контекста не совпадает с встроенным размером для её имени |319| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Сколько [субагентов](/docs/ru/sub-agents#concurrent-subagent-limit) может выполняться в одной сессии, прежде чем инструмент Agent откажется порождать ещё одного (по умолчанию: 20). Принимает положительное целое число, записанное цифрами; всё остальное игнорируется, поэтому переменная может изменить лимит, но не может его отключить. Требуется Claude Code v2.1.217 или новее |

320| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Максимальная длина в символах каждого описания инструмента MCP и инструкций каждого MCP сервера, которые Claude Code отправляет модели (по умолчанию: 2048). Claude Code [усекает более длинный текст](/docs/ru/mcp#for-mcp-server-authors). Принимает положительное целое число в простых цифрах. Всё остальное игнорируется и применяется значение по умолчанию. Требует Claude Code версии 2.1.280 или позже |320| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Переопределяет размер контекстного окна, который Claude Code предполагает для активной модели. Начиная с v2.1.193 способ применения зависит от того, как Claude Code разрешает ID модели; см. [Исправление окна для шлюза или пользовательского ID модели](/docs/ru/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Используйте, когда маршрутизируете к модели через `ANTHROPIC_BASE_URL`, контекстное окно которой не совпадает со встроенным размером для её имени |

321| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Установить максимальное количество выходных токенов для большинства запросов. Значения по умолчанию и ограничения варьируются по модели; см. [максимальные выходные токены](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code по умолчанию использует 32000 для ID моделей, которые он не распознаёт, такие как имена, специфичные для шлюза, и понижает значения выше ограничения модели до ограничения. Увеличение этого значения уменьшает эффективное окно контекста, доступное перед срабатыванием [автокомпактирования](/docs/ru/costs#reduce-token-usage) |321| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Максимальная длина в символах каждого описания инструмента MCP и инструкций каждого MCP-сервера, которые Claude Code отправляет модели (по умолчанию: 2048). Claude Code [обрезает более длинный текст](/docs/ru/mcp#for-mcp-server-authors). Принимает положительное целое число, записанное цифрами. Всё остальное игнорируется, и применяется значение по умолчанию. Требуется Claude Code v2.1.280 или новее |

322| `CLAUDE_CODE_MAX_RETRIES` | Переопределить количество раз для повтора неудачных запросов API (по умолчанию: 10). Ограничено 15 начиная с версии 2.1.186; начиная с версии 2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` повышает значение по умолчанию и удаляет ограничение. Для неконтролируемых сеансов, которым нужно ждать через более длительные сбои, установите `CLAUDE_CODE_RETRY_WATCHDOG` вместо этого |322| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Задаёт максимальное количество выходных токенов для большинства запросов. Значения по умолчанию и верхние пределы зависят от модели; см. [максимальное количество выходных токенов](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code снижает значение, превышающее предел модели, до этого предела. Для ID модели, который Claude Code не может сопоставить с известной ему моделью, значение по умолчанию — 32000, а предел — 128000. Увеличение этого значения уменьшает эффективное контекстное окно, доступное до срабатывания [автосжатия](/docs/ru/costs#reduce-token-usage) |

323| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Удалено в версии 2.1.224 и теперь не работает. Ранее ограничивало общее количество [подагентов](/docs/ru/sub-agents), которых Claude мог порождать с инструментом Agent в одном сеансе (по умолчанию: 200); порождение сверх ограничения не выполнялось с `Subagent spawn limit reached`. [Ограничение одновременных подагентов](/docs/ru/sub-agents#concurrent-subagent-limit) и [ограничение глубины](/docs/ru/sub-agents#let-subagents-spawn-their-own-subagents) по-прежнему применяются |323| `CLAUDE_CODE_MAX_RETRIES` | Переопределяет количество повторных попыток для неудачных API-запросов (по умолчанию: 10). Начиная с v2.1.186 ограничено значением 15; начиная с v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` повышает значение по умолчанию и снимает ограничение. Для автономных сессий, которым нужно переждать более длительные сбои, вместо этого задайте `CLAUDE_CODE_RETRY_WATCHDOG` |

324| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Количество [слоёв подагентов](/docs/ru/sub-agents#let-subagents-spawn-their-own-subagents), разрешённых ниже основного разговора (по умолчанию: 3). При значении по умолчанию подагенты могут порождать своих собственных подагентов, и подагент на третьем слое не может порождать дальше; установите `1`, чтобы отключить вложение. В версиях 2.1.217 через 2.1.218 значение по умолчанию было 1, поэтому подагент не мог порождать своего собственного, если вы не повысили ограничение; версия 2.1.219 повысила значение по умолчанию до 3. Принимает положительное целое число в простых цифрах; всё остальное игнорируется, поэтому ограничение может быть отрегулировано, но не удалено. Требует Claude Code версии 2.1.217 или позже |324| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Удалена в v2.1.224 и теперь ни на что не влияет. Ранее ограничивала общее количество [субагентов](/docs/ru/sub-agents), которых Claude мог породить с помощью инструмента Agent в одной сессии (по умолчанию: 200); попытка породить больше завершалась ошибкой `Subagent spawn limit reached`. [Лимит одновременно работающих субагентов](/docs/ru/sub-agents#concurrent-subagent-limit) и [ограничение глубины](/docs/ru/sub-agents#let-subagents-spawn-their-own-subagents) по-прежнему действуют |

325| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Максимальное количество инструментов только для чтения и подагентов, которые могут выполняться параллельно (по умолчанию: 10). Более высокие значения увеличивают параллелизм, но потребляют больше ресурсов |325| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Количество [уровней субагентов](/docs/ru/sub-agents#let-subagents-spawn-their-own-subagents), разрешённых ниже основного диалога (по умолчанию: 3). При значении по умолчанию субагенты могут порождать собственных субагентов, а субагент на третьем уровне не может порождать дальше; установите `1`, чтобы отключить вложенность. В версиях с v2.1.217 по v2.1.218 значение по умолчанию было 1, поэтому субагент не мог порождать собственных, пока вы не повышали лимит; в v2.1.219 значение по умолчанию повышено до 3. Принимает положительное целое число, записанное цифрами; всё остальное игнорируется, поэтому лимит можно изменить, но не снять. Требуется Claude Code v2.1.217 или новее |

326| `CLAUDE_CODE_MAX_TURNS` | Ограничить количество агентивных ходов, когда явное ограничение не передано. Эквивалентно передаче [`--max-turns`](/docs/ru/cli-reference#cli-flags), которая имеет приоритет при установке обоих. Значение, которое не является положительным целым числом, отклоняется при запуске с ошибкой, а не обрабатывается как отсутствие ограничения |326| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Максимальное количество инструментов только для чтения и субагентов, которые могут выполняться параллельно (по умолчанию: 10). Более высокие значения увеличивают параллелизм, но потребляют больше ресурсов |

327| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Ограничение на общее количество вызовов [WebSearch](/docs/ru/tools-reference#websearch-tool-behavior), которые один сеанс может сделать (по умолчанию: 200). Когда Claude достигает ограничения, дальнейшие вызовы WebSearch возвращают уведомление, говорящее ему продолжить с информацией, которую он уже собрал. Принимает положительное целое число без верхнего ограничения. Всё остальное игнорируется и применяется значение по умолчанию, поэтому ограничение может быть повышено, но не отключено. Требует Claude Code версии 2.1.212 или позже |327| `CLAUDE_CODE_MAX_TURNS` | Ограничивает количество агентных ходов, когда явный лимит не передан. Эквивалентно передаче [`--max-turns`](/docs/ru/cli-reference#cli-flags), который имеет приоритет, если заданы оба. Значение, не являющееся положительным целым числом, отклоняется при запуске с ошибкой, а не трактуется как отсутствие ограничения |

328| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Установите на `1`, чтобы порождать серверы stdio MCP с только безопасной базовой окружением плюс настроенная окружение сервера, вместо наследования окружения вашей оболочки |328| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Ограничение общего количества вызовов [WebSearch](/docs/ru/tools-reference#websearch-tool-behavior), которые может совершить одна сессия (по умолчанию: 200). Когда Claude достигает ограничения, дальнейшие вызовы WebSearch возвращают уведомление с указанием продолжить работу с уже собранной информацией. Принимает положительное целое число без верхней границы. Всё остальное игнорируется, и применяется значение по умолчанию, поэтому ограничение можно повысить, но не отключить. Требуется Claude Code v2.1.212 или новее |

329| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Прошедшее время в миллисекундах перед тем, как всё ещё работающий вызов инструмента MCP [переместится в фоновую задачу](/docs/ru/mcp#automatic-backgrounding-of-long-tool-calls) (по умолчанию: 120000 или 2 минуты). Установите на `0`, чтобы отключить автоматическое фоновое выполнение. Требует Claude Code версии 2.1.212 или позже |329| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Установите `1`, чтобы запускать stdio MCP-серверы только с безопасным базовым окружением плюс настроенным для сервера `env` вместо наследования окружения вашей оболочки |

330| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Как долго в миллисекундах первый ход [неинтерактивного](/docs/ru/headless) сеанса ждёт серверов MCP, которые всё ещё подключаются, вместо [ожидания первого хода](/docs/ru/agent-sdk/mcp#connection-timing) по умолчанию. При установке ожидание охватывает каждый ожидающий сервер. Установите на `0`, чтобы пропустить ожидание. Сервер [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) сохраняет своё собственное ожидание `MCP_TIMEOUT` независимо от значения. Требует Claude Code версии 2.1.274 или позже |330| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Время в миллисекундах, по истечении которого всё ещё выполняющийся вызов инструмента MCP [переводится в фоновую задачу](/docs/ru/mcp#automatic-backgrounding-of-long-tool-calls) (по умолчанию: 120000, или 2 минуты). Установите `0`, чтобы отключить автоматический перевод в фон. Требуется Claude Code v2.1.212 или новее |

331| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Таймаут простоя в миллисекундах для вызовов инструментов MCP. Когда сервер stdio, HTTP, SSE, WebSocket или [соединитель claude.ai](/docs/ru/mcp#use-mcp-servers-from-claude-ai) MCP не отправляет ответ и уведомление о прогрессе в течение этого времени, вызов инструмента прерывается с ошибкой вместо ожидания общего `MCP_TOOL_TIMEOUT`. Переопределяет значения по умолчанию для каждого транспорта 300000 (5 минут) для сетевых серверов и 1800000 (30 минут) для серверов stdio. Установите на `0`, чтобы отключить проверку простоя. Значения ниже 1000 повышаются до одной секунды, и значение ограничено эффективным `MCP_TOOL_TIMEOUT`. Сервер для каждого сервера `timeout` в `.mcp.json` по крайней мере 1000 повышает окно простоя этого сервера по крайней мере до значения `timeout`. Не применяется к серверам IDE или внутрипроцессным серверам SDK. Требует Claude Code версии 2.1.187 или позже. До версии 2.1.203 серверы stdio были освобождены от таймаута простоя |331| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Сколько миллисекунд первый ход [неинтерактивной](/docs/ru/headless) сессии ожидает MCP-серверы, которые ещё подключаются, вместо [ожидания первого хода](/docs/ru/agent-sdk/mcp#connection-timing) по умолчанию. Если переменная задана, ожидание распространяется на все ожидающие серверы. Установите `0`, чтобы пропустить ожидание. Сервер [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) сохраняет собственное ожидание `MCP_TIMEOUT` независимо от значения. Требуется Claude Code v2.1.274 или новее |

332| `CLAUDE_CODE_MESSAGING_SOCKET` | Установлено Claude Code, не вами: в сеансах, которые привязывают [сокет входящих сообщений](/docs/ru/cross-session-messaging#the-sessions-inbox-socket), Claude Code экспортирует путь этого сокета к hooks и командам Bash, когда привязывает сокет. В сеансе, который начинается с включённого обмена сообщениями, Claude Code привязывает сокет перед запуском любого hook. Другие сеансы на машине доставляют сообщения на этот путь. Каждый сеанс экспортирует свой собственный сокет, а не унаследованный от родителя, и сообщения, поступающие на него, проходят через [входящие элементы управления](/docs/ru/cross-session-messaging#control-inbound-messages) сеанса. Блоки параметров `env` не могут его установить. Требует Claude Code версии 2.1.224 или позже |332| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Таймаут простоя в миллисекундах для вызовов инструментов MCP. Когда MCP-сервер stdio, HTTP, SSE, WebSocket или [коннектор claude.ai](/docs/ru/mcp#use-mcp-servers-from-claude-ai) не отправляет ни ответа, ни уведомления о прогрессе в течение этого времени, вызов инструмента прерывается с ошибкой, не дожидаясь общего `MCP_TOOL_TIMEOUT`. Переопределяет значения по умолчанию для каждого транспорта: 300000 (5 минут) для сетевых серверов и 1800000 (30 минут) для stdio-серверов. Установите `0`, чтобы отключить проверку простоя. Значения меньше 1000 повышаются до одной секунды, а значение ограничено действующим `MCP_TOOL_TIMEOUT`. Заданный для сервера `timeout` в `.mcp.json` не менее 1000 повышает окно простоя этого сервера как минимум до значения `timeout`. Не применяется к серверам IDE и внутрипроцессным серверам SDK. Требуется Claude Code v2.1.187 или новее. До v2.1.203 на stdio-серверы таймаут простоя не распространялся |

333| `CLAUDE_CODE_MESSAGING_TOKEN` | Установлено Claude Code, не вами: в сеансах, которые привязывают [сокет входящих сообщений](/docs/ru/cross-session-messaging#the-sessions-inbox-socket), Claude Code экспортирует этот токен для каждого сеанса к hooks и командам Bash рядом с `CLAUDE_CODE_MESSAGING_SOCKET`. Скрипт, публикующий на сокет, может отправить `{"type":"auth","token":"<token>"}` как первую строку, чтобы доказать, что он принадлежит сеансу. На собственном Windows Claude Code требует эту строку и закрывает любое подключение, которое не открывается с действительной. [Правила собственного дочернего элемента](/docs/ru/cross-session-messaging#the-sessions-inbox-socket) говорят, когда Claude Code консультирует токен. Каждый сеанс экспортирует свой собственный токен, никогда не унаследованный от родительского сеанса. Блоки параметров `env` не могут его установить. Требует Claude Code версии 2.1.228 или позже |333| `CLAUDE_CODE_MESSAGING_SOCKET` | Задаётся Claude Code, а не вами: в сессиях, которые привязывают [сокет входящих сообщений](/docs/ru/cross-session-messaging#the-sessions-inbox-socket), Claude Code экспортирует путь к этому сокету в хуки и команды Bash при привязке сокета. В сессии, которая запускается с включённым обменом сообщениями, Claude Code привязывает сокет до запуска любого хука. Другие сессии на машине доставляют сообщения по этому пути. Каждая сессия экспортирует собственный сокет, а не унаследованный от родительской, и поступающие на него сообщения проходят через [средства контроля входящих сообщений](/docs/ru/cross-session-messaging#control-inbound-messages) сессии. Блоки `env` в настройках не могут её задать. Требуется Claude Code v2.1.224 или новее |

334| `CLAUDE_CODE_NATIVE_CURSOR` | Установите на `1`, чтобы показать собственный курсор терминала в позиции каретки ввода вместо нарисованного блока. Курсор соблюдает параметры мигания, формы и фокуса терминала |334| `CLAUDE_CODE_MESSAGING_TOKEN` | Задаётся Claude Code, а не вами: в сессиях, которые привязывают [сокет входящих сообщений](/docs/ru/cross-session-messaging#the-sessions-inbox-socket), Claude Code экспортирует этот токен сессии в хуки и команды Bash вместе с `CLAUDE_CODE_MESSAGING_SOCKET`. Скрипт, отправляющий данные в сокет, может отправить `{"type":"auth","token":"<token>"}` первой строкой, чтобы доказать свою принадлежность к сессии. В нативной Windows Claude Code требует эту строку и закрывает любое подключение, которое не начинается с действительной строки. [Правила для собственных дочерних процессов](/docs/ru/cross-session-messaging#the-sessions-inbox-socket) определяют, когда Claude Code проверяет токен. Каждая сессия экспортирует собственный токен и никогда не использует унаследованный от родительской сессии. Блоки `env` в настройках не могут его задать. Требуется Claude Code v2.1.228 или новее |

335| `CLAUDE_CODE_NEW_INIT` | Установите на `1`, чтобы заставить `/init` запустить интерактивный поток настройки. Поток спрашивает, какие файлы создавать, включая CLAUDE.md, skills и hooks, перед исследованием кодовой базы и их написанием. Без этой переменной `/init` создаёт CLAUDE.md автоматически без запроса |335| `CLAUDE_CODE_NATIVE_CURSOR` | Установите `1`, чтобы показывать собственный курсор терминала в позиции ввода вместо отрисованного блока. Курсор учитывает настройки мигания, формы и фокуса терминала |

336| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Установите на `1`, чтобы писать вывод терминала через второй неблокирующий дескриптор файла, поэтому терминал, который перестаёт читать, такой как приостановленная панель управления tmux или зависшее SSH подключение, не может заморозить Claude Code в середине сеанса. Применяется на macOS, Linux и WSL, когда stdout — это терминал. Требует Claude Code версии 2.1.261 или позже |336| `CLAUDE_CODE_NEW_INIT` | Установите `1`, чтобы `/init` запускал интерактивный процесс настройки. Он спрашивает, какие файлы создать, включая CLAUDE.md, скиллы и хуки, прежде чем исследовать кодовую базу и записывать их. Без этой переменной `/init` автоматически создаёт CLAUDE.md без вопросов |

337| `CLAUDE_CODE_NO_FLICKER` | Установите на `1`, чтобы включить [полноэкранный рендер](/docs/ru/fullscreen), исследовательский предпросмотр, который уменьшает мерцание и сохраняет память плоской в длинных разговорах. Переопределяет параметр [`tui`](/docs/ru/settings-reference#tui); вы также можете переключаться с помощью `/tui fullscreen` |337| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Установите `1`, чтобы записывать вывод в терминал через второй неблокирующий файловый дескриптор, чтобы терминал, который перестаёт читать, например приостановленная панель tmux в режиме control mode или зависшее SSH-подключение, не мог заморозить Claude Code посреди сессии. Применяется в macOS, Linux и WSL, когда stdout является терминалом. Требуется Claude Code v2.1.261 или новее |

338| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Токен обновления OAuth для аутентификации Claude.ai. При установке `claude auth login` обменивает этот токен напрямую вместо открытия браузера. Требует `CLAUDE_CODE_OAUTH_SCOPES`. Полезно для предоставления аутентификации в автоматизированных окружениях |338| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Ограничивает, сколько раз Claude Code повторно отправляет [непотоковый запрос](/docs/ru/errors#streaming-response-ended-before-any-complete-data-was-received), завершившийся по таймауту. При `0` запрос завершается ошибкой при первом же таймауте. По умолчанию не задана, поэтому эти повторные отправки ограничивает `CLAUDE_CODE_MAX_RETRIES`. Сведения о таймауте см. в разделе [Настройка поведения повторных попыток](/docs/ru/errors#tune-retry-behavior). Требуется Claude Code v2.1.285 или новее |

339| `CLAUDE_CODE_OAUTH_SCOPES` | Разделённые пробелом области OAuth, с которыми был выдан токен обновления, такие как `"user:profile user:inference user:sessions:claude_code"`. Требуется при установке `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` |339| `CLAUDE_CODE_NO_FLICKER` | Установите `1`, чтобы включить [полноэкранный рендеринг](/docs/ru/fullscreen) — research preview, который уменьшает мерцание и сохраняет стабильное потребление памяти в длинных диалогах. Переопределяет настройку [`tui`](/docs/ru/settings-reference#tui); также можно переключиться с помощью `/tui fullscreen` |

340| `CLAUDE_CODE_OAUTH_TOKEN` | Токен доступа OAuth для аутентификации claude.ai. Альтернатива `/login` для SDK и автоматизированных окружений. Имеет приоритет над учётными данными, хранящимися в цепочке ключей. Создайте один с помощью [`claude setup-token`](/docs/ru/authentication#generate-a-long-lived-token). Если вы не запустите [`/login`](/docs/ru/authentication#authentication-precedence), Claude Code использует установленный вами токен для всего сеанса. Чтобы заменить истёкший токен, создайте новый и перезагрузитесь |340| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Refresh-токен OAuth для аутентификации Claude.ai. Если задан, `claude auth login` обменивает этот токен напрямую вместо открытия браузера. Требует `CLAUDE_CODE_OAUTH_SCOPES`. Полезно для подготовки аутентификации в автоматизированных средах |

341| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Удалено в версии 2.1.160 и теперь не работает. Ранее закреплял [быстрый режим](/docs/ru/fast-mode) на Claude Opus 4.6 вместо текущего значения по умолчанию. Opus 4.6 больше не поддерживает быстрый режим |341| `CLAUDE_CODE_OAUTH_SCOPES` | Разделённые пробелами OAuth scope, с которыми был выдан refresh-токен, например `"user:profile user:inference user:sessions:claude_code"`. Обязательна, если задана `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` |

342| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Максимальная длина атрибутов OpenTelemetry, несущих содержимое (ответы модели, содержимое инструмента, системные подсказки, необработанные тела API), маркер усечения включён, в единицах кода UTF-16 (по умолчанию: 61440, т.е. 60 КБ). Повысьте это только, если ваш бэкэнд телеметрии принимает значения атрибутов больше 64 КБ, или понизьте, чтобы сократить объём телеметрии. Требует Claude Code версии 2.1.214 или позже. См. [Мониторинг](/docs/ru/monitoring-usage) |342| `CLAUDE_CODE_OAUTH_TOKEN` | Токен доступа OAuth для аутентификации claude.ai. Альтернатива `/login` для SDK и автоматизированных сред. Имеет приоритет над учётными данными, хранящимися в связке ключей. Сгенерируйте его с помощью [`claude setup-token`](/docs/ru/authentication#generate-a-long-lived-token). Если вы не выполните [`/login`](/docs/ru/authentication#authentication-precedence), Claude Code использует заданный вами токен в течение всей сессии. Чтобы заменить истёкший токен, сгенерируйте новый и перезапустите |

343| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Установите на `1`, чтобы писать диагностические ошибки экспортёра OpenTelemetry в stderr. По умолчанию эти ошибки появляются только с `--debug`, поэтому неправильно настроенный экспортёр, такой как столкновение портов Prometheus, в противном случае молча не выполняется. Требует Claude Code версии 2.1.179 или позже. См. [Мониторинг](/docs/ru/monitoring-usage) |343| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Удалена в v2.1.160 и теперь ни на что не влияет. Ранее закрепляла [быстрый режим](/docs/ru/fast-mode) за Claude Opus 4.6 вместо текущей модели по умолчанию. Opus 4.6 больше не поддерживает быстрый режим |

344| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Таймаут в миллисекундах для сброса ожидающих пролётов OpenTelemetry (по умолчанию: 5000). См. [Мониторинг](/docs/ru/monitoring-usage) |344| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Максимальная длина атрибутов OpenTelemetry, содержащих контент (ответы модели, содержимое инструментов, системные промпты, необработанные тела API), включая маркер обрезки, в кодовых единицах UTF-16 (по умолчанию: 61440, т. е. 60 КБ). Увеличивайте её, только если ваш бэкенд телеметрии принимает значения атрибутов больше 64 КБ, или уменьшайте, чтобы сократить объём телеметрии. Требуется Claude Code v2.1.214 или новее. См. [Мониторинг](/docs/ru/monitoring-usage) |

345| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Интервал для обновления динамических заголовков OpenTelemetry в миллисекундах (по умолчанию: 1740000 / 29 минут). См. [Динамические заголовки](/docs/ru/monitoring-usage#dynamic-headers) |345| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Установите `1`, чтобы записывать диагностические ошибки экспортёра OpenTelemetry в stderr. По умолчанию эти ошибки появляются только с `--debug`, поэтому неправильно настроенный экспортёр, например при конфликте портов Prometheus, в противном случае отказывает молча. Требуется Claude Code v2.1.179 или новее. См. [Мониторинг](/docs/ru/monitoring-usage) |

346| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Таймаут в миллисекундах для завершения экспортёра OpenTelemetry при выключении (по умолчанию: 2000). Увеличьте, если метрики отбрасываются при выходе. См. [Мониторинг](/docs/ru/monitoring-usage) |346| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Таймаут в миллисекундах для сброса ожидающих спанов OpenTelemetry (по умолчанию: 5000). См. [Мониторинг](/docs/ru/monitoring-usage) |

347| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Установите на `1`, чтобы позволить Claude Code запустить команду обновления вашего менеджера пакетов в фоне, когда доступна новая версия. Применяется к установкам Homebrew и WinGet. Другие менеджеры пакетов продолжают показывать команду обновления без её запуска. См. [Автообновления](/docs/ru/setup#auto-updates) |347| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Интервал обновления динамических заголовков OpenTelemetry в миллисекундах (по умолчанию: 1740000 / 29 минут). См. [Динамические заголовки](/docs/ru/monitoring-usage#dynamic-headers) |

348| `CLAUDE_CODE_PERFORCE_MODE` | Установите на `1`, чтобы включить защиту записи, осведомлённую о Perforce. При установке Edit, Write и NotebookEdit не выполняются с подсказкой `p4 edit <file>`, если целевой файл не имеет бита владельца-записи, который Perforce очищает на синхронизированных файлах до `p4 edit` их открытия. Это предотвращает Claude Code от обхода отслеживания изменений Perforce |348| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Таймаут в миллисекундах для завершения работы экспортёра OpenTelemetry при выключении (по умолчанию: 2000). Увеличьте, если метрики теряются при выходе. См. [Мониторинг](/docs/ru/monitoring-usage) |

349| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Переопределить корневой каталог плагинов. Несмотря на имя, это устанавливает родительский каталог, а не сам кэш: рынки и кэш плагинов находятся в подкаталогах под этим путём. По умолчанию `~/.claude/plugins` |349| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Установите `1`, чтобы Claude Code мог запускать команду обновления вашего пакетного менеджера в фоне, когда доступна новая версия. Применяется к установкам через Homebrew и WinGet. Другие пакетные менеджеры по-прежнему показывают команду обновления, не запуская её. См. [Автоматические обновления](/docs/ru/setup#auto-updates) |

350| `CLAUDE_CODE_PLUGIN_DIRS` | Каталоги плагинов для загрузки для сеанса, каждый загруженный способом, которым флаг [`--plugin-dir`](/docs/ru/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) загружает его. Разделите несколько путей с `:` на Unix или `;` на Windows. Дайте каждый путь как абсолютный путь или начните его с `~`, потому что Claude Code пропускает относительные пути. Требует Claude Code версии 2.1.280 или позже. См. [Загрузить плагин для одного сеанса](/docs/ru/plugins/create#load-a-directory-or-archive-for-one-session) |350| `CLAUDE_CODE_PERFORCE_MODE` | Установите `1`, чтобы включить защиту от записи с учётом Perforce. Если переменная задана, Edit, Write и NotebookEdit завершаются ошибкой с подсказкой `p4 edit <file>`, если у целевого файла нет бита записи для владельца, который Perforce снимает с синхронизированных файлов, пока `p4 edit` не откроет их. Это не позволяет Claude Code обходить отслеживание изменений Perforce |

351| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Таймаут в миллисекундах для операций git при установке или обновлении плагинов (по умолчанию: 120000). Увеличьте это значение для больших репозиториев или медленных сетевых подключений. См. [Операции Git истекают](/docs/ru/plugins/troubleshooting#git-clone-timed-out-after-120s) |351| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Переопределяет корневой каталог плагинов. Несмотря на название, задаёт родительский каталог, а не сам кэш: маркетплейсы и кэш плагинов находятся в подкаталогах по этому пути. По умолчанию `~/.claude/plugins` |

352| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Установите на `1`, чтобы пропустить попытку повторного клонирования и продолжить использование существующего клона рынка, когда обновление рынка не может достичь или аутентифицироваться на удалённом источнике. Полезно в автономных или изолированных окружениях, где повторное клонирование не выполнилось бы так же. См. [Обновления рынка не выполняются в автономных окружениях](/docs/ru/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |352| `CLAUDE_CODE_PLUGIN_DIRS` | Каталоги плагинов для загрузки в сессии; каждый загружается так же, как его загружает флаг [`--plugin-dir`](/docs/ru/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Разделяйте несколько путей символом `:` в Unix или `;` в Windows. Указывайте каждый путь как абсолютный или начинайте его с `~`, поскольку Claude Code пропускает относительные пути. Требуется Claude Code v2.1.280 или новее. См. [Загрузка плагина для одной сессии](/docs/ru/plugins/create#load-a-directory-or-archive-for-one-session) |

353| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Установите на `1`, чтобы клонировать сокращённые источники GitHub `owner/repo` через HTTPS вместо SSH. Применяется к установке и обновлению плагина, а также к `/plugin marketplace add` и `update`. Полезно в средах CI, контейнерах или любом окружении без настроенного ключа SSH для `github.com` |353| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Таймаут в миллисекундах для клонирования или обновления маркетплейса плагинов (по умолчанию: 120000). Увеличьте это значение для больших репозиториев или медленных сетевых подключений. См. [Git clone timed out](/docs/ru/plugins/troubleshooting#git-clone-timed-out-after-120s) |

354| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Путь к одному или нескольким каталогам семян плагинов только для чтения, разделённым `:` на Unix или `;` на Windows. Используйте это, чтобы упаковать предварительно заполненный каталог плагинов в образ контейнера. Claude Code регистрирует рынки из этих каталогов при запуске и использует предварительно кэшированные плагины без повторного клонирования. См. [Предварительно заполнить плагины для контейнеров](/docs/ru/plugins/org#seed-containers-and-ci) |354| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Установите `1`, чтобы пропустить попытку повторного клонирования и продолжать использовать существующую копию маркетплейса, когда при обновлении маркетплейса не удаётся связаться с удалённым репозиторием или пройти на нём аутентификацию. Полезно в автономных или изолированных средах, где повторное клонирование завершилось бы ошибкой по той же причине. См. [Обновления маркетплейса не работают в автономных средах](/docs/ru/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

355| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Установите на `1`, чтобы остановить Claude Code от передачи `-ExecutionPolicy Bypass` при порождении PowerShell для вызовов инструментов, hooks и команд строки состояния, и вместо этого соблюдать эффективную политику выполнения машины. По умолчанию Claude Code обходит политику выполнения в области процесса, поэтому скрипты `.ps1` и импорты модулей работают на установках Windows с ограничением по умолчанию. Обход области процесса никогда не переопределяет Group Policy `MachinePolicy` или `UserPolicy` независимо от этого параметра |355| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Установите `1`, чтобы клонировать источники в сокращённой записи GitHub `owner/repo` по HTTPS вместо SSH. Применяется к установке и обновлению плагинов, а также к `/plugin marketplace add` и `update`. Полезно в CI-раннерах, контейнерах или любой среде без настроенного SSH-ключа для `github.com` |

356| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Потолок в миллисекундах на ожидание простоя для фоновых подагентов и workflows после финального хода в [неинтерактивном режиме](/docs/ru/headless#background-tasks-at-exit) с флагом `-p`. Ожидание простоя начинается заново каждый раз, когда Claude берёт ход для обработки результата фона. По умолчанию: `600000` или 10 минут. Когда ожидание простоя достигает потолка, Claude Code перестаёт ждать оставшихся фоновых задач и выходит. Установите на `0`, чтобы ждать бесконечно. Этот потолок отделён от пятисекундного периода благодарности, который применяется к простым фоновым оболочкам. Требует Claude Code версии 2.1.182 или позже |356| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Путь к одному или нескольким каталогам предварительного заполнения плагинов, доступным только для чтения, разделённым символом `:` в Unix или `;` в Windows. Используйте, чтобы включить заранее заполненный каталог плагинов в образ контейнера. Claude Code регистрирует маркетплейсы из этих каталогов при запуске и использует предварительно кэшированные плагины без повторного клонирования. См. [Предварительное заполнение плагинов для контейнеров](/docs/ru/plugins/org#seed-containers-and-ci) |

357| `CLAUDE_CODE_PROCESS_WRAPPER` | Запустить процессы, которые Claude Code запускает из своего собственного двоичного файла, такие как фоновый сервис, который размещает сеансы [представления агента](/docs/ru/agent-view), через корпоративный средство запуска, заданное как префикс argv, такой как `/opt/corp/launcher`. Установите это в блоке `env` пользовательских или [управляемых параметров](/docs/ru/managed-settings), а не как экспорт оболочки, поэтому отделённый фоновый сервис его наследует; параметры проекта и локальные параметры не могут его установить. Эквивалентно параметру [`processWrapper`](/docs/ru/settings-reference#processwrapper), который требует Claude Code версии 2.1.210 или позже; эта переменная имеет приоритет при установке обоих. Расширение VS Code настраивает свой собственный средство запуска отдельно через параметр `claudeProcessWrapper`. Игнорируется на Windows. См. [Запустить Claude Code за корпоративным средством запуска](/docs/ru/corporate-launcher) для формата значения, что охватывает средство запуска и контракт, который должно удовлетворять средство запуска. Требует Claude Code версии 2.1.208 или позже |357| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Установите `1`, чтобы Claude Code не передавал `-ExecutionPolicy Bypass` при запуске PowerShell для вызовов инструментов, хуков и команд строки состояния, а вместо этого соблюдал действующую политику выполнения машины. По умолчанию Claude Code обходит политику выполнения на уровне процесса, чтобы скрипты `.ps1` и импорт модулей работали в установках Windows с политикой Restricted по умолчанию. Обход на уровне процесса никогда не переопределяет групповую политику `MachinePolicy` или `UserPolicy` независимо от этой настройки |

358| `CLAUDE_CODE_PROJECT_DIR_NAME` | Установите вместе с `CLAUDE_CONFIG_DIR`, чтобы выбрать имя каталога `projects/`, в котором Claude Code хранит стенограммы этого сеанса и автоматическую память, вместо одного, полученного из пути рабочего каталога. Например, запуск Claude Code с `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` хранит их под `/srv/tenant-a/projects/work/`. Claude Code игнорирует эту переменную, когда `CLAUDE_CONFIG_DIR` не установлен, и читает её только из окружения, которое вы запускаете `claude` из, никогда из блока параметров `env` [параметров файла](#in-settings-files). См. [Назовите каталог проекта сами](/docs/ru/sessions#name-the-project-directory-yourself). Требует Claude Code версии 2.1.234 или позже |358| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Верхний предел в миллисекундах для ожидания в простое фоновых субагентов и рабочих процессов после последнего хода в [неинтерактивном режиме](/docs/ru/headless#background-tasks-at-exit) с флагом `-p`. Отсчёт ожидания в простое начинается заново каждый раз, когда Claude выполняет ход для обработки фонового результата. По умолчанию: `600000`, или 10 минут. Когда ожидание в простое достигает предела, Claude Code перестаёт ждать оставшиеся фоновые задачи и завершает работу. Установите `0`, чтобы ждать бесконечно. Этот предел не связан с пятисекундным льготным периодом, который применяется к обычным фоновым оболочкам. Требуется Claude Code v2.1.182 или новее |

359| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Установите `5m` или `1h`, единственные значения, которые Claude Code принимает, чтобы выбрать [TTL кэша подсказок](/docs/ru/prompt-caching#cache-lifetime) для основного разговора: ваши интерактивные, `-p` и SDK ходы, плюс помощники, которые работают встроенно с ними. Имеет приоритет над параметром `promptCacheTtl` и над `ENABLE_PROMPT_CACHING_1H`, и `FORCE_PROMPT_CACHING_5M` переопределяет его. API выставляет счета за записи кэша на 1 час по более высокой ставке. Требует Claude Code версии 2.1.242 или позже |359| `CLAUDE_CODE_PROCESS_WRAPPER` | Запускает процессы, которые Claude Code стартует из собственного бинарного файла, например фоновую службу, в которой размещаются сессии [agent view](/docs/ru/agent-view), через корпоративный лаунчер, заданный как префикс argv, например `/opt/corp/launcher`. Задавайте её в блоке `env` пользовательских или [управляемых настроек](/docs/ru/managed-settings), а не через export в оболочке, чтобы отсоединённая фоновая служба её унаследовала; настройки проекта и локальные настройки не могут её задать. Эквивалентна [настройке `processWrapper`](/docs/ru/settings-reference#processwrapper), которая требует Claude Code v2.1.210 или новее; эта переменная имеет приоритет, если заданы обе. Расширение VS Code настраивает собственный лаунчер отдельно через свою настройку `claudeProcessWrapper`. Игнорируется в Windows. Формат значения, то, что охватывает лаунчер, и требования, которым он должен соответствовать, описаны в разделе [Запуск Claude Code через корпоративный лаунчер](/docs/ru/corporate-launcher). Требуется Claude Code v2.1.208 или новее |

360| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Установите на `1`, чтобы распространять контекст трассировки W3C, когда `ANTHROPIC_BASE_URL` указывает на пользовательский прокси. Распространение охватывает заголовок `traceparent` на запросах модели и HTTP MCP и переменную окружения `TRACEPARENT` для подпроцессов Bash, PowerShell и hook. По умолчанию распространение включено только при прямом подключении к API Anthropic. Добавлено в версии 2.1.152. См. [Трассировки (бета)](/docs/ru/monitoring-usage#traces-beta) |360| `CLAUDE_CODE_PROJECT_DIR_NAME` | Задавайте вместе с `CLAUDE_CONFIG_DIR`, чтобы выбрать имя каталога в `projects/`, в котором Claude Code хранит транскрипты и автоматическую память этой сессии, вместо имени, получаемого из пути рабочего каталога. Например, запуск Claude Code командой `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` сохраняет их в `/srv/tenant-a/projects/work/`. Claude Code игнорирует эту переменную, если `CLAUDE_CONFIG_DIR` не задана, и считывает её только из окружения, в котором вы запускаете `claude`, но никогда из [блока `env` файла настроек](#in-settings-files). См. [Самостоятельное задание имени каталога проекта](/docs/ru/sessions#name-the-project-directory-yourself). Требуется Claude Code v2.1.234 или новее |

361| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Установлено хост-платформами, которые встраивают Claude Code и управляют маршрутизацией поставщика модели от его имени. При установке Claude Code игнорирует переменные выбора поставщика, конечной точки и аутентификации, такие как `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` и `ANTHROPIC_API_KEY` в файлах параметров, поэтому пользовательские параметры не могут переопределить маршрутизацию хоста. Claude Code также игнорирует ключи выбора модели, такие как `model`, `fallbackModel` и `modelOverrides` в [управляемых параметрах](/docs/ru/managed-settings), какой бы управляемый источник их не доставлял, поэтому конфигурация модели хоста имеет приоритет над устаревшей закреплённой моделью. Claude Code также игнорирует переменные выбора модели, такие как `ANTHROPIC_MODEL` и семейство `ANTHROPIC_DEFAULT_*_MODEL` в управляемом блоке `env`; список разрешений [`availableModels`](/docs/ru/model-config#restrict-model-selection) в управляемых параметрах по-прежнему применяется, если только хост не предоставляет свой собственный. Claude Code также пропускает автоматический отказ от телеметрии, который он в противном случае применяет на сторонних поставщиках, таких как Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform и Microsoft Foundry, поэтому телеметрия следует стандартному отказу `DISABLE_TELEMETRY`. См. [Поведение по умолчанию по поставщику API](/docs/ru/data-usage#default-behaviors-by-api-provider) |361| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Установите `5m` или `1h` — единственные значения, которые принимает Claude Code, — чтобы выбрать [TTL кэша промптов](/docs/ru/prompt-caching#cache-lifetime) для основного диалога: ваших интерактивных ходов, ходов `-p` и SDK, а также вспомогательных процессов, выполняющихся вместе с ними. Имеет приоритет над настройкой `promptCacheTtl` и над `ENABLE_PROMPT_CACHING_1H`, а `FORCE_PROMPT_CACHING_5M` переопределяет её. API тарифицирует запись в кэш на 1 час по более высокой ставке. Требуется Claude Code v2.1.242 или новее |

362| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Установите на `1`, чтобы позволить прокси выполнять разрешение DNS вместо вызывающей стороны. Opt-in для окружений, где прокси должен обрабатывать разрешение имён хостов |362| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Установите `1`, чтобы распространять контекст трассировки W3C, когда `ANTHROPIC_BASE_URL` указывает на пользовательский прокси. Распространение охватывает заголовок `traceparent` в запросах к модели и HTTP MCP-запросах, а также переменную окружения `TRACEPARENT` для подпроцессов Bash, PowerShell и хуков. По умолчанию распространение включено только при прямом подключении к Anthropic API. Добавлено в v2.1.152. См. [Трассировки (бета)](/docs/ru/monitoring-usage#traces-beta) |

363| `CLAUDE_CODE_REMOTE` | Установлено автоматически на `true`, когда Claude Code работает как [облачный сеанс](/docs/ru/claude-code-on-the-web). Прочитайте это из hook или скрипта настройки, чтобы обнаружить, находитесь ли вы в облачном сеансе |363| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Задаётся хост-платформами, которые встраивают Claude Code и управляют маршрутизацией к провайдеру моделей от его имени. Если задана, Claude Code игнорирует переменные выбора провайдера, эндпоинта и аутентификации, такие как `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` и `ANTHROPIC_API_KEY`, в файлах настроек, поэтому пользовательские настройки не могут переопределить маршрутизацию хоста. Claude Code также игнорирует ключи выбора модели, такие как `model`, `fallbackModel` и `modelOverrides`, в [управляемых настройках](/docs/ru/managed-settings), из какого бы управляемого источника они ни поступали, поэтому конфигурация моделей хоста имеет приоритет над устаревшим закреплением модели в управляемых настройках. Claude Code также игнорирует переменные выбора модели, такие как `ANTHROPIC_MODEL` и семейство `ANTHROPIC_DEFAULT_*_MODEL`, в управляемом блоке `env`; список разрешённых моделей [`availableModels`](/docs/ru/model-config#restrict-model-selection) в управляемых настройках по-прежнему применяется, если хост не предоставляет собственный. Claude Code также пропускает автоматический отказ от телеметрии, который в противном случае применяется для сторонних провайдеров, таких как Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform и Microsoft Foundry, поэтому телеметрия подчиняется стандартному отказу через `DISABLE_TELEMETRY`. См. [Поведение по умолчанию в зависимости от API-провайдера](/docs/ru/data-usage#default-behaviors-by-api-provider) |

364| `CLAUDE_CODE_REMOTE_SESSION_ID` | Установлено автоматически в [облачных сеансах](/docs/ru/claude-code-on-the-web) на ID текущего сеанса. Прочитайте это, чтобы построить ссылку обратно на стенограмму сеанса. См. [Ссылка вывода обратно на сеанс](/docs/ru/cloud-environments#link-output-back-to-the-session) |364| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Установите `1`, чтобы разрешить прокси выполнять DNS-разрешение вместо вызывающей стороны. Включается явно для сред, где разрешение имён хостов должен выполнять прокси |

365| `CLAUDE_CODE_RESTRICTED` | Установите на `1`, чтобы запустить сеанс в ограниченном режиме, то же самое, что передача [`--restricted`](/docs/ru/cli-reference#cli-flags). Claude Code игнорирует эту переменную в блоке `env` файла параметров. Требует Claude Code версии 2.1.248 или позже |365| `CLAUDE_CODE_REMOTE` | Автоматически устанавливается в `true`, когда Claude Code работает как [облачная сессия](/docs/ru/claude-code-on-the-web). Считывайте её из хука или скрипта настройки, чтобы определить, находитесь ли вы в облачной сессии |

366| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Установите `1`, чтобы автоматически возобновлять работу, если предыдущая сессия завершилась посреди хода. Используется в режиме SDK, чтобы модель продолжала работу без повторной отправки промпта из SDK. Чтобы отключить, удалите переменную или установите её в `0`. Для панели чата VS Code см. [Продолжение диалогов после перезагрузки](/docs/ru/vs-code#continue-conversations-after-a-reload) |366| `CLAUDE_CODE_REMOTE_SESSION_ID` | Автоматически устанавливается в [облачных сессиях](/docs/ru/claude-code-on-the-web) в ID текущей сессии. Считывайте её, чтобы сформировать ссылку на транскрипт сессии. См. [Ссылка из вывода на сессию](/docs/ru/cloud-environments#link-output-back-to-the-session) |

367| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Максимальный возраст в миллисекундах последнего сообщения стенограммы для сеанса, который закончился в середине хода, чтобы автоматически продолжить при возобновлении. Когда последнее сообщение старше этого ограничения, Claude Code пропускает как автоматическое возобновление `CLAUDE_CODE_RESUME_INTERRUPTED_TURN`, так и введённое сообщение продолжения `CLAUDE_CODE_RESUME_PROMPT`, и сеанс начинается неактивным, чтобы вы продолжили явно. Отсутствие или `0` означает отсутствие ограничения, за исключением того, что ход, чей последний запрос не выполнился с ошибкой API, возобновляется только пока эта ошибка менее шести часов. Положительное значение ограничивает каждый ход, включая те; отрицательное или нечисловое значение применяет ограничение в один час. Скрипты порождения для долгоживущих агентов могут установить это, чтобы перезагрузка против старой стенограммы не повторно запускала устаревшую подсказку. Claude Code устанавливает ограничение в один час сам, когда перезагружает сбойный сеанс [представления агента](/docs/ru/agent-view), который унаследовал свой разговор из интерактивного сеанса. Требует Claude Code версии 2.1.211 или позже |367| `CLAUDE_CODE_RESTRICTED` | Установите `1`, чтобы запустить сессию в ограниченном режиме — так же, как при передаче [`--restricted`](/docs/ru/cli-reference#cli-flags). Claude Code игнорирует эту переменную в блоке `env` файла настроек. Требуется Claude Code v2.1.248 или новее |

368| `CLAUDE_CODE_RESUME_PROMPT` | Переопределить сообщение продолжения, которое Claude Code отправляет Claude, когда `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` продолжает прерванный ход вместо повторной отправки его подсказки, или когда вы возобновляете [отложенный вызов инструмента](/docs/ru/hooks#defer-a-tool-call-for-later) с `-p`. По умолчанию `Continue from where you left off.`. Пустая строка использует значение по умолчанию |368| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Установите `1`, чтобы автоматически возобновлять работу, если предыдущая сессия завершилась посреди хода. Используется в режиме SDK, чтобы модель продолжала работу без необходимости повторно отправлять промпт из SDK. Чтобы отключить, удалите переменную или установите её в `0`. Для панели чата VS Code см. [Продолжение диалогов после перезагрузки](/docs/ru/vs-code#continue-conversations-after-a-reload) |

369| `CLAUDE_CODE_RETRY_WATCHDOG` | Установите на `1` для неконтролируемых сеансов, таких как оценочные средства, задачи CI или удалённые рабочие. Повторяет ошибки ёмкости `429` и `529` бесконечно вместо отказа после попыток `CLAUDE_CODE_MAX_RETRIES`. Claude Code не выполняется сразу, когда запрос стандартной скорости получает `429`, который сообщает об ограничении расходов или исчерпанных кредитах использования, даже один из [ограничения расходов шлюза](/docs/ru/errors#spend-limit-reached), который сбрасывается по расписанию. До версии 2.1.239 сторож повторял эти бесконечно. Для запросов быстрого режима см. [Обработка ограничений скорости](/docs/ru/fast-mode#handle-rate-limits). Сторож отступает до 5 минут между попытками или до сброса ограничения, когда ответ несёт время сброса ограничения скорости, поэтому сеанс, который попадает на ограничение использования, ждёт оставшегося окна. На версии 2.1.199 или позже он также повышает количество повторов по умолчанию для других переходных ошибок, таких как ошибки сервера, таймауты и отброшенные подключения, до 300, примерно три часа отступления, и удаляет ограничение 15 на `CLAUDE_CODE_MAX_RETRIES`, если вы явно установите эту переменную. Требует Claude Code версии 2.1.186 или позже |369| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Максимальный возраст в миллисекундах последнего сообщения транскрипта, при котором сессия, завершившаяся посреди хода, автоматически продолжается при возобновлении. Если последнее сообщение старше этой границы, Claude Code пропускает автоматическое возобновление `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` и его сообщение продолжения `CLAUDE_CODE_RESUME_PROMPT`, и сессия запускается в режиме простоя, чтобы вы продолжили явно. Если переменная не задана или равна `0`, граница отсутствует, за исключением того, что ход, последний запрос которого завершился ошибкой API, возобновляется, только пока этой ошибке меньше шести часов. Положительное значение ограничивает все ходы, включая такие; отрицательное или нечисловое значение применяет границу в один час. Скрипты запуска долгоживущих агентов могут задать её, чтобы перезапуск со старым транскриптом не выполнял повторно устаревший промпт. Claude Code сам устанавливает границу в один час, когда перезапускает аварийно завершившуюся сессию [agent view](/docs/ru/agent-view), унаследовавшую диалог от интерактивной сессии. Требуется Claude Code v2.1.211 или новее |

370| `CLAUDE_CODE_SAFE_MODE` | Установите на `1`, чтобы запустить в безопасном режиме: CLAUDE.md, skills, плагины, hooks, MCP серверы, пользовательские команды и агенты, стили вывода, workflows, пользовательские темы, пользовательские сочетания клавиш, команды строки состояния и предложения файлов, LSP серверы и автоматическая память не загружаются для устранения неполадок сломанной конфигурации. Политика управляемых параметров по-прежнему применяется, включая настроенные политикой hooks, строку состояния и команды предложения файлов; управляемые плагины, управляемые skills, управляемые CLAUDE.md и настроенные политикой MCP серверы не загружаются. Эквивалентно передаче [`--safe-mode`](/docs/ru/cli-reference#cli-flags). Непосредственно порождённые дочерние процессы наследуют переменную |370| `CLAUDE_CODE_RESUME_PROMPT` | Переопределяет сообщение продолжения, которое Claude Code отправляет Claude, когда `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` продолжает прерванный ход вместо повторной отправки его промпта, или когда вы возобновляете [отложенный вызов инструмента](/docs/ru/hooks#defer-a-tool-call-for-later) с `-p`. По умолчанию `Continue from where you left off.`. Пустая строка означает использование значения по умолчанию |

371| `CLAUDE_CODE_SCRIPT_CAPS` | JSON объект, ограничивающий, сколько раз конкретные скрипты могут быть вызваны за сеанс, когда установлен `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Ключи — это подстроки, совпадающие с текстом команды; значения — это ограничения количества вызовов. Например, `{"deploy.sh": 2}` позволяет `deploy.sh` быть вызванным максимум дважды. Совпадение основано на подстроке, поэтому трюки расширения оболочки, такие как `./scripts/deploy.sh $(evil)`, по-прежнему считаются против ограничения. Веерное расширение во время выполнения через `xargs` или `find -exec` не обнаруживается; это контроль защиты в глубину |371| `CLAUDE_CODE_RETRY_WATCHDOG` | Установите `1` для автономных сессий, таких как обвязки для оценки, задания CI или удалённые воркеры. Бесконечно повторяет попытки при ошибках нехватки мощностей `429` и `529`, вместо того чтобы завершаться ошибкой после `CLAUDE_CODE_MAX_RETRIES` попыток. Claude Code сразу завершается ошибкой, когда запрос со стандартной скоростью получает `429`, сообщающий о лимите расходов или исчерпанных кредитах использования, даже если это [ограничение расходов шлюза](/docs/ru/errors#spend-limit-reached), сбрасываемое по расписанию. До v2.1.239 watchdog повторял такие попытки бесконечно. Для запросов в быстром режиме см. [Обработка ограничений частоты запросов](/docs/ru/fast-mode#handle-rate-limits). Watchdog увеличивает интервал между попытками до 5 минут или до сброса лимита, если ответ содержит время сброса ограничения частоты запросов, поэтому сессия, достигшая лимита использования, пережидает оставшееся окно. В v2.1.199 и новее он также повышает количество повторных попыток по умолчанию для других временных ошибок, таких как ошибки сервера, таймауты и разорванные подключения, до 300, то есть примерно до трёх часов отсрочки, и снимает ограничение в 15 для `CLAUDE_CODE_MAX_RETRIES`, если вы задали эту переменную явно. Требуется Claude Code v2.1.186 или новее |

372| `CLAUDE_CODE_SCROLL_SPEED` | Установить множитель скорости прокрутки колеса мыши в [полноэкранном рендере](/docs/ru/fullscreen#mouse-wheel-scrolling). Принимает любое положительное значение до 20, включая дробные значения ниже 1, такие как `0.5`, чтобы замедлить ускоренную прокрутку трекпада и колеса в терминалах, которые уже усиливают события колеса. Установите на `3`, чтобы совпадать с `vim`, если ваш терминал отправляет одно событие колеса за зубец без усиления. Игнорируется в интегрированном терминале JetBrains IDE, где Claude Code использует свою собственную обработку прокрутки |372| `CLAUDE_CODE_SAFE_MODE` | Установите `1`, чтобы запуститься в безопасном режиме: CLAUDE.md, скиллы, плагины, хуки, MCP-серверы, пользовательские команды и агенты, стили вывода, рабочие процессы, пользовательские темы, пользовательские сочетания клавиш, команды строки состояния и предложения файлов, LSP-серверы и автоматическая память не загружаются — для устранения неполадок в сломанной конфигурации. Политика управляемых настроек по-прежнему применяется, включая хуки, строку состояния и команды предложения файлов, настроенные политикой; управляемые плагины, управляемые скиллы, управляемый CLAUDE.md и MCP-серверы, настроенные политикой, — нет. Эквивалентно передаче [`--safe-mode`](/docs/ru/cli-reference#cli-flags). Напрямую порождённые дочерние процессы наследуют переменную |

373| `CLAUDE_CODE_SEND_FEEDBACK` | Установите на `0`, чтобы отключить [отзывы, составленные Claude](/docs/ru/tools-reference#sendfeedback-tool-behavior) для сеанса. Установите на `1`, чтобы включить это там, где ваша учётная запись уже имеет доступ; переменная не может предоставить доступ сама, и другие переключатели, которые отключают отзывы, такие как `DISABLE_FEEDBACK_COMMAND` и значение `off` параметра [`feedbackDrafts`](/docs/ru/settings-reference#feedbackdrafts), по-прежнему применяются |373| `CLAUDE_CODE_SCRIPT_CAPS` | JSON-объект, ограничивающий, сколько раз определённые скрипты могут вызываться за сессию, когда задана `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Ключи — подстроки, сопоставляемые с текстом команды; значения — целочисленные лимиты вызовов. Например, `{"deploy.sh": 2}` позволяет вызвать `deploy.sh` не более двух раз. Сопоставление выполняется по подстроке, поэтому уловки с раскрытием в оболочке, такие как `./scripts/deploy.sh $(evil)`, всё равно учитываются в лимите. Разветвление во время выполнения через `xargs` или `find -exec` не обнаруживается; это мера эшелонированной защиты |

374| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Переопределить бюджет времени в миллисекундах для [SessionEnd](/docs/ru/hooks#sessionend) hooks. Значение также является таймаутом для каждого hook, который не устанавливает свой собственный `timeout`. Применяется к выходу сеанса, `/clear` и переключению сеансов через интерактивный `/resume`. По умолчанию бюджет составляет 1.5 секунды, автоматически повышается до наивысшего настроенного `timeout` для каждого hook в файлах параметров, до 60 секунд. Таймауты на hooks, предоставленные плагинами, не повышают бюджет |374| `CLAUDE_CODE_SCROLL_SPEED` | Задаёт множитель прокрутки колёсиком мыши в [полноэкранном рендеринге](/docs/ru/fullscreen#mouse-wheel-scrolling). Принимает любое положительное значение до 20, включая дробные значения меньше 1, например `0.5`, чтобы замедлить ускоренную прокрутку трекпадом и колёсиком в терминалах, которые уже усиливают события колёсика. Установите `3`, чтобы соответствовать `vim`, если ваш терминал отправляет одно событие колёсика на щелчок без усиления. Игнорируется в терминале JetBrains IDE, где Claude Code использует собственную обработку прокрутки |

375| `CLAUDE_CODE_SESSION_ID` | Установлено автоматически на текущий ID сеанса в подпроцессах инструментов Bash и PowerShell, подпроцессах [команды hook](/docs/ru/hooks) и подпроцессах [MCP сервера](/docs/ru/mcp) stdio. Для Bash, PowerShell и hooks это совпадает с полем `session_id` в входных данных JSON hook и обновляется на `/clear`. Подпроцесс MCP сервера сохраняет ID, с которым он был порождён. На `--resume <session-id>` он получает возобновленный ID, совпадающий с hooks и Bash. На `--continue` или `--resume` без явного ID он может получить начальный ID запуска вместо этого. Используйте для корреляции скриптов и внешних инструментов с сеансом Claude Code, который их запустил |375| `CLAUDE_CODE_SEND_FEEDBACK` | Установите `0`, чтобы отключить [отзывы, составляемые Claude](/docs/ru/tools-reference#sendfeedback-tool-behavior), для сессии. Установите `1`, чтобы включить их там, где у вашей учётной записи уже есть доступ; сама переменная не может предоставить доступ, а другие переключатели, отключающие отзывы, такие как `DISABLE_FEEDBACK_COMMAND` и значение `off` настройки [`feedbackDrafts`](/docs/ru/settings-reference#feedbackdrafts), по-прежнему действуют |

376| `CLAUDE_CODE_SHELL` | Установить оболочку, которую Claude Code использует для запуска команд инструмента Bash. Принимает путь к двоичному файлу `bash` или `zsh`, например `/opt/homebrew/bin/bash`. Другие оболочки, такие как `fish`, не поддерживаются. Если значение не является рабочим путём `bash` или `zsh`, Claude Code игнорирует его и возвращается к автоопределению. Автоопределение использует ваш `$SHELL`, когда он указывает на `bash` или `zsh`, в противном случае он выбирает первый рабочий `zsh`, затем `bash`, найденный на вашем `PATH` и стандартных местах установки |376| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Переопределяет бюджет времени в миллисекундах для хуков [SessionEnd](/docs/ru/hooks#sessionend). Это значение также является таймаутом для каждого хука, не задающего собственный `timeout`. Применяется при выходе из сессии, `/clear` и переключении сессий через интерактивный `/resume`. По умолчанию бюджет составляет 1,5 секунды и автоматически повышается до наибольшего `timeout` отдельного хука, настроенного в файлах настроек, но не более 60 секунд. Таймауты хуков, предоставляемых плагинами, не повышают бюджет |

377| `CLAUDE_CODE_SHELL_PREFIX` | Префикс команды, который оборачивает команды оболочки, которые Claude Code порождает: вызовы инструмента Bash, команды [hook](/docs/ru/hooks), команды [строки состояния](/docs/ru/statusline) и команды запуска [MCP сервера](/docs/ru/mcp) stdio. Hooks PowerShell и hooks в форме exec работают без префикса. Полезно для логирования или аудита. Установка пути к голому исполняемому файлу, такому как `/path/to/logger.sh`, запускает каждую команду как `/path/to/logger.sh '<command>'`. Обёртка получает командную строку как один аргумент, заключённый в кавычки оболочки, в `$1`, поэтому обёртка должна повторно оценить `$1` с оболочкой, например `exec bash -c "$1"`. Обработка `$1` как пути к голому исполняемому файлу нарушает серверы stdio MCP, которые передают аргументы, такие как `npx -y <package>`. Для вызовов инструмента Bash `$1` содержит полный вызов оболочки, который Claude Code собирает, включая настройку окружения, а не только команду, которую запустил Claude |377| `CLAUDE_CODE_SESSION_ID` | Автоматически устанавливается в ID текущей сессии в подпроцессах инструментов Bash и PowerShell, подпроцессах [команд хуков](/docs/ru/hooks) и подпроцессах stdio [MCP-серверов](/docs/ru/mcp). Для Bash, PowerShell и хуков совпадает с полем `session_id` во входных данных JSON хука и обновляется при `/clear`. Подпроцесс MCP-сервера сохраняет ID, с которым был запущен. При `--resume <session-id>` он получает ID возобновлённой сессии, как хуки и Bash. При `--continue` или `--resume` без явного ID он может вместо этого получить исходный ID запуска. Используйте для сопоставления скриптов и внешних инструментов с сессией Claude Code, которая их запустила |

378| `CLAUDE_CODE_SIMPLE` | Установите на `1`, чтобы запустить с минимальной системной подсказкой и только инструментами Bash, чтения файлов и редактирования файлов. Инструменты MCP из `--mcp-config` по-прежнему доступны. Отключает автоопределение hooks, skills, пользовательских команд, подагентов, плагинов, MCP серверов, автоматической памяти и CLAUDE.md. Skills в каталоге, который вы передаёте с помощью `--add-dir`, по-прежнему загружаются. Токены OAuth и учётные данные цепочки ключей не читаются, поэтому аутентификация Anthropic должна поступать из `ANTHROPIC_API_KEY` или `apiKeyHelper` в `--settings`. Эквивалентно передаче [`--bare`](/docs/ru/headless#start-faster-with-bare-mode) |378| `CLAUDE_CODE_SHELL` | Задаёт оболочку, которую Claude Code использует для выполнения команд инструмента Bash. Принимает путь к бинарному файлу `bash` или `zsh`, например `/opt/homebrew/bin/bash`. Другие оболочки, такие как `fish`, не поддерживаются. Если значение не является рабочим путём к `bash` или `zsh`, Claude Code игнорирует его и использует автоматическое определение как резервный вариант. Автоматическое определение использует ваш `$SHELL`, если он указывает на `bash` или `zsh`; в противном случае выбирается первый рабочий `zsh`, затем `bash`, найденный в вашем `PATH` и стандартных местах установки |

379| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Установите на `1`, чтобы использовать более короткую системную подсказку и сокращённые описания инструментов на любой модели. Установите на `0`, `false`, `no` или `off`, чтобы отказаться, даже если эксперимент или конфигурация сервера в противном случае включили бы это. Полный набор инструментов, hooks, MCP серверы и обнаружение CLAUDE.md остаются включёнными |379| `CLAUDE_CODE_SHELL_PREFIX` | Префикс команды, оборачивающий shell-команды, которые запускает Claude Code: вызовы инструмента Bash, команды [хуков](/docs/ru/hooks), команды [строки состояния](/docs/ru/statusline) и команды запуска stdio [MCP-серверов](/docs/ru/mcp). Хуки PowerShell и хуки в exec-форме запускаются без префикса. Полезно для логирования или аудита. Если указать просто путь к исполняемому файлу, например `/path/to/logger.sh`, каждая команда выполняется как `/path/to/logger.sh '<command>'`. Обёртка получает командную строку как единственный аргумент в кавычках оболочки в `$1`, поэтому обёртка должна повторно вычислить `$1` с помощью оболочки, например `exec bash -c "$1"`. Если трактовать `$1` просто как путь к исполняемому файлу, это нарушит работу stdio MCP-серверов, которые передают аргументы, например `npx -y <package>`. Для вызовов инструмента Bash `$1` содержит полный вызов оболочки, который собирает Claude Code, включая настройку окружения, а не только команду, которую выполнил Claude |

380| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Пропустить аутентификацию на стороне клиента для [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), для шлюзов, которые подписывают запросы сами |380| `CLAUDE_CODE_SIMPLE` | Установите `1`, чтобы запускаться с минимальным системным промптом и только с инструментами Bash, чтения файлов и редактирования файлов. Инструменты MCP из `--mcp-config` по-прежнему доступны. Отключает автоматическое обнаружение хуков, скиллов, пользовательских команд, субагентов, установленных плагинов, MCP-серверов, автоматической памяти и CLAUDE.md. Скиллы в каталоге, переданном через `--add-dir`, по-прежнему загружаются. Токены OAuth и учётные данные из связки ключей не считываются, поэтому аутентификация Anthropic должна выполняться через `ANTHROPIC_API_KEY` или `apiKeyHelper` в `--settings`. Эквивалентно передаче [`--bare`](/docs/ru/headless#start-faster-with-bare-mode) |

381| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Установите на `1`, чтобы отключить кэш в процессе учётных данных, разрешённых из цепочки поставщика учётных данных AWS по умолчанию, поэтому Claude Code разрешает цепочку при каждом запросе API. С отключённым кэшем профиль, поддерживаемый SSO, запрашивает учётные данные из IAM Identity Center при каждом запросе. См. [кэширование учётных данных и таймаут разрешения](/docs/ru/amazon-bedrock#credential-caching-and-resolution-timeout). Требует Claude Code версии 2.1.207 или позже |381| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Установите `1`, чтобы использовать более короткий системный промпт и сокращённые описания инструментов на любой модели. Установите `0`, `false`, `no` или `off`, чтобы отказаться даже на моделях, где эксперимент или серверная конфигурация в противном случае включили бы это. Полный набор инструментов, хуки, MCP-серверы и обнаружение CLAUDE.md остаются включёнными |

382| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Пропустить аутентификацию AWS для Amazon Bedrock (например, при использовании LLM gateway) |382| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Пропускает клиентскую аутентификацию для [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) — для шлюзов, которые сами подписывают запросы |

383| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Установите на `1`, чтобы обработать неудачную проверку доступности [быстрого режима](/docs/ru/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) как доступную для сетей, которые блокируют прямой запрос проверки к `api.anthropic.com`. Claude Code по-прежнему соблюдает ответ "отключено вашей организацией" |383| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Установите `1`, чтобы отключить внутрипроцессный кэш учётных данных, полученных из цепочки поставщиков учётных данных AWS по умолчанию, чтобы Claude Code обрабатывал цепочку при каждом API-запросе. При отключённом кэше профиль на основе SSO запрашивает учётные данные у IAM Identity Center при каждом запросе. См. [кэширование учётных данных и таймаут их получения](/docs/ru/amazon-bedrock#credential-caching-and-resolution-timeout). Требуется Claude Code v2.1.207 или новее |

384| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Установите на `1`, чтобы пропустить проверку доступности [быстрого режима](/docs/ru/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) на стороне клиента для прокси, которые перехватывают запрос проверки, а не отказывают в нём. API по-прежнему отклоняет запросы быстрого режима, когда ваша организация отключила быстрый режим |384| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Пропускает аутентификацию AWS для Amazon Bedrock (например, при использовании LLM-шлюза) |

385| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Пропустить аутентификацию Azure для Microsoft Foundry, для прокси или шлюза, который вводит свой собственный заголовок `Authorization`. Claude Code отправляет запросы без учётных данных Azure и сохраняет заголовок `Authorization`, который вы предоставляете, например, через `ANTHROPIC_CUSTOM_HEADERS`. Игнорируется, когда установлены `ANTHROPIC_FOUNDRY_API_KEY` или `ANTHROPIC_FOUNDRY_AUTH_TOKEN`. До версии 2.1.203 эта переменная оставляла клиент Microsoft Foundry неспособным отправлять запросы, если ключ API также не был установлен |385| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Установите `1`, чтобы при неудавшейся проверке доступности [быстрого режима](/docs/ru/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) считать его доступным — для сетей, блокирующих прямой запрос проверки к `api.anthropic.com`. Claude Code по-прежнему учитывает ответ "disabled by your organization" |

386| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Пропустить аутентификацию AWS для Amazon Bedrock Mantle (например, при использовании LLM gateway) |386| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Установите `1`, чтобы пропустить клиентскую проверку доступности [быстрого режима](/docs/ru/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) — для прокси, которые перехватывают запрос проверки, а не отклоняют его. API по-прежнему отклоняет запросы в быстром режиме, если в вашей организации быстрый режим отключён |

387| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | [Проверки модели при запуске](/docs/ru/amazon-bedrock#startup-model-checks) на [Amazon Bedrock](/docs/ru/amazon-bedrock) и [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai) помнят на этой машине, какие модели они обнаружили, что ваша учётная запись не может вызвать, в течение дня. Установите на `1`, чтобы отключить эту память. Требует Claude Code версии 2.1.285 или позже |387| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Пропускает аутентификацию Azure для Microsoft Foundry — для прокси или шлюза, который внедряет собственный заголовок `Authorization`. Claude Code отправляет запросы без учётных данных Azure и сохраняет предоставленный вами заголовок `Authorization`, например через `ANTHROPIC_CUSTOM_HEADERS`. Игнорируется, если задана `ANTHROPIC_FOUNDRY_API_KEY` или `ANTHROPIC_FOUNDRY_AUTH_TOKEN`. До v2.1.203 из-за этой переменной клиент Microsoft Foundry не мог отправлять запросы, если не был также задан API-ключ |

388| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Установите на `1`, чтобы пропустить запись истории подсказок и стенограмм сеансов на диск. Сеансы, запущенные с этой переменной, не появляются в `--resume`, `--continue` или истории со стрелкой вверх. Полезно для эфемерных скриптовых сеансов |388| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Пропускает аутентификацию AWS для Amazon Bedrock Mantle (например, при использовании LLM-шлюза) |

389| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Пропустить аутентификацию Google для Google Cloud's Agent Platform (например, при использовании LLM gateway) |389| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | [Проверки моделей при запуске](/docs/ru/amazon-bedrock#startup-model-checks) в [Amazon Bedrock](/docs/ru/amazon-bedrock) и [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai) запоминают на этой машине, какие модели ваша учётная запись не может вызывать, на срок до одного дня. Установите `1`, чтобы отключить это запоминание. Требуется Claude Code v2.1.285 или новее |

390| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Установите на `1`, чтобы сеанс, запущенный с `--output-format stream-json`, написал [сообщение результата, называющее, почему Claude Code отказался запустить](/docs/ru/agent-sdk/typescript#startup_failure_reason) для отказов при запуске, которые в противном случае заканчиваются только stderr. Требует Claude Code версии 2.1.274 или позже |390| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Установите `1`, чтобы не записывать историю промптов и транскрипты сессий на диск. Сессии, запущенные с этой переменной, не появляются в `--resume`, `--continue` и истории по стрелке вверх. Полезно для временных сессий в скриптах |

391| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Максимальное количество последовательных раз, когда [Stop](/docs/ru/hooks#stop) или [SubagentStop](/docs/ru/hooks#subagentstop) hook может блокировать завершение хода перед тем, как Claude Code переопределит его и завершит ход в любом случае (по умолчанию: 8). Установите на `0`, чтобы отключить ограничение. Повысьте это, если ваш hook законно нуждается в большем количестве итераций для разрешения |391| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Пропускает аутентификацию Google для Google Cloud's Agent Platform (например, при использовании LLM-шлюза) |

392| `CLAUDE_CODE_SUBAGENT_MODEL` | Модель по умолчанию для [подагентов](/docs/ru/sub-agents#choose-a-model), товарищей [команды агентов](/docs/ru/agent-teams#specify-teammates-and-models) и агентов [workflow](/docs/ru/workflows), которым не назначена модель другим способом. Принимает псевдоним, такой как `haiku`, или полное имя модели. Два источника имеют приоритет над ней: модель, которую Claude передаёт при порождении агента, и поле `model` в определении агента, включая `inherit`. Чтобы изменить это, установите [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/ru/sub-agents#run-every-subagent-on-one-model). См. [Выбрать модель](/docs/ru/sub-agents#choose-a-model) для полного порядка. Установка на `inherit` — это то же самое, что оставить её не установленной. До версии 2.1.251 эта переменная переопределяла как модель для каждого вызова, так и поле `model` определения |392| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Установите `1`, чтобы сессия, запущенная с `--output-format stream-json`, записывала [сообщение с результатом, указывающее, почему Claude Code отказался запускаться](/docs/ru/agent-sdk/typescript#startup_failure_reason), при сбоях запуска, которые иначе завершаются только выводом в stderr. Требуется Claude Code v2.1.274 или новее |

393| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Установите на `1`, чтобы принудительно применить одну модель к подагентам, товарищам и агентам workflow. [Запустить каждый подагент на одной модели](/docs/ru/sub-agents#run-every-subagent-on-one-model) говорит, какая это модель. Требует Claude Code версии 2.1.257 или позже |393| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Максимальное количество последовательных раз, когда хук [Stop](/docs/ru/hooks#stop) или [SubagentStop](/docs/ru/hooks#subagentstop) может заблокировать завершение хода, прежде чем Claude Code переопределит его и всё равно завершит ход (по умолчанию: 8). Установите `0`, чтобы снять ограничение. Увеличьте значение, если вашему хуку обоснованно требуется больше итераций |

394| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Установите `5m` или `1h`, единственные значения, которые Claude Code принимает, чтобы выбрать [TTL кэша подсказок](/docs/ru/prompt-caching#cache-lifetime) для запросов вне основного разговора, таких как [подагенты](/docs/ru/sub-agents), workflows и фоновая работа. Имеет приоритет над параметром `subagentPromptCacheTtl` и над `ENABLE_PROMPT_CACHING_1H`, и `FORCE_PROMPT_CACHING_5M` переопределяет его. API выставляет счета за записи кэша на 1 час по более высокой ставке. Требует Claude Code версии 2.1.242 или позже |394| `CLAUDE_CODE_SUBAGENT_MODEL` | Модель по умолчанию для [субагентов](/docs/ru/sub-agents#choose-a-model), участников [команды агентов](/docs/ru/agent-teams#specify-teammates-and-models) и агентов [рабочих процессов](/docs/ru/workflows), которым модель не назначена иным способом. Принимает псевдоним, например `haiku`, или полное имя модели. Два источника имеют над ней приоритет: модель, которую Claude передаёт при порождении агента, и поле `model` в определении агента, включая `inherit`. Чтобы это изменить, задайте [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/ru/sub-agents#run-every-subagent-on-one-model). Полный порядок см. в разделе [Выбор модели](/docs/ru/sub-agents#choose-a-model). Значение `inherit` равносильно тому, что переменная не задана. До v2.1.251 эта переменная переопределяла как модель, заданную при вызове, так и поле `model` в определении |

395| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Установите на `1`, чтобы удалить учётные данные из окружений подпроцессов (инструмент Bash, hooks, серверы stdio MCP): учётные данные Anthropic и облачного поставщика, любую другую переменную, которую Claude Code распознаёт как учётные данные, и учётные данные, встроенные в URL реестра пакетов. Родительский процесс Claude сохраняет эти учётные данные для вызовов API, но дочерние процессы не могут их читать, уменьшая воздействие атак внедрения подсказок, которые пытаются экспортировать секреты через расширение оболочки. На версии 2.1.251 или позже скраб также удаляет переменные указателя хранилища конфигурации Claude Code (такие как `CLAUDE_CONFIG_DIR`), поэтому дочерний процесс не может найти переместённый каталог конфигурации. Оставьте скраб не установленным, если подпроцесс нуждается в этих переменных. На Linux это также запускает подпроцессы Bash в изолированном пространстве имён PID, поэтому они не могут читать окружения хост-процессов через `/proc`; как побочный эффект, `ps`, `pgrep` и `kill` не могут видеть или сигнализировать хост-процессам. `claude-code-action` устанавливает это автоматически, когда настроен `allowed_non_write_users` |395| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Установите `1`, чтобы принудительно использовать одну модель для субагентов, участников команды и агентов рабочих процессов. Какая это модель, описано в разделе [Запуск всех субагентов на одной модели](/docs/ru/sub-agents#run-every-subagent-on-one-model). Требуется Claude Code v2.1.257 или новее |

396| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Установите на `1` в неинтерактивном режиме (флаг `-p`), чтобы ждать завершения установки плагина перед первым запросом. Без этого плагины устанавливаются в фоне и могут быть недоступны на первом ходу. Объедините с `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS`, чтобы ограничить ожидание |396| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Установите `5m` или `1h` — единственные значения, которые принимает Claude Code, — чтобы выбрать [TTL кэша промптов](/docs/ru/prompt-caching#cache-lifetime) для запросов вне основного диалога, таких как [субагенты](/docs/ru/sub-agents), рабочие процессы и фоновая работа. Имеет приоритет над настройкой `subagentPromptCacheTtl` и над `ENABLE_PROMPT_CACHING_1H`, а `FORCE_PROMPT_CACHING_5M` переопределяет её. API тарифицирует запись в кэш на 1 час по более высокой ставке. Требуется Claude Code v2.1.242 или новее |

397| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Таймаут в миллисекундах для синхронной установки плагина. При превышении Claude Code продолжает без плагинов и логирует ошибку. Нет значения по умолчанию: без этой переменной синхронная установка ждёт до завершения |397| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Установите `1`, чтобы удалять учётные данные из окружений подпроцессов (инструмент Bash, хуки, stdio MCP-серверы): учётные данные Anthropic и облачных провайдеров, любые другие переменные, которые Claude Code распознаёт как учётные данные, и учётные данные, встроенные в URL реестров пакетов. Родительский процесс Claude сохраняет эти учётные данные для вызовов API, но дочерние процессы не могут их прочитать, что снижает риск промпт-инъекций, пытающихся похитить секреты через раскрытие в оболочке. В v2.1.251 и новее очистка также удаляет собственные переменные Claude Code, указывающие на хранилище конфигурации (такие как `CLAUDE_CONFIG_DIR`), поэтому дочерний процесс не может найти перемещённый каталог конфигурации. Не задавайте очистку, если подпроцессу нужны эти переменные. В Linux это также запускает подпроцессы Bash в изолированном пространстве имён PID, чтобы они не могли читать окружения процессов хоста через `/proc`; как побочный эффект, `ps`, `pgrep` и `kill` не могут видеть процессы хоста или отправлять им сигналы. `claude-code-action` устанавливает эту переменную автоматически, если настроен `allowed_non_write_users` |

398| `CLAUDE_CODE_SYNC_SKILLS` | Установите на `1` в неинтерактивном режиме с флагом `-p`, чтобы Claude Code загрузил skills, включённые для вашей учётной записи claude.ai в этом запуске и ждал список их, до `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, перед запуском первого запроса. Сами загрузки завершаются в фоне, и Claude ждёт загрузки skill, когда его вызывает. Требует аутентификацию claude.ai. Сеансы терминала, где вы входите с вашей учётной записью claude.ai, [загружают эти skills](/docs/ru/skills#where-synced-skills-load) в `~/.claude/skills/synced/` и повторно синхронизируют примерно каждые 10 минут без этой переменной, поэтому установите её только, когда запуск `-p` нуждается в ваших текущих skills на его первом запросе. До версии 2.1.273 сеансы терминала загружали их только в запуске `-p` с этой переменной. Имя папки `synced` [зарезервировано для этой загрузки](/docs/ru/skills#where-skills-live). До версии 2.1.227 skills загружались в `~/.claude/skills/` напрямую. Claude Code применяет [дополнительные правила к загруженным skills](/docs/ru/skills#how-synced-skills-behave), такие как отсутствие запуска их команд `!` на вашей машине |398| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Установите `1` в неинтерактивном режиме (флаг `-p`), чтобы дожидаться завершения установки плагинов перед первым запросом. Без этого плагины устанавливаются в фоне и могут быть недоступны на первом ходе. Используйте вместе с `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS`, чтобы ограничить ожидание |

399| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Таймаут в миллисекундах для повторной синхронизации skills, которая работает в середине сеанса, когда приложение, построенное на [Agent SDK](/docs/ru/agent-sdk/typescript#query-object), перезагружает skills (по умолчанию: 30000). При превышении перезагрузка продолжает с какими бы skills ни прибыли, и оставшиеся загрузки завершаются в фоне |399| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Таймаут в миллисекундах для синхронной установки плагинов. При его превышении Claude Code продолжает работу без плагинов и записывает ошибку в лог. Значения по умолчанию нет: без этой переменной синхронная установка ждёт завершения |

400| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Таймаут в миллисекундах для первого запроса, чтобы ждать начального списка skills, когда установлен `CLAUDE_CODE_SYNC_SKILLS` (по умолчанию: 5000). При превышении первый запрос работает с какими бы skills ни прибыли. Загрузки завершаются в фоне в любом случае, и Claude ждёт загрузки skill, когда его вызывает |400| `CLAUDE_CODE_SYNC_SKILLS` | Установите `1` в неинтерактивном режиме с флагом `-p`, чтобы Claude Code в этом запуске загружал скиллы, включённые для вашей учётной записи claude.ai, и дожидался их списка — не дольше `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` — перед выполнением первого запроса. Сами загрузки завершаются в фоне, а Claude дожидается загрузки скилла, когда вызывает этот скилл. Требуется аутентификация claude.ai. Терминальные сессии, в которых вы входите с учётной записью claude.ai, [загружают эти скиллы](/docs/ru/skills#where-synced-skills-load) в `~/.claude/skills/synced/` и повторно синхронизируют их примерно каждые 10 минут и без этой переменной, поэтому задавайте её, только когда запуску `-p` нужны ваши актуальные скиллы уже при первом запросе. До v2.1.273 терминальные сессии загружали их только при запуске `-p` с заданной переменной. Имя папки `synced` [зарезервировано для этой загрузки](/docs/ru/skills#where-skills-live). До v2.1.227 скиллы загружались напрямую в `~/.claude/skills/`. Claude Code применяет [дополнительные правила к загруженным скиллам](/docs/ru/skills#how-synced-skills-behave), например не выполняет их команды `!` на вашей машине |

401| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Установите на `false`, чтобы отключить подсветку синтаксиса в выводе diff. Полезно, когда цвета мешают вашей настройке терминала. Чтобы также отключить подсветку в блоках кода и предпросмотрах файлов, используйте параметр [`syntaxHighlightingDisabled`](/docs/ru/settings-reference#syntaxhighlightingdisabled) |401| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Таймаут в миллисекундах для повторной синхронизации скиллов, выполняемой посреди сессии, когда приложение на основе [Agent SDK](/docs/ru/agent-sdk/typescript#query-object) перезагружает скиллы (по умолчанию: 30000). При его превышении перезагрузка продолжается с уже поступившими скиллами, а оставшиеся загрузки завершаются в фоне |

402| `CLAUDE_CODE_TASK_LIST_ID` | Поделиться списком задач между сеансами. Установите один и тот же ID в несколько экземпляров Claude Code, чтобы координировать общий список задач в [сеансах, которые имеют инструменты Task](/docs/ru/tools-reference#task-tool-availability). См. [Список задач](/docs/ru/interactive-mode#task-list) |402| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Таймаут в миллисекундах, в течение которого первый запрос ожидает начальный список скиллов, когда задана `CLAUDE_CODE_SYNC_SKILLS` (по умолчанию: 5000). При его превышении первый запрос выполняется с уже поступившими скиллами. Загрузки в любом случае завершаются в фоне, а Claude дожидается загрузки скилла, когда вызывает этот скилл |

403| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Переопределить в миллисекундах, как долго неинтерактивный сеанс ждёт при выходе, пока его [команда агентов](/docs/ru/agent-teams) завершит разборку. Принимает 1000 до 60000; значение вне диапазона игнорируется и применяется значение по умолчанию 10000. Требует Claude Code версии 2.1.206 или позже |403| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Установите `false`, чтобы отключить подсветку синтаксиса в выводе diff. Полезно, когда цвета мешают настройке вашего терминала. Чтобы также отключить подсветку в блоках кода и предпросмотре файлов, используйте настройку [`syntaxHighlightingDisabled`](/docs/ru/settings-reference#syntaxhighlightingdisabled) |

404| `CLAUDE_CODE_TMPDIR` | Переопределить временный каталог, используемый для внутренних временных файлов. Claude Code добавляет `/claude-{uid}/` на Unix или `/claude/` на Windows к этому пути. По умолчанию: `/tmp` на macOS, `os.tmpdir()` на Linux и Windows. На macOS и Linux [изолированные](/docs/ru/sandboxing) подпроцессы Bash получают короткий резервный `$TMPDIR` под системным значением по умолчанию, когда ваше переопределение — это длинный путь, так как некоторые инструменты не выполняются, когда пути временных файлов становятся слишком длинными. Неизолированные команды Bash наследуют `$TMPDIR` вашей оболочки, когда он установлен. Собственные временные файлы Claude Code всегда используют ваше переопределение. Установите это в вашей оболочке, пользовательских параметрах или управляемых параметрах. Игнорируется в [параметрах проекта и локальных параметрах](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) |404| `CLAUDE_CODE_TASK_LIST_ID` | Общий список задач для нескольких сессий. Задайте одинаковый ID в нескольких экземплярах Claude Code, чтобы координировать работу над общим списком задач, в [сессиях, где есть инструменты Task](/docs/ru/tools-reference#task-tool-availability). См. [Список задач](/docs/ru/interactive-mode#task-list) |

405| `CLAUDE_CODE_TMUX_TRUECOLOR` | Установите на любое непустое значение, такое как `1`, чтобы позволить вывод 24-битного truecolor внутри tmux. **Установка на `0` или `false` по-прежнему позволяет truecolor**, в отличие от большинства переменных включения/отключения; отмените установку переменной, чтобы восстановить зажим 256 цветов. По умолчанию Claude Code зажимает до 256 цветов, когда установлен `$TMUX`, потому что tmux не пропускает последовательности выхода truecolor, если не настроен. Установите это после добавления `set -ga terminal-overrides ',*:Tc'` в ваш `~/.tmux.conf`. См. [Конфигурация терминала](/docs/ru/terminal-config) для других параметров tmux |405| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Переопределяет в миллисекундах, как долго неинтерактивная сессия ждёт при выходе, пока её [команда агентов](/docs/ru/agent-teams) завершит свёртывание. Принимает значения от 1000 до 60000; значение вне диапазона игнорируется, и применяется значение по умолчанию 10000. Требуется Claude Code v2.1.206 или новее |

406| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | На Linux и WSL установите на разделённый запятыми список видов процессов Claude Code [исключает из ограничения памяти инструмента](/docs/ru/tools-reference#memory-limit-on-linux-and-wsl), такие как `mcp` или `lsp`. Установите `none`, чтобы ограничить каждый вид, или `all-new`, чтобы ограничить только команды инструментов Bash, PowerShell и Monitor. Claude Code сохраняет команды инструментов Bash, PowerShell и Monitor под ограничением, что бы вы ни перечислили. Требует Claude Code версии 2.1.246 или позже |406| `CLAUDE_CODE_TMPDIR` | Переопределяет временный каталог, используемый для внутренних временных файлов. Claude Code добавляет к этому пути `/claude-{uid}/` в Unix или `/claude/` в Windows. По умолчанию: `/tmp` в macOS, `os.tmpdir()` в Linux и Windows. В macOS и Linux подпроцессы Bash в [песочнице](/docs/ru/sandboxing) получают короткий резервный `$TMPDIR` в системном каталоге по умолчанию, если ваше переопределение — длинный путь, поскольку некоторые инструменты не работают со слишком длинными временными путями. Команды Bash вне песочницы наследуют `$TMPDIR` вашей оболочки, если он задан. В нативной Windows, если ваша оболочка не задаёт `$TMPDIR`, команда Bash, ссылающаяся на `$TMPDIR`, получает ваше переопределение или `%TEMP%`, если вы его не задали. Собственные временные файлы Claude Code всегда используют ваше переопределение. Задайте её в оболочке, пользовательских настройках или управляемых настройках. Игнорируется в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) |

407| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | На Linux и WSL установите на размер, такой как `4G`, чтобы [ограничить память, которую команды инструментов Bash и PowerShell могут использовать](/docs/ru/tools-reference#memory-limit-on-linux-and-wsl), и команды инструмента Monitor на версии 2.1.246 или позже. Напишите размер в простых цифрах, одних для количества байтов или с суффиксом `K`, `M`, `G` или `T`. Установите `0` или `off`, чтобы отключить ограничение. После того, как первый процесс Claude Code запустил ограничение включённым или отключённым, изменённое значение вступает в силу при следующем запуске `claude`. Требует Claude Code версии 2.1.233 или позже |407| `CLAUDE_CODE_TMUX_TRUECOLOR` | Установите любое непустое значение, например `1`, чтобы разрешить 24-битный вывод truecolor внутри tmux. **Значение `0` или `false` по-прежнему разрешает truecolor**, в отличие от большинства переменных включения/выключения; удалите переменную, чтобы восстановить ограничение в 256 цветов. По умолчанию Claude Code ограничивается 256 цветами, когда задан `$TMUX`, поскольку tmux не пропускает escape-последовательности truecolor, если не настроен на это. Задайте её после добавления `set -ga terminal-overrides ',*:Tc'` в ваш `~/.tmux.conf`. Другие настройки tmux см. в разделе [Конфигурация терминала](/docs/ru/terminal-config) |

408| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Крайний срок в миллисекундах перед тем, как Claude Code отменит диалоговое окно, которое оно пересылает удалённому клиенту, такому как [Remote Control](/docs/ru/remote-control) или хост SDK, или диалоговое окно одобрения для [удерживаемого кросс-сеансового сообщения](/docs/ru/cross-session-messaging#control-inbound-messages); запросы разрешений и вопросы `AskUserQuestion` используют свои собственные потоки и не управляются им. На Claude Code версии 2.1.236 или позже он также ограничивает запрос согласия на использование кредитов [Fable](/docs/ru/model-config#fable-and-usage-credits) в сеансе, который может работать без присмотра. [Контроль входящих сообщений](/docs/ru/cross-session-messaging#control-inbound-messages) и [неинтерактивные сеансы](/docs/ru/cross-session-messaging#non-interactive-sessions) охватывают полные правила истечения удерживаемого сообщения, включая случаи, когда крайний срок не применяется. Переопределяет параметр [`dialogExpiry`](/docs/ru/settings-reference#dialogexpiry). `0` или отрицательное значение отключает крайний срок |408| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | В Linux и WSL задайте список через запятую видов процессов, которые Claude Code [исключает из ограничения памяти инструментов](/docs/ru/tools-reference#memory-limit-on-linux-and-wsl), например `mcp` или `lsp`. Задайте `none`, чтобы ограничивать все виды, или `all-new`, чтобы ограничивать только команды инструментов Bash, PowerShell и Monitor. Claude Code оставляет команды инструментов Bash, PowerShell и Monitor под ограничением независимо от того, что вы перечислите. Требуется Claude Code v2.1.246 или новее |

409| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | В Linux и WSL задайте размер, например `4G`, чтобы [ограничить память, которую могут использовать команды инструментов Bash и PowerShell](/docs/ru/tools-reference#memory-limit-on-linux-and-wsl), а также команды инструмента Monitor в v2.1.246 и новее. Записывайте размер цифрами — без суффикса для количества байтов или с суффиксом `K`, `M`, `G` или `T`. Задайте `0` или `off`, чтобы отключить ограничение. После того как первый процесс, запущенный Claude Code, включил или отключил ограничение, изменённое значение вступает в силу при следующем запуске `claude`. Требуется Claude Code v2.1.233 или новее |

410| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Срок в миллисекундах, по истечении которого Claude Code отменяет диалоговое окно, пересылаемое удалённому клиенту, например хосту [Remote Control](/docs/ru/remote-control) или SDK, или диалоговое окно подтверждения для [удержанного межсессионного сообщения](/docs/ru/cross-session-messaging#control-inbound-messages); запросы разрешений и вопросы `AskUserQuestion` используют собственные механизмы и не регулируются этой переменной. В Claude Code v2.1.236 и новее она также ограничивает по времени [запрос согласия на кредиты использования для Fable](/docs/ru/model-config#fable-and-usage-credits), появляющийся посреди сессии, которая может выполняться без присмотра. Полные правила истечения срока удержанных сообщений, включая случаи, когда срок не применяется, описаны в разделах [Контроль входящих сообщений](/docs/ru/cross-session-messaging#control-inbound-messages) и [Неинтерактивные сессии](/docs/ru/cross-session-messaging#non-interactive-sessions). Переопределяет настройку [`dialogExpiry`](/docs/ru/settings-reference#dialogexpiry). `0` или отрицательное значение отключает срок |

409| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Использовать [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) |411| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Использовать [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) |

410| `CLAUDE_CODE_USE_BEDROCK` | Использовать [Amazon Bedrock](/docs/ru/amazon-bedrock) |412| `CLAUDE_CODE_USE_BEDROCK` | Использовать [Amazon Bedrock](/docs/ru/amazon-bedrock) |

411| `CLAUDE_CODE_USE_FOUNDRY` | Использовать [Microsoft Foundry](/docs/ru/microsoft-foundry) |413| `CLAUDE_CODE_USE_FOUNDRY` | Использовать [Microsoft Foundry](/docs/ru/microsoft-foundry) |

412| `CLAUDE_CODE_USE_MANTLE` | Использовать [конечную точку Mantle](/docs/ru/amazon-bedrock#use-the-mantle-endpoint) Amazon Bedrock |414| `CLAUDE_CODE_USE_MANTLE` | Использовать [эндпоинт Mantle](/docs/ru/amazon-bedrock#use-the-mantle-endpoint) Amazon Bedrock |

413| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Установите на `1`, чтобы обнаруживать пользовательские команды, подагентов и стили вывода, используя API файлов Node.js вместо ripgrep. Установите это, если встроенный двоичный файл ripgrep недоступен или заблокирован в вашем окружении. Не влияет на инструменты Grep или поиск файлов |415| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Установите `1`, чтобы обнаруживать пользовательские команды, субагентов и стили вывода с помощью файловых API Node.js вместо ripgrep. Задайте её, если встроенный бинарный файл ripgrep недоступен или заблокирован в вашей среде. Не влияет на Grep и инструменты поиска файлов |

414| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Контролирует инструмент PowerShell. На Windows без Git Bash инструмент включен автоматически; установите на `0`, чтобы отключить его. На Windows с установленным Git Bash инструмент включен по умолчанию для учётных записей claude.ai и Console; установите на `1`, чтобы включить его в сеансах Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, или `0`, чтобы отключить его. На Linux, macOS и WSL установите на `1`, чтобы включить его, что требует `pwsh` на вашем `PATH`. При включении на Windows Claude может запускать команды PowerShell изначально вместо маршрутизации через Git Bash. См. [Инструмент PowerShell](/docs/ru/tools-reference#powershell-tool) |416| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Управляет инструментом PowerShell. В Windows без Git Bash инструмент включается автоматически; установите `0`, чтобы отключить его. В Windows с установленным Git Bash инструмент по умолчанию включён для учётных записей claude.ai и Console; установите `1`, чтобы включить его в сессиях Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, или `0`, чтобы отключить. В Linux, macOS и WSL установите `1`, чтобы включить его; для этого требуется `pwsh` в вашем `PATH`. Когда инструмент включён в Windows, Claude может выполнять команды PowerShell нативно, а не через Git Bash. См. [Инструмент PowerShell](/docs/ru/tools-reference#powershell-tool) |

415| `CLAUDE_CODE_USE_VERTEX` | Использовать [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai) |417| `CLAUDE_CODE_USE_VERTEX` | Использовать [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai) |

416| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Установите на количество миллисекунд [WebFetch](/docs/ru/tools-reference#webfetch-tool-behavior) сохраняет кэш ответа каждого полученного URL. По умолчанию `900000`, что составляет 15 минут. Принимает только простые цифры; `0`, десятичное число или любое другое написание сохраняет значение по умолчанию. Claude Code читает значение один раз за запуск, поэтому изменение в блоке параметров `env` применяется при следующем запуске `claude`. Требует Claude Code версии 2.1.233 или позже |418| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Задайте количество миллисекунд, в течение которых [WebFetch](/docs/ru/tools-reference#webfetch-tool-behavior) хранит в кэше ответ для каждого полученного URL. По умолчанию `900000`, то есть 15 минут. Принимает только цифры; `0`, десятичное число или любая другая форма записи сохраняют значение по умолчанию. Claude Code считывает значение один раз за запуск, поэтому изменение в блоке `env` настроек применяется при следующем запуске `claude`. Требуется Claude Code v2.1.233 или новее |

417| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Верхняя граница в миллисекундах, как долго [WebFetch](/docs/ru/tools-reference#webfetch-tool-behavior) ждёт загрузки страницы, включая любые перенаправления, которые она следует. Загрузка, которая не завершена к этому времени, не выполняется с ошибкой крайнего срока. По умолчанию `300000`, что составляет пять минут. Установите на `0`, чтобы удалить ограничение. Принимает только простые цифры; десятичное число или любое другое написание сохраняет значение по умолчанию. Требует Claude Code версии 2.1.268 или позже |419| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Верхний предел в миллисекундах того, как долго [WebFetch](/docs/ru/tools-reference#webfetch-tool-behavior) ожидает загрузки страницы, включая все перенаправления, по которым он переходит. Загрузка, не завершившаяся к этому времени, завершается ошибкой истечения срока. По умолчанию `300000`, то есть пять минут. Установите `0`, чтобы снять ограничение. Принимает только цифры; десятичное число или любая другая форма записи сохраняют значение по умолчанию. Требуется Claude Code v2.1.268 или новее |

418| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Сколько агентов один запуск [workflow](/docs/ru/workflows) выполняет одновременно, от `1` до `256`. По умолчанию запуск выполняет до 16 агентов одновременно, меньше, когда Claude Code имеет меньше доступных CPU; очередные вызовы `agent()` ждут свободного слота. Стенограмма каждого работающего агента остаётся в памяти Claude Code, поэтому более высокие значения повышают использование памяти. Принимает только простые цифры; значения вне диапазона и другие написания сохраняют значение по умолчанию. Требует Claude Code версии 2.1.269 или позже |420| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Сколько агентов одновременно выполняет один запуск [рабочего процесса](/docs/ru/workflows), от `1` до `256`. По умолчанию запуск выполняет до 16 агентов одновременно, меньше, если Claude Code доступно меньше CPU; поставленные в очередь вызовы `agent()` ждут свободного слота. Транскрипт каждого работающего агента хранится в памяти Claude Code, поэтому более высокие значения увеличивают использование оперативной памяти. Принимаются только цифры; значения вне диапазона и другие формы записи оставляют значение по умолчанию. Требуется Claude Code v2.1.269 или новее |

419| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Верхняя граница в миллисекундах, как долго агент [workflow](/docs/ru/workflows) ждёт первого ответа товарища с одинаковым префиксом перед отправкой своего собственного первого запроса. Когда веерное расширение запускает несколько агентов, которые делят [префикс кэша подсказок](/docs/ru/workflows#prompt-caching-in-a-fan-out), Claude Code удерживает всех, кроме первого агента, до этого времени, чтобы остальные читали кэшированный префикс вместо каждого обработки его без кэша. По умолчанию `5000`. Установите на `0`, чтобы отключить ожидание. Когда установлен `DISABLE_PROMPT_CACHING`, агенты никогда не ждут. Требует Claude Code версии 2.1.229 или позже |421| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Верхняя граница в миллисекундах времени, в течение которого агент [рабочего процесса](/docs/ru/workflows) ждёт начала первого ответа родственного агента с тем же префиксом, прежде чем отправить собственный первый запрос. Когда разветвление (fan-out) запускает несколько агентов с общим [префиксом кэша промптов](/docs/ru/workflows#prompt-caching-in-a-fan-out), Claude Code задерживает всех агентов, кроме первого, не дольше этого значения, чтобы остальные читали кэшированный префикс, а не обрабатывали его каждый без кэша. По умолчанию `5000`. Установите `0`, чтобы отключить ожидание. Когда задана `DISABLE_PROMPT_CACHING`, агенты никогда не ждут. Требуется Claude Code v2.1.229 или новее |

420| `CLAUDE_CONFIG_DIR` | Переопределить каталог конфигурации (по умолчанию: `~/.claude`). Все параметры, история сеансов и плагины хранятся под этим путём. Для учётных данных см. [где Claude Code хранит учётные данные](/docs/ru/authentication#credential-management). Полезно для запуска нескольких учётных записей рядом: например, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Установите это в вашей оболочке, пользовательских параметрах или управляемых параметрах. Игнорируется в [параметрах проекта и локальных параметрах](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) |422| `CLAUDE_CONFIG_DIR` | Переопределяет каталог конфигурации (по умолчанию: `~/.claude`). Все настройки, история сессий и плагины хранятся по этому пути. Об учётных данных см. [где Claude Code хранит учётные данные](/docs/ru/authentication#credential-management). Полезно для параллельной работы с несколькими аккаунтами: например, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Задайте её в оболочке, пользовательских настройках или управляемых настройках. Игнорируется в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) |

421| `CLAUDE_DISABLE_ADOPT` | Установите на `1`, чтобы остановить текущую фоновую работу вместо её переноса, когда вы фоновый сеанс, нажав `←` или с [`/background`](/docs/ru/agent-view#from-inside-a-session). Claude Code просит вас подтвердить перед фоновым выполнением, затем останавливает задачи, которые в противном случае переносились бы. Требует Claude Code версии 2.1.195 или позже |423| `CLAUDE_DISABLE_ADOPT` | Установите `1`, чтобы останавливать выполняющуюся фоновую работу, а не переносить её, когда вы переводите сессию в фоновый режим нажатием `←` или с помощью [`/background`](/docs/ru/agent-view#from-inside-a-session). Claude Code просит подтвердить перевод в фоновый режим, а затем останавливает задачи, которые иначе были бы перенесены. Требуется Claude Code v2.1.195 или новее |

422| `CLAUDE_EFFORT` | Установлено автоматически в подпроцессах инструмента Bash и командах hook на [уровень усилий](/docs/ru/model-config#adjust-effort-level), действующий при запуске подпроцесса: `low`, `medium`, `high`, `xhigh` или `max`. Совпадает с полем `effort.level`, переданным [hooks](/docs/ru/hooks). Установлено только, когда текущая модель поддерживает параметр усилий |424| `CLAUDE_EFFORT` | Автоматически устанавливается в подпроцессах инструмента Bash и командах хуков равной [уровню effort](/docs/ru/model-config#adjust-effort-level), действующему на момент запуска подпроцесса: `low`, `medium`, `high`, `xhigh` или `max`. Совпадает с полем `effort.level`, передаваемым [хукам](/docs/ru/hooks). Устанавливается, только если текущая модель поддерживает параметр effort |

423| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Установите на `1`, чтобы принудительно включить сторожа простоя потока на уровне байтов, или установите на `0`, чтобы принудительно отключить его. `0` также отключает [крайний срок первого байта](/docs/ru/network-config#streaming-idle-watchdogs) на подключениях, где этот крайний срок работает. Если не установлено, сторож включен по умолчанию для прямых подключений API Anthropic и [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), и для потоковых ответов на подключениях [шлюза](/docs/ru/gateways), достигнутых через `ANTHROPIC_BASE_URL` или `ANTHROPIC_AWS_BASE_URL`; до версии 2.1.222 он не работал на этих подключениях шлюза, поэтому сторож на уровне событий мог сообщить о стагнации там, даже если ping для поддержания соединения прибывали. Для таймаутов и того, как таймеры взаимодействуют, см. [Сторожи простоя потока](/docs/ru/network-config#streaming-idle-watchdogs) |425| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Установите `1`, чтобы принудительно включить сторожевой таймер простоя потоковой передачи на уровне байтов, или `0`, чтобы принудительно отключить его. `0` также отключает [крайний срок первого байта](/docs/ru/network-config#streaming-idle-watchdogs) на соединениях, где этот крайний срок действует. Если переменная не задана, сторожевой таймер по умолчанию включён для прямых подключений к Anthropic API и [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), а также для потоковых ответов на подключениях через [шлюз](/docs/ru/gateways), доступный через `ANTHROPIC_BASE_URL` или `ANTHROPIC_AWS_BASE_URL`; до v2.1.222 он не работал на этих подключениях через шлюз, поэтому сторожевой таймер уровня событий мог сообщать там о зависании, даже когда поступали keep-alive пинги. О таймаутах и взаимодействии таймеров см. [Сторожевые таймеры простоя потоковой передачи](/docs/ru/network-config#streaming-idle-watchdogs) |

424| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Установите на `1`, чтобы включить сторожа простоя потока на уровне байтов на ответах Amazon Bedrock `vnd.amazon.eventstream`, что также включает [крайний срок первого байта](/docs/ru/network-config#streaming-idle-watchdogs) на потоковых запросах Bedrock. Отключено по умолчанию. Настройте таймаут с помощью `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |426| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Установите `1`, чтобы включить сторожевой таймер простоя потоковой передачи на уровне байтов для ответов Amazon Bedrock `vnd.amazon.eventstream`, что также включает [крайний срок первого байта](/docs/ru/network-config#streaming-idle-watchdogs) для потоковых запросов Bedrock. По умолчанию отключено. Таймаут настраивается с помощью `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

425| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Установите на `0`, чтобы принудительно отключить сторожа простоя потока на уровне событий, или установите на `1`, чтобы принудительно включить его. Если не установлено, сторож включен по умолчанию для всех поставщиков. До версии 2.1.196 значение по умолчанию без установки было управляемо сервером на прямом API Anthropic и отключено на других поставщиках. Настройте таймаут с помощью `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; для других таймеров стагнации, которые работают рядом с этим, см. [Сторожи простоя потока](/docs/ru/network-config#streaming-idle-watchdogs) |427| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Установите `0`, чтобы принудительно отключить сторожевой таймер простоя потоковой передачи на уровне событий, или `1`, чтобы принудительно включить его. Если переменная не задана, сторожевой таймер по умолчанию включён для всех провайдеров. До v2.1.196 значение по умолчанию без заданной переменной контролировалось сервером в прямом Anthropic API и было выключено у других провайдеров. Таймаут настраивается с помощью `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; о других таймерах зависания, работающих вместе с этим, см. [Сторожевые таймеры простоя потоковой передачи](/docs/ru/network-config#streaming-idle-watchdogs) |

426| `CLAUDE_ENV_FILE` | Путь к скрипту оболочки, содержимое которого Claude Code запускает перед каждой командой Bash в том же процессе оболочки, поэтому экспорты в файле видны команде. Используйте для сохранения активации virtualenv или conda между командами. Также динамически заполняется [SessionStart](/docs/ru/hooks#persist-environment-variables), [Setup](/docs/ru/hooks#setup), [CwdChanged](/docs/ru/hooks#cwdchanged) и [FileChanged](/docs/ru/hooks#filechanged) hooks |428| `CLAUDE_ENV_FILE` | Путь к shell-скрипту, содержимое которого Claude Code выполняет перед каждой командой Bash в том же процессе оболочки, поэтому экспорты из файла видны команде. Используйте, чтобы сохранять активацию virtualenv или conda между командами. Также заполняется динамически хуками [SessionStart](/docs/ru/hooks#persist-environment-variables), [Setup](/docs/ru/hooks#setup), [CwdChanged](/docs/ru/hooks#cwdchanged) и [FileChanged](/docs/ru/hooks#filechanged) |

427| `CLAUDE_JOB_DIR` | Установлено Claude Code в каждом [фоновом сеансе](/docs/ru/agent-view) на каталог `~/.claude/jobs/<id>` этого сеанса. Команды оболочки, которые сеанс запускает, наследуют его. Напишите временные файлы в [`$CLAUDE_JOB_DIR/tmp`](/docs/ru/agent-view#where-state-is-stored). Вызовы `Write` и `Edit` Claude там не запрашивают разрешение, и каталог удаляется при удалении сеанса |429| `CLAUDE_JOB_DIR` | Устанавливается Claude Code в каждой [фоновой сессии](/docs/ru/agent-view) равной каталогу этой сессии `~/.claude/jobs/<id>`. Shell-команды, которые запускает сессия, наследуют её. Записывайте временные файлы в [`$CLAUDE_JOB_DIR/tmp`](/docs/ru/agent-view#where-state-is-stored). Вызовы `Write` и `Edit` от Claude в этом каталоге не запрашивают разрешения, а сам каталог удаляется при удалении сессии |

428| `CLAUDE_PID` | Claude Code устанавливает это на свой собственный ID процесса в подпроцессах, которые он порождает: команды инструментов Bash и PowerShell и команды hook. На Linux интеграция оболочки инструмента Bash использует это, чтобы отказать шаблону `pkill`, который совпадал бы с самим процессом Claude Code; см. [справку по ошибкам](/docs/ru/errors#pkill-pattern-matches-the-claude-code-process). Прочитайте это из своих собственных скриптов, чтобы определить или сигнализировать родительский процесс Claude Code намеренно. Требует Claude Code версии 2.1.214 или позже |430| `CLAUDE_PID` | Claude Code записывает в неё идентификатор собственного процесса в порождаемых им подпроцессах: командах инструментов Bash и PowerShell и командах хуков. В Linux интеграция оболочки инструмента Bash использует её, чтобы отклонять шаблон `pkill`, который совпал бы с самим процессом Claude Code; см. [справочник ошибок](/docs/ru/errors#pkill-pattern-matches-the-claude-code-process). Считывайте её в своих скриптах, чтобы целенаправленно идентифицировать родительский процесс Claude Code или отправлять ему сигналы. Требуется Claude Code v2.1.214 или новее |

429| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Префикс для автоматически создаваемых имён сеансов [Remote Control](/docs/ru/remote-control), когда явное имя не предоставлено. По умолчанию имя хоста вашей машины, создавая имена, такие как `myhost-graceful-unicorn`. Флаг CLI `--remote-control-session-name-prefix` устанавливает то же значение для одного вызова |431| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Префикс для автоматически генерируемых имён сессий [Remote Control](/docs/ru/remote-control), когда явное имя не указано. По умолчанию — имя хоста вашей машины, что даёт имена вида `myhost-graceful-unicorn`. Флаг CLI `--remote-control-session-name-prefix` задаёт то же значение для одного вызова |

430| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Крайний срок в миллисекундах для первого байта ответа потокового запроса на подключениях, где работает [крайний срок первого байта](/docs/ru/network-config#streaming-idle-watchdogs). Для того, как Claude Code его зажимает, дополнительное время, которое он добавляет для больших тел запроса, и как он выбирает крайний срок, когда вы оставляете это не установленным, см. [Нет ответа от API](/docs/ru/errors#no-response-from-api). Требует Claude Code версии 2.1.242 или позже |432| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Крайний срок в миллисекундах для первого байта ответа потокового запроса на соединениях, где действует [крайний срок первого байта](/docs/ru/network-config#streaming-idle-watchdogs). О том, как Claude Code ограничивает это значение, какое дополнительное время добавляет для больших тел запросов и как выбирает крайний срок, если переменная не задана, см. [No response from API](/docs/ru/errors#no-response-from-api). Требуется Claude Code v2.1.242 или новее |

431| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Таймаут в миллисекундах перед тем, как сторожи простоя потока на уровне событий и байтов закроют зависшее подключение. Когда вы явно устанавливаете эту переменную, минимум составляет `300000` (5 минут); более низкие значения молча зажимаются, чтобы поглотить паузы расширенного мышления и буферизацию прокси, и сторож на уровне байтов ограничивает значение на 30 минут. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` имеет приоритет над этой переменной для сторожа на уровне байтов. Для значений по умолчанию без установки для каждого сторожа см. [Сторожи простоя потока](/docs/ru/network-config#streaming-idle-watchdogs) |433| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Таймаут в миллисекундах, после которого сторожевые таймеры простоя потоковой передачи на уровне событий и на уровне байтов закрывают зависшее соединение. Если вы задаёте эту переменную явно, минимум составляет `300000` (5 минут); меньшие значения без предупреждения повышаются до минимума, чтобы учитывать длительные паузы расширенного мышления и буферизацию прокси, а сторожевой таймер уровня байтов ограничивает значение 30 минутами. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` имеет приоритет над этой переменной для сторожевого таймера уровня байтов. Значения по умолчанию для каждого сторожевого таймера без заданной переменной см. в разделе [Сторожевые таймеры простоя потоковой передачи](/docs/ru/network-config#streaming-idle-watchdogs) |

432| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Удалено в версии 2.1.260 и теперь не работает. Ранее ограничивало, как долго [фоновая команда оболочки](/docs/ru/interactive-mode#background-bash-commands), которую запустил [подагент](/docs/ru/sub-agents), могла работать, в миллисекундах, с 60-минутным значением по умолчанию. См. [правила времени жизни фоновой команды](/docs/ru/tools-reference#background-commands) |434| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Удалена в v2.1.260 и теперь ни на что не влияет. Ранее ограничивала в миллисекундах время работы [фоновой shell-команды](/docs/ru/interactive-mode#background-bash-commands), запущенной [субагентом](/docs/ru/sub-agents), со значением по умолчанию 60 минут. См. [правила времени жизни фоновых команд](/docs/ru/tools-reference#background-commands) |

433| `DEBUG` | Установите на `1`, чтобы включить режим отладки, эквивалентно запуску с [`--debug`](/docs/ru/cli-reference#cli-flags). Журналы отладки записываются в `~/.claude/debug/<session-id>.txt` или в путь, установленный `CLAUDE_CODE_DEBUG_LOGS_DIR`. Только истинные значения `1`, `true`, `yes` и `on` включают режим отладки, поэтому шаблоны пространства имён, такие как `DEBUG=express:*`, установленные для других инструментов, не срабатывают |435| `DEBUG` | Установите `1`, чтобы включить режим отладки, что эквивалентно запуску с [`--debug`](/docs/ru/cli-reference#cli-flags). Логи отладки записываются в `~/.claude/debug/<session-id>.txt` или по пути, заданному `CLAUDE_CODE_DEBUG_LOGS_DIR`. Режим отладки включают только истинные значения `1`, `true`, `yes` и `on`, поэтому шаблоны пространств имён вроде `DEBUG=express:*`, заданные для других инструментов, его не активируют |

434| `DISABLE_AUTOUPDATER` | Установите на `1`, чтобы отключить автоматические фоновые обновления. Ручной `claude update` по-прежнему работает. Используйте `DISABLE_UPDATES`, чтобы заблокировать оба |436| `DISABLE_AUTOUPDATER` | Установите `1`, чтобы отключить автоматические фоновые обновления. Ручной `claude update` по-прежнему работает. Используйте `DISABLE_UPDATES`, чтобы заблокировать и то, и другое |

435| `DISABLE_AUTO_COMPACT` | Установите на `1`, чтобы отключить автоматическое компактирование при приближении к пределу контекста. Ручная команда `/compact` остаётся доступной. Используйте, когда вы хотите явный контроль над тем, когда происходит компактирование. Переопределяет параметр [`autoCompactEnabled`](/docs/ru/settings-reference#autocompactenabled) |437| `DISABLE_AUTO_COMPACT` | Установите `1`, чтобы отключить автоматическое сжатие контекста при приближении к лимиту контекста. Ручная команда `/compact` остаётся доступной. Используйте, если хотите явно контролировать момент сжатия. Переопределяет настройку [`autoCompactEnabled`](/docs/ru/settings-reference#autocompactenabled) |

436| `DISABLE_COMPACT` | Установите на `1`, чтобы отключить все компактирование: как автоматическое компактирование, так и ручную команду `/compact` |438| `DISABLE_COMPACT` | Установите `1`, чтобы полностью отключить сжатие контекста: и автоматическое сжатие, и ручную команду `/compact` |

437| `DISABLE_COST_WARNINGS` | Установите на `1`, чтобы отключить сообщения предупреждения о стоимости |439| `DISABLE_COST_WARNINGS` | Установите `1`, чтобы отключить предупреждения о стоимости |

438| `DISABLE_DOCTOR_COMMAND` | Установите на `1`, чтобы скрыть skill [`/doctor`](/docs/ru/commands#all-commands) проверки настройки и его псевдоним `/checkup`. Полезно для управляемых развёртываний, где пользователи не должны запускать диагностику настройки из сеанса. Не влияет на команду терминала `claude doctor`. До версии 2.1.205 эта переменная скрывала экран диагностики `/doctor` |440| `DISABLE_DOCTOR_COMMAND` | Установите `1`, чтобы скрыть скилл проверки настройки [`/doctor`](/docs/ru/commands#all-commands) и его псевдоним `/checkup`. Полезно для управляемых развёртываний, где пользователи не должны запускать диагностику настройки из сессии. Не влияет на команду терминала `claude doctor`. До v2.1.205 эта переменная скрывала команду экрана диагностики `/doctor` |

439| `DISABLE_ERROR_REPORTING` | Установите на любое непустое значение, такое как `1`, чтобы отказаться от отчётов об ошибках. **Установка на `0` или `false` по-прежнему отказывает**, в отличие от большинства переменных включения/отключения; отмените установку переменной, чтобы включить отчёты об ошибках обратно |441| `DISABLE_ERROR_REPORTING` | Установите любое непустое значение, например `1`, чтобы отказаться от отправки отчётов об ошибках. **Значение `0` или `false` тоже означает отказ**, в отличие от большинства переменных включения/выключения; удалите переменную, чтобы снова включить отправку отчётов об ошибках |

440| `DISABLE_EXTRA_USAGE_COMMAND` | Установите на `1`, чтобы скрыть команду `/usage-credits`, которая позволяет пользователям покупать дополнительное использование сверх ограничений скорости |442| `DISABLE_EXTRA_USAGE_COMMAND` | Установите `1`, чтобы скрыть команду `/usage-credits`, которая позволяет пользователям приобретать дополнительное использование сверх ограничений частоты запросов |

441| `DISABLE_FEEDBACK_COMMAND` | Установите на `1`, чтобы отключить команду `/feedback` и [отзывы, составленные Claude](/docs/ru/tools-reference#sendfeedback-tool-behavior). Также отключает `/bug` и `/share`, которые сообщают через тот же путь; до версии 2.1.212 они были псевдонимами `/feedback`, поэтому команда была отключена под каждым именем. Старое имя `DISABLE_BUG_COMMAND` также принимается |443| `DISABLE_FEEDBACK_COMMAND` | Установите `1`, чтобы отключить команду `/feedback` и [отзывы, составленные Claude](/docs/ru/tools-reference#sendfeedback-tool-behavior). Также отключает `/bug` и `/share`, которые отправляют отчёты тем же путём; до v2.1.212 они были псевдонимами `/feedback`, поэтому команда отключалась под любым именем. Старое имя `DISABLE_BUG_COMMAND` также принимается |

442| `DISABLE_GROWTHBOOK` | Установите на `1` или `true`, чтобы отключить получение флагов функций GrowthBook и использовать значения по умолчанию кода для каждого флага. Это делает [Remote Control](/docs/ru/remote-control#requirements) и другие [функции, которые нуждаются в получении флагов функций](#features-that-need-feature-flag-fetching) недоступными. Установка на `0` или `false` оставляет получение включённым. Логирование событий телеметрии остаётся включённым, если только `DISABLE_TELEMETRY` также не установлен |444| `DISABLE_GROWTHBOOK` | Установите `1` или `true`, чтобы отключить получение флагов функций GrowthBook и использовать для каждого флага значения по умолчанию из кода. Это делает недоступными [Remote Control](/docs/ru/remote-control#requirements) и другие [функции, которым требуется получение флагов функций](#features-that-need-feature-flag-fetching). Значение `0` или `false` оставляет получение включённым. Логирование событий телеметрии остаётся включённым, если не задана также `DISABLE_TELEMETRY` |

443| `DISABLE_INSTALLATION_CHECKS` | Установите на `1`, чтобы отключить предупреждения об установке. Используйте только при ручном управлении местоположением установки, так как это может скрыть проблемы со стандартными установками |445| `DISABLE_INSTALLATION_CHECKS` | Установите `1`, чтобы отключить предупреждения об установке. Используйте только при ручном управлении расположением установки, так как это может скрыть проблемы стандартных установок |

444| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Установите на `1`, чтобы скрыть команду `/install-github-app`. Уже скрыта при использовании сторонних поставщиков (Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry) |446| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Установите `1`, чтобы скрыть команду `/install-github-app`. Она уже скрыта при использовании сторонних провайдеров (Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry) |

445| `DISABLE_INTERLEAVED_THINKING` | Установите на `1`, чтобы предотвратить отправку заголовка бета-версии чередующегося мышления. Полезно, когда ваш LLM шлюз или поставщик не поддерживает [чередующееся мышление](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |447| `DISABLE_INTERLEAVED_THINKING` | Установите `1`, чтобы не отправлять бета-заголовок interleaved-thinking. Полезно, если ваш LLM-шлюз или провайдер не поддерживает [чередующееся мышление](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

446| `DISABLE_LOGIN_COMMAND` | Установите на `1`, чтобы скрыть команду `/login`. Полезно, когда аутентификация обрабатывается внешне через ключи API или `apiKeyHelper` |448| `DISABLE_LOGIN_COMMAND` | Установите `1`, чтобы скрыть команду `/login`. Полезно, когда аутентификация выполняется внешне через API-ключи или `apiKeyHelper` |

447| `DISABLE_LOGOUT_COMMAND` | Установите на `1`, чтобы скрыть команду `/logout` |449| `DISABLE_LOGOUT_COMMAND` | Установите `1`, чтобы скрыть команду `/logout` |

448| `DISABLE_PROMPT_CACHING` | Установите на `1`, чтобы отключить [кэширование подсказок](/docs/ru/prompt-caching#disable-prompt-caching) для всех моделей (имеет приоритет над параметрами для каждой модели) |450| `DISABLE_PROMPT_CACHING` | Установите `1`, чтобы отключить [кэширование промптов](/docs/ru/prompt-caching#disable-prompt-caching) для всех моделей (имеет приоритет над настройками для отдельных моделей) |

449| `DISABLE_PROMPT_CACHING_FABLE` | Установите на `1`, чтобы отключить кэширование подсказок для моделей Fable |451| `DISABLE_PROMPT_CACHING_FABLE` | Установите `1`, чтобы отключить кэширование промптов для моделей Fable |

450| `DISABLE_PROMPT_CACHING_HAIKU` | Установите на `1`, чтобы отключить кэширование подсказок для [модели Haiku по умолчанию](/docs/ru/prompt-caching#disable-prompt-caching), где бы она ни работала |452| `DISABLE_PROMPT_CACHING_HAIKU` | Установите `1`, чтобы отключить кэширование промптов для [модели Haiku по умолчанию](/docs/ru/prompt-caching#disable-prompt-caching), где бы она ни работала |

451| `DISABLE_PROMPT_CACHING_OPUS` | Установите на `1`, чтобы отключить кэширование подсказок для [модели Opus по умолчанию](/docs/ru/prompt-caching#disable-prompt-caching) |453| `DISABLE_PROMPT_CACHING_OPUS` | Установите `1`, чтобы отключить кэширование промптов для [модели Opus по умолчанию](/docs/ru/prompt-caching#disable-prompt-caching) |

452| `DISABLE_PROMPT_CACHING_SONNET` | Установите на `1`, чтобы отключить кэширование подсказок для [модели Sonnet по умолчанию](/docs/ru/prompt-caching#disable-prompt-caching) |454| `DISABLE_PROMPT_CACHING_SONNET` | Установите `1`, чтобы отключить кэширование промптов для [модели Sonnet по умолчанию](/docs/ru/prompt-caching#disable-prompt-caching) |

453| `DISABLE_TELEMETRY` | Установите на любое непустое значение, такое как `1`, чтобы отказаться от телеметрии. **Установка на `0` или `false` по-прежнему отказывает**, в отличие от большинства переменных включения/отключения; отмените установку переменной, чтобы включить телеметрию обратно. События телеметрии не включают пользовательские данные, такие как код, пути файлов или команды bash. Также отключает [получение флагов функций](#features-that-need-feature-flag-fetching). См. [Отключить телеметрию для вашей организации](/docs/ru/managed-settings#turn-telemetry-off-for-your-organization) |455| `DISABLE_TELEMETRY` | Установите любое непустое значение, например `1`, чтобы отказаться от телеметрии. **Значение `0` или `false` тоже означает отказ**, в отличие от большинства переменных включения/выключения; удалите переменную, чтобы снова включить телеметрию. События телеметрии не содержат пользовательских данных, таких как код, пути к файлам или команды Bash. Также отключает [получение флагов функций](#features-that-need-feature-flag-fetching). См. [Отключение телеметрии для вашей организации](/docs/ru/managed-settings#turn-telemetry-off-for-your-organization) |

454| `DISABLE_UPDATES` | Установите на `1`, чтобы заблокировать все обновления, включая ручной `claude update` и `claude install`. Строже, чем `DISABLE_AUTOUPDATER`. Используйте при распределении Claude Code через ваши собственные каналы и пользователи не должны самостоятельно обновляться |456| `DISABLE_UPDATES` | Установите `1`, чтобы заблокировать все обновления, включая ручные `claude update` и `claude install`. Строже, чем `DISABLE_AUTOUPDATER`. Используйте, когда распространяете Claude Code через собственные каналы и пользователи не должны обновляться самостоятельно |

455| `DISABLE_UPGRADE_COMMAND` | Установите на `1`, чтобы скрыть команду `/upgrade` |457| `DISABLE_UPGRADE_COMMAND` | Установите `1`, чтобы скрыть команду `/upgrade` |

456| `DO_NOT_TRACK` | Установите на `1`, чтобы отказаться от телеметрии, с тем же эффектом, что и `DISABLE_TELEMETRY`, в том числе в отношении [получения флагов функций](#features-that-need-feature-flag-fetching). Claude Code читает эту переменную как стандартное логическое значение, поэтому `0` оставляет телеметрию включённой; Claude Code соблюдает эту переменную как кросс-инструментальное соглашение, признанное многими CLI разработчиков |458| `DO_NOT_TRACK` | Установите `1`, чтобы отказаться от телеметрии, с тем же эффектом, что и `DISABLE_TELEMETRY`, в том числе в отношении [получения флагов функций](#features-that-need-feature-flag-fetching). Claude Code читает эту переменную как стандартное логическое значение, поэтому `0` оставляет телеметрию включённой, и учитывает её как межинструментальное соглашение, которое распознают многие CLI для разработчиков |

457| `ENABLE_BETA_TRACING_DETAILED` | Установите на `1` вместе с `BETA_TRACING_ENDPOINT`, чтобы включить [детальное бета-трассирование](/docs/ru/monitoring-usage#traces-beta), которое добавляет атрибуты пролётов, несущие содержимое, и пролёт `claude_code.hook`. Интерактивные сеансы CLI также требуют, чтобы ваша организация была в списке разрешений для бета-версии. Обе переменные игнорируются в [параметрах проекта и локальных параметрах](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) |459| `ENABLE_BETA_TRACING_DETAILED` | Установите `1` вместе с `BETA_TRACING_ENDPOINT`, чтобы включить [подробную бета-трассировку](/docs/ru/monitoring-usage#traces-beta), которая добавляет атрибуты спанов с содержимым и спан `claude_code.hook`. Для интерактивных сессий CLI также требуется, чтобы ваша организация была внесена в список разрешённых для бета-версии. Обе переменные игнорируются в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) |

458| `ENABLE_CLAUDEAI_MCP_SERVERS` | Установите на `false`, чтобы остановить Claude Code от получения [MCP серверов claude.ai](/docs/ru/mcp#use-mcp-servers-from-claude-ai). Включено по умолчанию для вошедших в систему пользователей. Чтобы отключить для каждого проекта или организации, установите [`disableClaudeAiConnectors`](/docs/ru/settings-reference#disableclaudeaiconnectors) в параметрах вместо этого |460| `ENABLE_CLAUDEAI_MCP_SERVERS` | Установите `false`, чтобы Claude Code не получал [MCP-серверы claude.ai](/docs/ru/mcp#use-mcp-servers-from-claude-ai). Включено по умолчанию для пользователей, выполнивших вход. Чтобы отключить для проекта или организации, задайте вместо этого [`disableClaudeAiConnectors`](/docs/ru/settings-reference#disableclaudeaiconnectors) в настройках |

459| `ENABLE_PROMPT_CACHING_1H` | Установите на `1`, чтобы запросить [TTL кэша подсказок](/docs/ru/prompt-caching#cache-lifetime) в 1 час вместо 5 минут по умолчанию. Предназначено для пользователей ключей API, [Amazon Bedrock](/docs/ru/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai), [Microsoft Foundry](/docs/ru/microsoft-foundry) и [Claude Platform on AWS](/docs/ru/claude-platform-on-aws). Пользователи подписки в рамках включённого использования получают TTL в 1 час автоматически на [основном разговоре](/docs/ru/prompt-caching#which-ttl-each-request-gets). Пользователи подписки, использующие [кредиты использования](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), могут установить это, чтобы сохранить TTL в 1 час. Записи кэша на 1 час выставляются по более высокой ставке. Чтобы выбрать TTL для каждого ведра запроса вместо этого, используйте `CLAUDE_CODE_PROMPT_CACHE_TTL` и `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, которые имеют приоритет над этой переменной |461| `ENABLE_PROMPT_CACHING_1H` | Установите `1`, чтобы запрашивать 1-часовой [TTL кэша промптов](/docs/ru/prompt-caching#cache-lifetime) вместо 5 минут по умолчанию. Предназначено для пользователей API-ключей, [Amazon Bedrock](/docs/ru/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai), [Microsoft Foundry](/docs/ru/microsoft-foundry) и [Claude Platform on AWS](/docs/ru/claude-platform-on-aws). Пользователи подписки в пределах включённого использования автоматически получают 1-часовой TTL в [основном диалоге](/docs/ru/prompt-caching#which-ttl-each-request-gets). Пользователи подписки, расходующие [кредиты использования](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), могут задать её, чтобы сохранить 1-часовой TTL. Запись в кэш с 1-часовым TTL тарифицируется по более высокой ставке. Чтобы вместо этого выбирать TTL для каждой группы запросов, используйте `CLAUDE_CODE_PROMPT_CACHE_TTL` и `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, которые имеют приоритет над этой переменной |

460| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Устарело. Используйте `ENABLE_PROMPT_CACHING_1H` вместо этого |462| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Устарела. Используйте вместо неё `ENABLE_PROMPT_CACHING_1H` |

461| `ENABLE_TOOL_SEARCH` | Контролирует [поиск инструментов MCP](/docs/ru/mcp#scale-with-mcp-tool-search). Если не установлено, Claude Code откладывает все инструменты MCP по умолчанию. Он по-прежнему загружает их заранее на моделях Google Cloud's Agent Platform ранее поколения Claude 4.5, на развёртывании Microsoft Foundry, размещённом на Azure, и когда `ANTHROPIC_BASE_URL` указывает на хост, не являющийся первой стороной. `true` всегда откладывает и отправляет заголовок бета-версии, за исключением этих же моделей Agent Platform и развёртываний Microsoft Foundry; запросы не выполняются на прокси, которые не поддерживают `tool_reference`. `auto` загружает заранее, когда определения инструментов подходят в 10% контекста. `auto:N` устанавливает пользовательский порог, такой как `auto:5` для 5%. `false` загружает все инструменты заранее. Значение, которое вы установили сами, игнорируется, когда установлен `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`. До версии 2.1.221 Claude Code отключал поиск инструментов для всех моделей на Google Cloud's Agent Platform, если вы не установили эту переменную на `true` |463| `ENABLE_TOOL_SEARCH` | Управляет [MCP Tool Search](/docs/ru/mcp#scale-with-mcp-tool-search). Если переменная не задана, Claude Code по умолчанию откладывает загрузку всех инструментов MCP. Он по-прежнему загружает их заранее на моделях Google Cloud's Agent Platform, предшествующих поколению Claude 4.5, в развёртывании Microsoft Foundry, размещённом в Azure, а также когда `ANTHROPIC_BASE_URL` указывает на сторонний хост. `true` всегда откладывает загрузку и отправляет бета-заголовок, кроме тех же моделей Agent Platform и развёртываний Microsoft Foundry; запросы завершаются ошибкой на прокси, которые не поддерживают `tool_reference`. `auto` загружает инструменты заранее, когда их определения умещаются в 10% контекста. `auto:N` задаёт собственный порог, например `auto:5` для 5%. `false` загружает все инструменты заранее. Заданное вами значение игнорируется, когда задана `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`. До v2.1.221 Claude Code отключал поиск инструментов для всех моделей на Google Cloud's Agent Platform, если вы не устанавливали для этой переменной значение `true` |

462| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Установите на любое непустое значение, такое как `1`, чтобы заставить Claude Code остановить повторные попытки при повторных ошибках перегрузки для каждой модели, когда не настроена модель резервного варианта. **Установка на `0` или `false` по-прежнему включает это**, в отличие от большинства переменных включения/отключения; отмените установку переменной, чтобы восстановить поведение повтора по умолчанию. Без этого Claude Code останавливает повторные попытки таким образом на моделях, которые он распознаёт как модели Opus, Fable или Mythos, когда вы аутентифицируетесь с помощью ключа API или [сторонним поставщиком](/docs/ru/third-party-integrations), а не подписки Claude. На Claude Code версии 2.1.160 или позже Claude Code переключается на вашу настроенную [цепочку модели резервного варианта](/docs/ru/model-config#fallback-model-chains) при повторных ошибках перегрузки для любой основной модели, поэтому эта переменная не влияет на переключение на модель резервного варианта |464| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Установите любое непустое значение, например `1`, чтобы Claude Code прекращал повторные попытки при повторяющихся ошибках перегрузки для любой модели, когда резервная модель не настроена. **Значение `0` или `false` тоже включает это поведение**, в отличие от большинства переменных включения/выключения; удалите переменную, чтобы восстановить поведение повторных попыток по умолчанию. Без неё Claude Code прекращает повторные попытки таким образом на моделях, которые он распознаёт как модели Opus, Fable или Mythos, когда вы проходите аутентификацию с помощью API-ключа или через [стороннего провайдера](/docs/ru/third-party-integrations), а не по подписке Claude. В Claude Code v2.1.160 или новее Claude Code при повторяющихся ошибках перегрузки для любой основной модели переключается на настроенную вами [цепочку резервных моделей](/docs/ru/model-config#fallback-model-chains), поэтому эта переменная не влияет на переключение на резервную модель |

463| `FORCE_AUTOUPDATE_PLUGINS` | Установите на `1`, чтобы принудительно обновить плагины, даже если основной автоматический обновитель отключен через `DISABLE_AUTOUPDATER` |465| `FORCE_AUTOUPDATE_PLUGINS` | Установите `1`, чтобы принудительно включить автообновление плагинов, даже когда основной механизм автообновления отключён через `DISABLE_AUTOUPDATER` |

464| `FORCE_HYPERLINK` | Установите на `1`, чтобы включить кликабельные гиперссылки OSC 8, когда ваш терминал их поддерживает, но не автоопределён, или `0`, чтобы отключить их. Если не установлено, Claude Code включает гиперссылки только, когда обнаруживает поддержку терминала. Claude Code анализирует это значение как число, а не как логическое значение, поэтому значение, такое как `false`, `no` или `off`, включает гиперссылки, а не отключает их. Значок [статуса PR или merge request](/docs/ru/interactive-mode#pr-review-status) в нижнем колонтитуле отображается как гиперссылка, даже когда Claude Code не может обнаружить поддержку терминала, например, через SSH. Установите `0`, чтобы отобразить значок как простой текст |466| `FORCE_HYPERLINK` | Установите `1`, чтобы включить кликабельные гиперссылки OSC 8, когда ваш терминал их поддерживает, но не определяется автоматически, или `0`, чтобы отключить их. Если переменная не задана, Claude Code включает гиперссылки, только когда обнаруживает их поддержку терминалом. Claude Code разбирает это значение как число, а не как логическое значение, поэтому значение вроде `false`, `no` или `off` включает гиперссылки, а не отключает их. [Значок PR или merge request](/docs/ru/interactive-mode#pr-review-status) в нижней строке отображается как гиперссылка, даже когда Claude Code не может обнаружить поддержку терминала, например при работе по SSH. Установите `0`, чтобы отображать значок как обычный текст |

465| `FORCE_PROMPT_CACHING_5M` | Установите на `1`, чтобы принудительно применить TTL кэша подсказок в 5 минут, даже когда TTL в 1 час в противном случае применялся бы. Переопределяет `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` и параметры `promptCacheTtl` и `subagentPromptCacheTtl` |467| `FORCE_PROMPT_CACHING_5M` | Установите `1`, чтобы принудительно использовать 5-минутный TTL кэша промптов, даже когда иначе применялся бы 1-часовой TTL. Переопределяет `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, а также настройки `promptCacheTtl` и `subagentPromptCacheTtl` |

466| `HTTP_PROXY` | Укажите сервер HTTP прокси для сетевых подключений |468| `HTTP_PROXY` | Задаёт HTTP прокси-сервер для сетевых подключений |

467| `HTTPS_PROXY` | Укажите сервер HTTPS прокси для сетевых подключений |469| `HTTPS_PROXY` | Задаёт HTTPS прокси-сервер для сетевых подключений |

468| `IS_DEMO` | Установите на любое непустое значение, такое как `1`, чтобы включить режим демонстрации: скрывает ваш адрес электронной почты и имя организации из заголовка и вывода `/status`, и пропускает адаптацию. **Установка на `0` или `false` по-прежнему включает режим демонстрации**, в отличие от большинства переменных включения/отключения; отмените установку переменной, чтобы отключить его. Полезно при потоковой передаче или записи сеанса |470| `IS_DEMO` | Установите любое непустое значение, например `1`, чтобы включить демо-режим: скрывает ваш email и название организации в заголовке и выводе `/status`, а также пропускает онбординг. **Значение `0` или `false` тоже включает демо-режим**, в отличие от большинства переменных включения/выключения; удалите переменную, чтобы выключить его. Полезно при трансляции или записи сессии |

469| `MAX_MCP_OUTPUT_TOKENS` | Максимальное количество токенов, разрешённых в ответах инструментов MCP. Claude Code отображает предупреждение, когда вывод превышает 10,000 токенов. Инструменты, которые объявляют [`anthropic/maxResultSizeChars`](/docs/ru/mcp#raise-the-limit-for-a-specific-tool), используют это ограничение символов для текстового содержимого вместо этого, но содержимое изображения из этих инструментов по-прежнему подчиняется этой переменной (по умолчанию: 25000) |471| `MAX_MCP_OUTPUT_TOKENS` | Максимальное количество токенов, допустимое в ответах инструментов MCP. Claude Code показывает предупреждение, когда вывод превышает 10 000 токенов. Инструменты, объявляющие [`anthropic/maxResultSizeChars`](/docs/ru/mcp#raise-the-limit-for-a-specific-tool), вместо этого используют для текстового содержимого этот лимит символов, но на изображения от этих инструментов по-прежнему распространяется эта переменная (по умолчанию: 25000) |

470| `MAX_STRUCTURED_OUTPUT_RETRIES` | Количество попыток Claude Code позволяет, когда ответ модели не выполняет проверку против [`--json-schema`](/docs/ru/cli-reference#cli-flags) в неинтерактивном режиме с флагом `-p`; после такого количества неудачных попыток без действительного вывода запуск не выполняется. То же ограничение применяется, когда структурированный вывод подагента [workflow](/docs/ru/workflows) не выполняет проверку. По умолчанию 5, первая попытка плюс четыре повтора |472| `MAX_STRUCTURED_OUTPUT_RETRIES` | Количество попыток, которое Claude Code допускает, когда ответ модели не проходит проверку по [`--json-schema`](/docs/ru/cli-reference#cli-flags) в неинтерактивном режиме с флагом `-p`; после стольких неудачных попыток без корректного вывода запуск завершается ошибкой. Тот же предел применяется, когда структурированный вывод субагента [рабочего процесса](/docs/ru/workflows) не проходит проверку. По умолчанию 5: первая попытка плюс четыре повторные попытки |

471| `MAX_THINKING_TOKENS` | Фиксированный бюджет токенов для [расширенного мышления](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code ограничивает его на один токен ниже максимального выходного токена запроса и никогда ниже 1,024. См. `CLAUDE_CODE_MAX_OUTPUT_TOKENS` для того, как устанавливается это ограничение. Если не установлено и мышление включено, модели с [адаптивным рассуждением](/docs/ru/model-config#adjust-effort-level) выбирают свою собственную глубину мышления, и другие модели используют ограничение. Установите на `0`, чтобы отключить мышление на API Anthropic, за исключением Opus 5.5, Sonnet 5.5 и моделей Fable, которые не могут иметь отключённое мышление. На [сторонних поставщиках](/docs/ru/third-party-integrations) `0` опускает параметр `thinking` вместо этого. С отключённым мышлением на API Anthropic Claude Code отправляет усилие `high` вместо более высокого уровня на моделях, которые он знает [не принимают эту комбинацию](/docs/ru/errors#effort-isnt-available-with-thinking-turned-off), такие как Opus 5. Claude Code игнорирует ненулевые значения на моделях адаптивного рассуждения, за исключением моделей, где `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` отключает адаптивное рассуждение |473| `MAX_THINKING_TOKENS` | Фиксированный бюджет токенов для [расширенного мышления](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code ограничивает его значением на один токен меньше максимального количества выходных токенов запроса и никогда не опускает ниже 1024. О том, как задаётся этот лимит, см. `CLAUDE_CODE_MAX_OUTPUT_TOKENS`. Если переменная не задана и мышление включено, модели с [адаптивным рассуждением](/docs/ru/model-config#adjust-effort-level) сами выбирают глубину мышления, а другие модели используют предел. Установите `0`, чтобы отключить мышление в Anthropic API, кроме Opus 5.5, Sonnet 5.5 и моделей Fable, у которых мышление нельзя отключить. У [сторонних провайдеров](/docs/ru/third-party-integrations) `0` вместо этого опускает параметр `thinking`. Когда мышление в Anthropic API отключено, Claude Code отправляет effort `high` вместо более высокого уровня моделям, которые, как ему известно, [не принимают такую комбинацию](/docs/ru/errors#effort-isnt-available-with-thinking-turned-off), например Opus 5. Claude Code игнорирует ненулевые значения на моделях с адаптивным рассуждением, кроме моделей, на которых `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` отключает адаптивное рассуждение |

472| `MCP_CLIENT_SECRET` | Секрет клиента OAuth для MCP серверов, которые требуют [предварительно настроенные учётные данные](/docs/ru/mcp#use-pre-configured-oauth-credentials). Избегает интерактивного запроса при добавлении сервера с `--client-secret` |474| `MCP_CLIENT_SECRET` | Секрет клиента OAuth для MCP-серверов, которым требуются [предварительно настроенные учётные данные](/docs/ru/mcp#use-pre-configured-oauth-credentials). Позволяет избежать интерактивного запроса при добавлении сервера с `--client-secret` |

473| `MCP_CONNECTION_NONBLOCKING` | Контролирует, ждёт ли запуск MCP серверов подключения перед первым запросом. MCP запуск неблокирующий по умолчанию: серверы подключаются в фоне и их инструменты становятся доступными по мере завершения. Установите на `0`, чтобы Claude Code ждал подключения серверов перед первым запросом. Серверы, настроенные с [`alwaysLoad: true`](/docs/ru/mcp#exempt-a-server-from-deferral), по-прежнему заставляют запуск ждать независимо, за исключением случаев, когда обслуживаются из [кэша обнаружения](/docs/ru/mcp#server-status-detail), так как их инструменты должны присутствовать при построении первой подсказки. В неинтерактивном режиме (`-p`) без `--input-format stream-json` Claude Code также ждёт всё ещё ожидающих серверов перед первым ходом независимо от этой переменной. Когда вы передаёте [`--mcp-config`](/docs/ru/cli-reference#cli-flags) явно, ожидание имеет более длительный крайний срок; см. запись этого флага для исключения кэшированного сервера |475| `MCP_CONNECTION_NONBLOCKING` | Определяет, ждёт ли запуск подключения MCP-серверов перед первым запросом. Запуск MCP по умолчанию неблокирующий: серверы подключаются в фоне, и их инструменты становятся доступны по мере завершения подключения. Установите `0`, чтобы Claude Code ждал подключения серверов перед первым запросом. Серверы, настроенные с [`alwaysLoad: true`](/docs/ru/mcp#exempt-a-server-from-deferral), в любом случае заставляют запуск ждать, кроме случаев, когда они обслуживаются из [кэша обнаружения](/docs/ru/mcp#server-status-detail), поскольку их инструменты должны присутствовать при построении первого промпта. В неинтерактивном режиме (`-p`) без `--input-format stream-json` Claude Code также ждёт ещё не подключившиеся серверы перед первым ходом независимо от этой переменной. Когда вы явно передаёте [`--mcp-config`](/docs/ru/cli-reference#cli-flags), у ожидания более длинный крайний срок; об исключении для кэшированных серверов см. описание этого флага |

474| `MCP_CONNECT_TIMEOUT_MS` | Как долго блокирующий запуск MCP ждёт, в миллисекундах, пакета подключения перед снимком списка инструментов (по умолчанию: 5000). Применяется, когда `MCP_CONNECTION_NONBLOCKING=0` или для серверов, отмеченных [`alwaysLoad: true`](/docs/ru/mcp#exempt-a-server-from-deferral). Серверы, всё ещё ожидающие на крайнем сроке, продолжают подключаться в фоне. Отличается от `MCP_TIMEOUT`, который ограничивает попытку подключения отдельного сервера |476| `MCP_CONNECT_TIMEOUT_MS` | Сколько миллисекунд блокирующий запуск MCP ждёт пакет подключений, прежде чем зафиксировать снимок списка инструментов (по умолчанию: 5000). Применяется при `MCP_CONNECTION_NONBLOCKING=0` или для серверов, помеченных [`alwaysLoad: true`](/docs/ru/mcp#exempt-a-server-from-deferral). Серверы, не успевшие подключиться к крайнему сроку, продолжают подключаться в фоне. Отличается от `MCP_TIMEOUT`, которая ограничивает отдельную попытку подключения сервера |

475| `MCP_DISCOVERY_CACHE` | Включает или отключает [кэш обнаружения MCP](/docs/ru/mcp#server-status-detail). С включённым кэшем удалённый HTTP или SSE сервер, который вы использовали раньше, может показать [статус `cached`](/docs/ru/mcp#server-status-detail), и Claude Code подключает его при первом вызове инструмента вместо запуска. Кэш отключен по умолчанию, если постепенное развёртывание не включило его для вашей учётной записи. Установите на `1`, чтобы включить его, или `0`, чтобы сохранить его отключённым, даже если развёртывание включило его. До версии 2.1.238 кэш был включен по умолчанию. Статус `cached` требует Claude Code версии 2.1.221 или позже |477| `MCP_DISCOVERY_CACHE` | Включает или отключает [кэш обнаружения MCP](/docs/ru/mcp#server-status-detail). При включённом кэше удалённый HTTP- или SSE-сервер, который вы уже использовали, может показывать [статус `cached`](/docs/ru/mcp#server-status-detail), и Claude Code подключает его при первом вызове инструмента, а не при запуске. Кэш по умолчанию отключён, если только постепенное развёртывание не включило его для вашего аккаунта. Установите `1`, чтобы включить его, или `0`, чтобы оставить его выключенным, даже если развёртывание его включило. До v2.1.238 кэш был включён по умолчанию. Статус `cached` требует Claude Code v2.1.221 или новее |

476| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Максимальный возраст в секундах записи [кэша обнаружения](/docs/ru/mcp#server-status-detail) (по умолчанию: 14400 или 4 часа). При запуске, где запись старше этого, Claude Code отбрасывает её и подключает сервер при запуске, как при отключённом кэше. Claude Code ограничивает значение на 7 дней. До версии 2.1.238 значение по умолчанию было 86400 или 24 часа, и Claude Code не ограничивал значение |478| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Максимальный возраст в секундах записи [кэша обнаружения](/docs/ru/mcp#server-status-detail) (по умолчанию: 14400, или 4 часа). Если при запуске запись оказывается старше этого значения, Claude Code отбрасывает её и подключает сервер при запуске, как при выключенном кэше. Claude Code ограничивает значение 7 днями. До v2.1.238 значение по умолчанию составляло 86400, или 24 часа, и Claude Code не ограничивал значение |

477| `MCP_DISCOVERY_CACHE_STRIKES` | При запуске, где запись [кэша обнаружения](/docs/ru/mcp#server-status-detail) старше `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code обновляет её в фоне. Эта переменная устанавливает, сколько обновлений подряд может не выполниться перед тем, как Claude Code отбросит запись и подключит сервер при следующем запуске вместо этого (по умолчанию: 1). Повысьте это, если ваше сетевое подключение иногда отключается, чтобы одно неудачное обновление не отбросило запись. Требует Claude Code версии 2.1.238 или позже |479| `MCP_DISCOVERY_CACHE_STRIKES` | Если при запуске запись [кэша обнаружения](/docs/ru/mcp#server-status-detail) оказывается старше `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code обновляет её в фоне. Эта переменная задаёт, сколько обновлений подряд может завершиться неудачей, прежде чем Claude Code отбросит запись и вместо этого подключит сервер при следующем запуске (по умолчанию: 1). Увеличьте её, если ваше сетевое подключение время от времени обрывается, чтобы одно неудачное обновление не приводило к удалению записи. Требуется Claude Code v2.1.238 или новее |

478| `MCP_DISCOVERY_CACHE_TTL_S` | Секунды, в течение которых Claude Code использует запись [кэша обнаружения](/docs/ru/mcp#server-status-detail) без обновления (по умолчанию: 900). При запуске, где запись старше этого, Claude Code по-прежнему использует её, но обновляет её в фоне. После того, как запись старше `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code отбрасывает её вместо этого. Claude Code ограничивает значение на `MCP_DISCOVERY_CACHE_MAX_STALE_S`, что составляет 4 часа по умолчанию. До версии 2.1.238 Claude Code не ограничивал значение |480| `MCP_DISCOVERY_CACHE_TTL_S` | Количество секунд, в течение которых Claude Code использует запись [кэша обнаружения](/docs/ru/mcp#server-status-detail) без обновления (по умолчанию: 900). Если при запуске запись оказывается старше этого значения, Claude Code всё равно использует её, но обновляет в фоне. Когда запись становится старше `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code вместо этого отбрасывает её. Claude Code ограничивает значение величиной `MCP_DISCOVERY_CACHE_MAX_STALE_S`, которая по умолчанию составляет 4 часа. До v2.1.238 Claude Code не ограничивал значение |

479| `MCP_OAUTH_CALLBACK_PORT` | Фиксированный порт для обратного вызова OAuth, как альтернатива `--callback-port` при добавлении MCP сервера с [предварительно настроенными учётными данными](/docs/ru/mcp#use-pre-configured-oauth-credentials) |481| `MCP_OAUTH_CALLBACK_PORT` | Фиксированный порт для обратного вызова перенаправления OAuth, альтернатива `--callback-port` при добавлении MCP-сервера с [предварительно настроенными учётными данными](/docs/ru/mcp#use-pre-configured-oauth-credentials) |

480| `MCP_PROTOCOL_NEGOTIATION` | Только на [v2 MCP клиентском рантайме](/docs/ru/mcp#mcp-client-runtimes), зондирует ли Claude Code серверы для пересмотра протокола MCP 2026-07-28. Установите `auto`, чтобы зондировать HTTP, соединители claude.ai и серверы stdio; сервер, который не отвечает на зонд, подключается на более раннем протоколе вместо этого, как серверы SSE и WebSocket всегда делают. Установите `legacy`, чтобы пропустить зонд для каждого сервера. Без переменной Claude Code зондирует HTTP серверы и также зондирует серверы соединителей claude.ai в сеансах, где он [получает флаги функций](#features-that-need-feature-flag-fetching). Любое другое значение игнорируется с предупреждением в журнале отладки. Требует Claude Code версии 2.1.221 или позже |482| `MCP_PROTOCOL_NEGOTIATION` | Только в [среде выполнения клиента MCP v2](/docs/ru/mcp#mcp-client-runtimes): определяет, проверяет ли Claude Code поддержку серверами ревизии протокола MCP 2026-07-28. Установите `auto`, чтобы проверять HTTP-серверы, коннекторы claude.ai и stdio-серверы, или `legacy`, чтобы не проверять ни один. Если переменная не задана, Claude Code проверяет серверы, описанные в разделе [Среды выполнения клиента MCP](/docs/ru/mcp#mcp-client-runtimes). Любое другое значение игнорируется с предупреждением в логе отладки. Требуется Claude Code v2.1.221 или новее |

481| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Максимальное количество удалённых MCP серверов (HTTP/SSE) для подключения параллельно при запуске (по умолчанию: 20) |483| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Максимальное количество удалённых MCP-серверов (HTTP/SSE), подключаемых параллельно при запуске (по умолчанию: 20) |

482| `MCP_SDK_GENERATION` | Закрепить, какой [MCP клиентский рантайм](/docs/ru/mcp#mcp-client-runtimes) этот процесс подключает к MCP серверам: `v1`, построенный на MCP TypeScript SDK 1.x, или `v2`, построенный на [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Без переменной Claude Code использует v2, начиная с версий, перечисленных в этом разделе. На Claude Code версии 2.1.221 или позже рантайм v2 проверяет издателя, который MCP OAuth сервер возвращает в своём ответе авторизации, и не выполняет вход с ошибкой, которая начинается с `Issuer mismatch in authorization response`, когда он не совпадает. Рантайм v1 не выполняет эту проверку. Если вы установите неузнанное значение, Claude Code игнорирует его и пишет предупреждение в журнал отладки. Claude Code читает значение один раз за процесс. Требует Claude Code версии 2.1.218 или позже |484| `MCP_SDK_GENERATION` | Закрепляет, с помощью какой [среды выполнения клиента MCP](/docs/ru/mcp#mcp-client-runtimes) этот процесс подключается к MCP-серверам: `v1`, построенной на MCP TypeScript SDK 1.x, или `v2`, построенной на [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Без этой переменной Claude Code использует v2, начиная с версий, перечисленных в том разделе. В Claude Code v2.1.221 или новее среда выполнения v2 проверяет издателя (issuer), которого сервер OAuth MCP возвращает в ответе авторизации, и при несовпадении завершает вход ошибкой, начинающейся с `Issuer mismatch in authorization response`. Среда выполнения v1 эту проверку не выполняет. Если вы зададите нераспознанное значение, Claude Code проигнорирует его и запишет предупреждение в лог отладки. Claude Code читает значение один раз за процесс. Требуется Claude Code v2.1.218 или новее |

483| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Максимальное количество локальных MCP серверов (stdio) для подключения параллельно при запуске (по умолчанию: 3) |485| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Максимальное количество локальных MCP-серверов (stdio), подключаемых параллельно при запуске (по умолчанию: 3) |

484| `MCP_TIMEOUT` | Таймаут в миллисекундах для запуска MCP сервера (по умолчанию: 30000 или 30 секунд) |486| `MCP_TIMEOUT` | Таймаут в миллисекундах для запуска MCP-сервера (по умолчанию: 30000, или 30 секунд) |

485| `MCP_TOOL_TIMEOUT` | Таймаут в миллисекундах для выполнения инструмента MCP (по умолчанию: 100000000, примерно 28 часов). Для HTTP, SSE или сервера соединителя claude.ai каждый запрос также истекает после 60 секунд по умолчанию; установите эту переменную или сервер для каждого `timeout` выше 60000, чтобы повысить это ограничение для каждого запроса. Более низкое значение по-прежнему сокращает общий таймаут выполнения инструмента, но оставляет ограничение для каждого запроса на 60 секунд. Серверы Stdio и WebSocket не имеют таймера для каждого запроса. Поле `timeout` для каждого сервера в `.mcp.json` переопределяет это для этого сервера. Сервер для каждого сервера `timeout` по крайней мере 1000 также устанавливает минимальное окно простоя для вызовов инструментов этого сервера, поэтому `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` никогда не прерывает их раньше; этот пол требует Claude Code версии 2.1.203 или позже. Для переменной окружения значения ниже 1000 ограничены одной секундой; для поля для каждого сервера значения ниже 1000 игнорируются |487| `MCP_TOOL_TIMEOUT` | Таймаут в миллисекундах для выполнения инструмента MCP (по умолчанию: 100000000, около 28 часов). Для HTTP-, SSE-сервера или сервера коннектора claude.ai каждый запрос также по умолчанию завершается по таймауту через 60 секунд; задайте эту переменную или параметр `timeout` для конкретного сервера больше 60000, чтобы увеличить этот лимит на запрос. Меньшее значение по-прежнему сокращает общий таймаут выполнения инструмента, но оставляет лимит на запрос равным 60 секундам. У серверов stdio и WebSocket нет таймера на запрос. Поле `timeout` для конкретного сервера в `.mcp.json` переопределяет это значение для данного сервера. Значение `timeout` для сервера не менее 1000 также задаёт минимальное окно простоя для вызовов инструментов этого сервера, поэтому `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` никогда не прерывает их раньше; этот нижний предел требует Claude Code v2.1.203 или новее. Для переменной окружения значения меньше 1000 повышаются до одной секунды; для поля сервера значения меньше 1000 игнорируются |

486| `NO_PROXY` | Список доменов и IP, на которые запросы будут выданы напрямую, обходя прокси |488| `NO_PROXY` | Список доменов и IP-адресов, запросы к которым отправляются напрямую, в обход прокси |

487| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Стандартное ограничение SDK OpenTelemetry на длину значения атрибута. Claude Code ограничивает атрибуты телеметрии, несущие содержимое, на меньшее из этого и `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, поэтому маркер усечения остаётся в пределах ограничения SDK. Claude Code читает варианты `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` и `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` так же и применяется наименьшее установленное значение ко всем сигналам. Требует Claude Code версии 2.1.214 или позже. См. [Мониторинг](/docs/ru/monitoring-usage#common-configuration-variables) |489| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Стандартный лимит OpenTelemetry SDK на длину значения атрибута. Claude Code ограничивает атрибуты телеметрии с содержимым меньшим из этого значения и `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, чтобы маркер усечения оставался в пределах лимита SDK. Claude Code таким же образом читает варианты `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` и `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT`, и наименьшее заданное значение применяется ко всем сигналам. Требуется Claude Code v2.1.214 или новее. См. [Мониторинг](/docs/ru/monitoring-usage#common-configuration-variables) |

488| `OTEL_LOG_ASSISTANT_RESPONSES` | Установите на `1`, чтобы включить текст ответа модели на событиях журнала OpenTelemetry `assistant_response`. Если не установлено, используется значение `OTEL_LOG_USER_PROMPTS`. Установите на `0`, чтобы сохранить ответы отредактированными, даже если установлен `OTEL_LOG_USER_PROMPTS`. Установите это в вашей оболочке, пользовательских параметрах или управляемых параметрах. Игнорируется в [параметрах проекта и локальных параметрах](/docs/ru/settings-reference#variables-claude-code-ignores-in-env). Требует Claude Code версии 2.1.193 или позже. См. [Мониторинг](/docs/ru/monitoring-usage#assistant-response-event) |490| `OTEL_LOG_ASSISTANT_RESPONSES` | Установите `1`, чтобы включать текст ответа модели в события логов OpenTelemetry `assistant_response`. Если переменная не задана, Claude Code использует вместо неё значение `OTEL_LOG_USER_PROMPTS`. Установите `0`, чтобы ответы оставались скрытыми, даже когда задана `OTEL_LOG_USER_PROMPTS`. Задайте её в оболочке, пользовательских настройках или управляемых настройках. Игнорируется в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env). Требуется Claude Code v2.1.193 или новее. См. [Мониторинг](/docs/ru/monitoring-usage#assistant-response-event) |

489| `OTEL_LOG_MANAGED_SETTINGS` | Установите на `1`, чтобы добавить отредактированные управляемые параметры и дайджест SHA-256 параметров перед редактированием к событиям журнала OpenTelemetry `managed_settings_resolved`. Отключено по умолчанию. Установите это в вашей оболочке, пользовательских параметрах или управляемых параметрах; значение в параметрах проекта или локальных параметрах не включает это. Требует Claude Code версии 2.1.274 или позже. См. [Мониторинг](/docs/ru/monitoring-usage#managed-settings-resolved-event) |491| `OTEL_LOG_MANAGED_SETTINGS` | Установите `1`, чтобы добавлять управляемые настройки со скрытыми конфиденциальными данными и SHA-256-дайджест настроек до скрытия в события логов OpenTelemetry `managed_settings_resolved`. По умолчанию отключено. Задайте её в оболочке, пользовательских настройках или управляемых настройках; значение в настройках проекта или локальных настройках её не включает. Требуется Claude Code v2.1.274 или новее. См. [Мониторинг](/docs/ru/monitoring-usage#managed-settings-resolved-event) |

490| `OTEL_LOG_RAW_API_BODIES` | Выдавать JSON запроса и ответа API Anthropic Messages как события журнала `api_request_body` / `api_response_body`. Установите на `1` для встроенных тел, усечённых на пределе содержимого, или `file:<dir>`, чтобы написать неусечённые тела на диск и выдать путь `body_ref` вместо этого. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` настраивает предел содержимого, 60 КБ по умолчанию. Отключено по умолчанию; тела включают всю историю разговора. Установите это в вашей оболочке, пользовательских параметрах или управляемых параметрах. Игнорируется в [параметрах проекта и локальных параметрах](/docs/ru/settings-reference#variables-claude-code-ignores-in-env). См. [Мониторинг](/docs/ru/monitoring-usage#api-request-body-event) |492| `OTEL_LOG_RAW_API_BODIES` | Отправляет JSON запросов и ответов Anthropic Messages API как события логов `api_request_body` / `api_response_body`. Установите `1` для встроенных тел, усечённых по лимиту содержимого, или `file:<dir>`, чтобы записывать неусечённые тела на диск и вместо этого отправлять путь `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` задаёт лимит содержимого, по умолчанию 60 КБ. По умолчанию отключено; тела включают всю историю диалога. Задайте её в оболочке, пользовательских настройках или управляемых настройках. Игнорируется в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env). См. [Мониторинг](/docs/ru/monitoring-usage#api-request-body-event) |

491| `OTEL_LOG_TOOL_CONTENT` | Установите на `1`, чтобы включить содержимое инструмента в событие пролёта OpenTelemetry `tool.output`. Атрибуты пролётов несут содержимое инструмента под [их собственными воротами](/docs/ru/monitoring-usage#new-context-gates). Требует [трассировку](/docs/ru/monitoring-usage#traces-beta). Отключено по умолчанию для защиты чувствительных данных. Установите это в вашей оболочке, пользовательских параметрах или управляемых параметрах. Игнорируется в [параметрах проекта и локальных параметрах](/docs/ru/settings-reference#variables-claude-code-ignores-in-env), кроме значений отключения, которые описывает этот раздел. См. [Мониторинг](/docs/ru/monitoring-usage#tool-output-span-event) |493| `OTEL_LOG_TOOL_CONTENT` | Установите `1`, чтобы включать содержимое инструментов в событие спана OpenTelemetry `tool.output`. Атрибуты спанов передают содержимое инструментов в соответствии с [собственными ограничениями](/docs/ru/monitoring-usage#new-context-gates). Требуется [трассировка](/docs/ru/monitoring-usage#traces-beta). По умолчанию отключено для защиты конфиденциальных данных. Задайте её в оболочке, пользовательских настройках или управляемых настройках. Игнорируется в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env), за исключением значений отключения, описанных в том разделе. См. [Мониторинг](/docs/ru/monitoring-usage#tool-output-span-event) |

492| `OTEL_LOG_TOOL_DETAILS` | Установите на `1`, чтобы включить аргументы входа инструмента, имена MCP серверов, имена workflows, созданные пользователем, необработанные строки ошибок при отказах инструментов, категорию отказа `category` на событиях `api_refusal`, реальные имена агентов, skills, плагинов и MCP серверов на [метриках затрат и токенов](/docs/ru/monitoring-usage#cost-counter) и другие детали инструментов в метриках, трассировках и журналах OpenTelemetry. Отключено по умолчанию для защиты PII. Установите это в вашей оболочке, пользовательских параметрах или управляемых параметрах. Игнорируется в [параметрах проекта и локальных параметрах](/docs/ru/settings-reference#variables-claude-code-ignores-in-env), кроме значений отключения, которые описывает этот раздел. См. [Мониторинг](/docs/ru/monitoring-usage) |494| `OTEL_LOG_TOOL_DETAILS` | Установите `1`, чтобы включать входные аргументы инструментов; имена MCP-серверов; имена пользовательских рабочих процессов; необработанные строки ошибок при сбоях инструментов; `category` отказа в событиях `api_refusal`; реальные имена агентов, скиллов, плагинов и MCP-серверов в [метриках стоимости и токенов](/docs/ru/monitoring-usage#cost-counter); и другие сведения об инструментах в метриках, трассировках и логах OpenTelemetry. По умолчанию отключено для защиты персональных данных (PII). Задайте её в оболочке, пользовательских настройках или управляемых настройках. Игнорируется в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env), за исключением значений отключения, описанных в том разделе. См. [Мониторинг](/docs/ru/monitoring-usage) |

493| `OTEL_LOG_USER_PROMPTS` | Установите на `1`, чтобы включить текст подсказки пользователя в трассировки и журналы OpenTelemetry. Отключено по умолчанию (подсказки отредактированы). Установите это в вашей оболочке, пользовательских параметрах или управляемых параметрах. Игнорируется в [параметрах проекта и локальных параметрах](/docs/ru/settings-reference#variables-claude-code-ignores-in-env), кроме значений отключения, которые описывает этот раздел. См. [Мониторинг](/docs/ru/monitoring-usage) |495| `OTEL_LOG_USER_PROMPTS` | Установите `1`, чтобы включать текст пользовательских промптов в трассировки и логи OpenTelemetry. По умолчанию отключено (промпты скрываются). Задайте её в оболочке, пользовательских настройках или управляемых настройках. Игнорируется в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env), за исключением значений отключения, описанных в том разделе. См. [Мониторинг](/docs/ru/monitoring-usage) |

494| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Установите на `false`, чтобы исключить UUID учётной записи из атрибутов метрик (по умолчанию: включено). См. [Мониторинг](/docs/ru/monitoring-usage) |496| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Установите `false`, чтобы исключить UUID аккаунта из атрибутов метрик (по умолчанию: включается). См. [Мониторинг](/docs/ru/monitoring-usage) |

495| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Установите на `true`, чтобы включить точку входа сеанса в атрибуты метрик (по умолчанию: исключено). Добавлено в версии 2.1.152. См. [Мониторинг](/docs/ru/monitoring-usage) |497| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Установите `true`, чтобы включать точку входа сессии в атрибуты метрик (по умолчанию: исключается). Добавлено в v2.1.152. См. [Мониторинг](/docs/ru/monitoring-usage) |

496| `OTEL_METRICS_INCLUDE_REPOSITORY` | Установите на `true`, чтобы пометить метрики и события OpenTelemetry атрибутами `vcs.*`, определяющими репозиторий сеанса (по умолчанию: исключено). Требует Claude Code версии 2.1.269 или позже. См. [Атрибуты репозитория](/docs/ru/monitoring-usage#repository-attributes) |498| `OTEL_METRICS_INCLUDE_REPOSITORY` | Установите `true`, чтобы помечать метрики и события OpenTelemetry атрибутами `vcs.*`, идентифицирующими репозиторий сессии (по умолчанию: исключаются). Требуется Claude Code v2.1.269 или новее. См. [Атрибуты репозитория](/docs/ru/monitoring-usage#repository-attributes) |

497| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Начиная с версии 2.1.161, Claude Code присоединяет ключи `OTEL_RESOURCE_ATTRIBUTES` к меткам точек данных метрик. Установите на `false`, чтобы исключить их (по умолчанию: включено). См. [Мониторинг](/docs/ru/monitoring-usage#multi-team-organization-support) |499| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Начиная с v2.1.161, Claude Code добавляет ключи `OTEL_RESOURCE_ATTRIBUTES` к меткам точек данных метрик. Установите `false`, чтобы исключить их (по умолчанию: включаются). См. [Мониторинг](/docs/ru/monitoring-usage#multi-team-organization-support) |

498| `OTEL_METRICS_INCLUDE_SESSION_ID` | Установите на `false`, чтобы исключить ID сеанса из атрибутов метрик (по умолчанию: включено). См. [Мониторинг](/docs/ru/monitoring-usage) |500| `OTEL_METRICS_INCLUDE_SESSION_ID` | Установите `false`, чтобы исключить ID сессии из атрибутов метрик (по умолчанию: включается). См. [Мониторинг](/docs/ru/monitoring-usage) |

499| `OTEL_METRICS_INCLUDE_VERSION` | Установите на `true`, чтобы включить версию Claude Code в атрибуты метрик (по умолчанию: исключено). См. [Мониторинг](/docs/ru/monitoring-usage) |501| `OTEL_METRICS_INCLUDE_VERSION` | Установите `true`, чтобы включать версию Claude Code в атрибуты метрик (по умолчанию: исключается). См. [Мониторинг](/docs/ru/monitoring-usage) |

500| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Переопределить бюджет символов для метаданных skill, показанных [инструменту Skill](/docs/ru/skills#control-who-invokes-a-skill). Бюджет масштабируется динамически на 1% окна контекста с резервным значением 8,000 символов. Устаревшее имя сохранено для обратной совместимости |502| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Переопределяет бюджет символов для метаданных скиллов, показываемых [инструменту Skill](/docs/ru/skills#control-who-invokes-a-skill). Бюджет динамически масштабируется и составляет 1% контекстного окна, с резервным значением 8000 символов. Устаревшее имя сохранено для обратной совместимости |

501| `TASK_MAX_OUTPUT_LENGTH` | Удалено в версии 2.1.277 и теперь не работает, вместе с инструментом `TaskOutput`, который он размер. Ранее устанавливал максимальное количество символов вывода [фоновой задачи](/docs/ru/tools-reference#background-commands), которое инструмент `TaskOutput` сохранял. Claude читает вывод фоновой задачи с помощью `Read` вместо этого |503| `TASK_MAX_OUTPUT_LENGTH` | Удалена в v2.1.277 и теперь ни на что не влияет, вместе с инструментом `TaskOutput`, размер вывода которого она задавала. Ранее задавала максимальное количество символов вывода [фоновой задачи](/docs/ru/tools-reference#background-commands), которое сохранял инструмент `TaskOutput`. Теперь Claude читает файл вывода фоновой задачи с помощью `Read` |

502| `USE_BUILTIN_RIPGREP` | Установите на `0`, чтобы использовать установленный в системе `rg` вместо `rg`, включённого в Claude Code |504| `USE_BUILTIN_RIPGREP` | Установите `0`, чтобы использовать установленный в системе `rg` вместо `rg`, входящего в состав Claude Code |

503| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Переопределить регион для Claude 3.5 Haiku при использовании Google Cloud's Agent Platform |505| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Переопределяет регион для Claude 3.5 Haiku при использовании Google Cloud's Agent Platform |

504| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Переопределить регион для Claude 3.5 Sonnet при использовании Google Cloud's Agent Platform |506| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Переопределяет регион для Claude 3.5 Sonnet при использовании Google Cloud's Agent Platform |

505| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Переопределить регион для Claude 3.7 Sonnet при использовании Google Cloud's Agent Platform |507| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Переопределяет регион для Claude 3.7 Sonnet при использовании Google Cloud's Agent Platform |

506| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Переопределить регион для Claude 4.0 Opus при использовании Google Cloud's Agent Platform |508| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Переопределяет регион для Claude 4.0 Opus при использовании Google Cloud's Agent Platform |

507| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Переопределить регион для Claude 4.0 Sonnet при использовании Google Cloud's Agent Platform |509| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Переопределяет регион для Claude 4.0 Sonnet при использовании Google Cloud's Agent Platform |

508| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Переопределить регион для Claude 4.1 Opus при использовании Google Cloud's Agent Platform |510| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Переопределяет регион для Claude 4.1 Opus при использовании Google Cloud's Agent Platform |

509| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Переопределить регион для Claude Opus 4.5 при использовании Google Cloud's Agent Platform |511| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Переопределяет регион для Claude Opus 4.5 при использовании Google Cloud's Agent Platform |

510| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Переопределить регион для Claude Sonnet 4.5 при использовании Google Cloud's Agent Platform |512| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Переопределяет регион для Claude Sonnet 4.5 при использовании Google Cloud's Agent Platform |

511| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Переопределить регион для Claude Opus 4.6 при использовании Google Cloud's Agent Platform |513| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Переопределяет регион для Claude Opus 4.6 при использовании Google Cloud's Agent Platform |

512| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Переопределить регион для Claude Sonnet 4.6 при использовании Google Cloud's Agent Platform |514| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Переопределяет регион для Claude Sonnet 4.6 при использовании Google Cloud's Agent Platform |

513| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Переопределить регион для Claude Opus 4.7 при использовании Google Cloud's Agent Platform |515| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Переопределяет регион для Claude Opus 4.7 при использовании Google Cloud's Agent Platform |

514| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Переопределить регион для Claude Opus 4.8 при использовании Google Cloud's Agent Platform |516| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Переопределяет регион для Claude Opus 4.8 при использовании Google Cloud's Agent Platform |

515| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Переопределить регион для Claude Opus 5.5 при использовании Google Cloud's Agent Platform. Добавлено в версии 2.1.280 |517| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Переопределяет регион для Claude Opus 5.5 при использовании Google Cloud's Agent Platform. Добавлено в v2.1.280 |

516| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Переопределить регион для Claude Sonnet 5.5 при использовании Google Cloud's Agent Platform. Добавлено в версии 2.1.284 |518| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Переопределяет регион для Claude Sonnet 5.5 при использовании Google Cloud's Agent Platform. Добавлено в v2.1.284 |

517| `VERTEX_REGION_CLAUDE_5_OPUS` | Переопределить регион для Claude Opus 5 при использовании Google Cloud's Agent Platform. Добавлено в версии 2.1.219 |519| `VERTEX_REGION_CLAUDE_5_OPUS` | Переопределяет регион для Claude Opus 5 при использовании Google Cloud's Agent Platform. Добавлено в v2.1.219 |

518| `VERTEX_REGION_CLAUDE_5_SONNET` | Переопределить регион для Claude Sonnet 5 при использовании Google Cloud's Agent Platform. Добавлено в версии 2.1.197 |520| `VERTEX_REGION_CLAUDE_5_SONNET` | Переопределяет регион для Claude Sonnet 5 при использовании Google Cloud's Agent Platform. Добавлено в v2.1.197 |

519| `VERTEX_REGION_CLAUDE_FABLE_5` | Переопределить регион для Claude Fable 5 при использовании Google Cloud's Agent Platform. Добавлено в версии 2.1.170 |521| `VERTEX_REGION_CLAUDE_FABLE_5` | Переопределяет регион для Claude Fable 5 при использовании Google Cloud's Agent Platform. Добавлено в v2.1.170 |

520| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Переопределить регион для Claude Fable 5.1 при использовании Google Cloud's Agent Platform. Добавлено в версии 2.1.257 |522| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Переопределяет регион для Claude Fable 5.1 при использовании Google Cloud's Agent Platform. Добавлено в v2.1.257 |

521| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Переопределить регион для Claude Haiku 4.5 при использовании Google Cloud's Agent Platform |523| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Переопределяет регион для Claude Haiku 4.5 при использовании Google Cloud's Agent Platform |

522 524 

523Также поддерживаются стандартные переменные экспортёра OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` и варианты, специфичные для сигнала). См. [Мониторинг](/docs/ru/monitoring-usage) для деталей конфигурации.525Также поддерживаются стандартные переменные экспортёров OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` и варианты для отдельных сигналов). Подробности настройки см. в разделе [Мониторинг](/docs/ru/monitoring-usage).

524 526 

525Установите `CLAUDE_CODE_ENABLE_TELEMETRY` и переменные OpenTelemetry, которые включают экспорт, выбирают его назначение или захватывают содержимое в вашей оболочке, пользовательских параметрах или управляемых параметрах. Claude Code [игнорирует их в параметрах проекта и локальных параметрах](/docs/ru/settings-reference#variables-claude-code-ignores-in-env), кроме значений отключения, которые описывает этот раздел. `OTEL_RESOURCE_ATTRIBUTES` и переменные интервала экспорта, таймаута и сжатия, такие как `OTEL_METRIC_EXPORT_INTERVAL`, по-прежнему применяются из параметров проекта и локальных параметров.527Задавайте `CLAUDE_CODE_ENABLE_TELEMETRY` и переменные OpenTelemetry, которые включают экспорт, выбирают его место назначения или захватывают содержимое, в оболочке, пользовательских настройках или управляемых настройках. Claude Code [игнорирует их в настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env), за исключением значений отключения, описанных в том разделе. `OTEL_RESOURCE_ATTRIBUTES` и переменные интервала экспорта, таймаута и сжатия, такие как `OTEL_METRIC_EXPORT_INTERVAL`, по-прежнему применяются из настроек проекта и локальных настроек.

526 528 

527<h2 id="features-that-need-feature-flag-fetching">529<h2 id="features-that-need-feature-flag-fetching">

528 Функции, требующие получения флагов функций530 Функции, требующие получения флагов функций


545* Использовать [инструмент советника](/docs/ru/advisor#requirements)547* Использовать [инструмент советника](/docs/ru/advisor#requirements)

546* Читать или отвечать на [комментарии к артефакту](/docs/ru/artifacts#collect-comments-on-an-artifact)548* Читать или отвечать на [комментарии к артефакту](/docs/ru/artifacts#collect-comments-on-an-artifact)

547* Поручать Claude читать [публичный артефакт другой организации](/docs/ru/artifacts#read-an-artifact-shared-with-you)549* Поручать Claude читать [публичный артефакт другой организации](/docs/ru/artifacts#read-an-artifact-shared-with-you)

548* Иметь Claude Code, зондирующий серверы соединителя claude.ai для [MCP протокола версии 2026-07-28](/docs/ru/mcp#mcp-client-runtimes), если вы не установите `MCP_PROTOCOL_NEGOTIATION=auto`550* Поручать Claude Code проверять серверы коннекторов claude.ai или stdio-серверы на поддержку [ревизии протокола MCP 2026-07-28](/docs/ru/mcp#mcp-client-runtimes), если вы не установите `MCP_PROTOCOL_NEGOTIATION=auto`

549* Получить [инструмент PowerShell](/docs/ru/tools-reference#powershell-tool) по умолчанию для учётных записей claude.ai и Console на Windows с установленным Git Bash; Claude Code маршрутизирует команды оболочки через Git Bash, если вы не установите `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. На Windows без Git Bash инструмент остаётся включённым551* Получить [инструмент PowerShell](/docs/ru/tools-reference#powershell-tool) по умолчанию для учётных записей claude.ai и Console на Windows с установленным Git Bash; Claude Code маршрутизирует команды оболочки через Git Bash, если вы не установите `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. На Windows без Git Bash инструмент остаётся включённым

550* Получить [отзыв, составленный Claude](/docs/ru/tools-reference#sendfeedback-tool-behavior), который Claude Code включает через полученный флаг552* Получить [отзыв, составленный Claude](/docs/ru/tools-reference#sendfeedback-tool-behavior), который Claude Code включает через полученный флаг

551* Иметь Claude [обрабатывающий большие вставки как вставленный, а не введённый текст](/docs/ru/terminal-config#how-claude-treats-pasted-text); содержимое за заполнителем `[Pasted text #N]` достигает Claude без отметки553* Иметь Claude [обрабатывающий большие вставки как вставленный, а не введённый текст](/docs/ru/terminal-config#how-claude-treats-pasted-text); содержимое за заполнителем `[Pasted text #N]` достигает Claude без отметки

errors.md +114 −94

Details

187| `<model>'s safeguards flagged this message` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |187| `<model>'s safeguards flagged this message` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |

188| `<model>'s safeguards flagged this session` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |188| `<model>'s safeguards flagged this session` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |

189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |

190| `API Error: Output blocked by content filtering policy` | [Request errors](#output-blocked-by-content-filtering-policy) |

190| `Installation was killed before it could finish (exit code 137)` | [Installation errors](#installation-was-killed-before-it-could-finish) |191| `Installation was killed before it could finish (exit code 137)` | [Installation errors](#installation-was-killed-before-it-could-finish) |

191| `The connection dropped while downloading the update` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |192| `The connection dropped while downloading the update` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |

192| `Download timed out: exceeded the total deadline` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |193| `Download timed out: exceeded the total deadline` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |


402* [Amazon Bedrock streaming response with an unexpected content-type](#bedrock-streaming-response-has-an-unexpected-content-type), потому что шлюз или прокси, переписывающие ответ, переписали бы повторную попытку таким же образом. Требуется Claude Code v2.1.208 или позже.403* [Amazon Bedrock streaming response with an unexpected content-type](#bedrock-streaming-response-has-an-unexpected-content-type), потому что шлюз или прокси, переписывающие ответ, переписали бы повторную попытку таким же образом. Требуется Claude Code v2.1.208 или позже.

403* Непотоковая повторная попытка неудавшегося потокового запроса, которая получает статус успеха, но [no Claude API message in the body](#api-returned-an-empty-or-malformed-response). Claude Code завершает ход с этой ошибкой.404* Непотоковая повторная попытка неудавшегося потокового запроса, которая получает статус успеха, но [no Claude API message in the body](#api-returned-an-empty-or-malformed-response). Claude Code завершает ход с этой ошибкой.

404* Запрос, который проверка политики вашей организации отклонила, который отображается как строка `API Error:`, содержащая сообщение об отказе. Администраторы вашей организации настроили проверку с помощью [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), функции Claude Enterprise, и сообщение заканчивается инструкциями, которые они настроили, или по умолчанию говорит вам связаться с ними. Claude Code не отправляет отклонённый запрос повторно на ту же модель или на [резервную модель](/docs/ru/model-config#fallback-model-chains), потому что отказ касается содержимого запроса, а не модели. До v2.1.239 Claude Code мог повторно отправить отклонённый запрос без потоковой передачи или на настроенную резервную модель перед отображением отказа.405* Запрос, который проверка политики вашей организации отклонила, который отображается как строка `API Error:`, содержащая сообщение об отказе. Администраторы вашей организации настроили проверку с помощью [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), функции Claude Enterprise, и сообщение заканчивается инструкциями, которые они настроили, или по умолчанию говорит вам связаться с ними. Claude Code не отправляет отклонённый запрос повторно на ту же модель или на [резервную модель](/docs/ru/model-config#fallback-model-chains), потому что отказ касается содержимого запроса, а не модели. До v2.1.239 Claude Code мог повторно отправить отклонённый запрос без потоковой передачи или на настроенную резервную модель перед отображением отказа.

406* Ответ, который заблокировал выходной фильтр содержимого API. Claude Code сразу показывает [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) и не повторяет и не отправляет этот запрос повторно.

405 407 

406<h3 id="what-you-see-while-claude-code-retries-or-waits">408<h3 id="what-you-see-while-claude-code-retries-or-waits">

407 Что вы видите, пока Claude Code повторяет или ждёт409 Что вы видите, пока Claude Code повторяет или ждёт


432| [`CLAUDE_CODE_MAX_RETRIES`](/docs/ru/env-vars) | 10 | Количество повторных попыток. Ограничено 15 начиная с v2.1.186; начиная с v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` повышает значение по умолчанию и удаляет ограничение. Снизьте его, чтобы быстрее выявлять сбои в скриптах. |434| [`CLAUDE_CODE_MAX_RETRIES`](/docs/ru/env-vars) | 10 | Количество повторных попыток. Ограничено 15 начиная с v2.1.186; начиная с v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` повышает значение по умолчанию и удаляет ограничение. Снизьте его, чтобы быстрее выявлять сбои в скриптах. |

433| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ru/env-vars) | не установлено | Установите значение `1` в автоматических сессиях, таких как задания CI, чтобы повторять ошибки пропускной способности `429` и `529` бесконечно вместо отказа после `CLAUDE_CODE_MAX_RETRIES` попыток. Claude Code сразу завершается с ошибкой, когда запрос со стандартной скоростью получает `429`, который сообщает о лимите расходов или исчерпанных кредитах использования, даже если это `429` от [gateway spend cap](#spend-limit-reached), который сбрасывается по расписанию. До v2.1.239 сторож повторял такие запросы бесконечно. Для запросов в быстром режиме см. [Handle rate limits](/docs/ru/fast-mode#handle-rate-limits). На v2.1.199 или позже он также повышает количество повторных попыток по умолчанию для других временных ошибок, таких как ошибки сервера, таймауты и разорванные соединения, до 300, примерно три часа задержки, и удаляет ограничение 15 на `CLAUDE_CODE_MAX_RETRIES`, если вы явно установите эту переменную. |435| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ru/env-vars) | не установлено | Установите значение `1` в автоматических сессиях, таких как задания CI, чтобы повторять ошибки пропускной способности `429` и `529` бесконечно вместо отказа после `CLAUDE_CODE_MAX_RETRIES` попыток. Claude Code сразу завершается с ошибкой, когда запрос со стандартной скоростью получает `429`, который сообщает о лимите расходов или исчерпанных кредитах использования, даже если это `429` от [gateway spend cap](#spend-limit-reached), который сбрасывается по расписанию. До v2.1.239 сторож повторял такие запросы бесконечно. Для запросов в быстром режиме см. [Handle rate limits](/docs/ru/fast-mode#handle-rate-limits). На v2.1.199 или позже он также повышает количество повторных попыток по умолчанию для других временных ошибок, таких как ошибки сервера, таймауты и разорванные соединения, до 300, примерно три часа задержки, и удаляет ограничение 15 на `CLAUDE_CODE_MAX_RETRIES`, если вы явно установите эту переменную. |

434| [`API_TIMEOUT_MS`](/docs/ru/env-vars) | 600000 | Таймаут для каждого запроса в миллисекундах. Повысьте его для медленных сетей или прокси. Он также ограничивает, как долго Claude Code ждёт заголовков ответа, как описано в [No response from API](#no-response-from-api). |436| [`API_TIMEOUT_MS`](/docs/ru/env-vars) | 600000 | Таймаут для каждого запроса в миллисекундах. Повысьте его для медленных сетей или прокси. Он также ограничивает, как долго Claude Code ждёт заголовков ответа, как описано в [No response from API](#no-response-from-api). |

437| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/ru/env-vars) | не установлено | Лимит повторных отправок [непотокового запроса](#streaming-response-ended-before-any-complete-data-was-received), который завершается по таймауту. При достижении лимита запрос завершается с ошибкой. Ответ Claude, генерация которого занимает больше времени, чем таймаут, снова завершается по таймауту при каждой повторной отправке, поэтому установите небольшое число, например `0`, чтобы получить ошибку быстрее. Каждая непотоковая попытка завершается по таймауту через 300 секунд в локальной сессии или через `API_TIMEOUT_MS`, если вы задали положительное значение. Требуется Claude Code v2.1.285 или позже. |

435| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ru/env-vars) | не установлено | Дедлайн в миллисекундах для первого байта ответа потокового запроса. Требуется Claude Code v2.1.242 или позже. О том, как Claude Code выбирает дедлайн, когда эта переменная не установлена, см. [No response from API](#no-response-from-api). |438| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ru/env-vars) | не установлено | Дедлайн в миллисекундах для первого байта ответа потокового запроса. Требуется Claude Code v2.1.242 или позже. О том, как Claude Code выбирает дедлайн, когда эта переменная не установлена, см. [No response from API](#no-response-from-api). |

436 439 

437<h2 id="server-errors">440<h2 id="server-errors">


1836 Ошибки сети и подключения1839 Ошибки сети и подключения

1837</h2>1840</h2>

1838 1841 

1839Большинство этих ошибок означают, что сетевой запрос из Claude Code не достиг пункта назначения, или что-то между Claude Code и API изменило ответ на обратном пути; если запись также содержит локальную причину, такую как ошибка записи архива, это указано в её описании. Обычно они возникают в вашей локальной сети, прокси или брандмауэре, либо в политике сети облачной среды.1842Большинство этих ошибок означают, что сетевой запрос из Claude Code не достиг пункта назначения, или что-то между Claude Code и API изменило ответ на обратном пути; если у ошибки есть и локальная причина, например сбой записи архива, это указано в её описании. Обычно они возникают в вашей локальной сети, прокси или брандмауэре либо в сетевой политике облачной среды.

1840 1843 

1841<h3 id="unable-to-connect-to-api">1844<h3 id="unable-to-connect-to-api">

1842 Unable to connect to API1845 Unable to connect to API

1843</h3>1846</h3>

1844 1847 

1845TCP-соединение с API не удалось или никогда не завершилось. Для распространённых кодов ошибок подключения сообщение указывает тип сбоя и сохраняет код в скобках:1848TCP-соединение с API не удалось установить или оно не завершилось. Для распространённых кодов ошибок подключения сообщение указывает тип сбоя и сохраняет код в скобках:

1846 1849 

1847```text theme={null}1850```text theme={null}

1848Unable to connect to API. Check your internet connection1851Unable to connect to API. Check your internet connection


1854Request timed out. Check your internet connection and proxy settings1857Request timed out. Check your internet connection and proxy settings

1855```1858```

1856 1859 

1857Код, который Claude Code не распознаёт, отображается как `Unable to connect to API` с кодом в скобках. Некоторые из этих сообщений могут показывать более одного кода: `Connection refused` может показать `ConnectionRefused` или `ECONNREFUSED`, например, а `Can't reach the API server` может показать `ENOTFOUND` или `FailedToOpenSocket`.1860Код, который Claude Code не распознаёт, отображается как `Unable to connect to API` с кодом в скобках. Некоторые из этих сообщений могут показывать разные коды: например, `Connection refused` может показать `ConnectionRefused` или `ECONNREFUSED`, а `Can't reach the API server` — `ENOTFOUND` или `FailedToOpenSocket`.

1858 1861 

1859До версии v2.1.227 каждое из этих кодированных сообщений читалось как `Unable to connect to API` с кодом, например `Unable to connect to API (ECONNREFUSED)`.1862До версии v2.1.227 каждое из этих сообщений с кодом выглядело как `Unable to connect to API` с кодом, например `Unable to connect to API (ECONNREFUSED)`.

1860 1863 

1861Распространённые причины включают отсутствие доступа в интернет, VPN, который блокирует `api.anthropic.com`, или требуемый корпоративный прокси, который не настроен.1864Распространённые причины: отсутствие доступа в интернет, VPN, который блокирует `api.anthropic.com`, или обязательный корпоративный прокси, который не настроен.

1862 1865 

1863**Что делать:**1866**Что делать:**

1864 1867 

1865* Подтвердите, что вы можете достичь хоста API из той же оболочки, запустив `curl -I https://api.anthropic.com`. В Windows PowerShell используйте `curl.exe -I https://api.anthropic.com`, чтобы встроенный псевдоним `Invoke-WebRequest` не использовался.1868* Убедитесь, что хост API доступен из той же оболочки, выполнив `curl -I https://api.anthropic.com`. В Windows PowerShell используйте `curl.exe -I https://api.anthropic.com`, чтобы не использовался встроенный псевдоним `Invoke-WebRequest`.

1866* Если вы находитесь за корпоративным прокси, установите `HTTPS_PROXY` перед запуском Claude Code и см. [Network configuration](/docs/ru/network-config)1869* Если вы находитесь за корпоративным прокси, задайте `HTTPS_PROXY` перед запуском Claude Code и см. [Настройка сети](/docs/ru/network-config)

1867* Если вы маршрутизируете через шлюз LLM или ретранслятор, установите [`ANTHROPIC_BASE_URL`](/docs/ru/env-vars) на его адрес. См. [Connect Claude Code to an LLM gateway](/docs/ru/llm-gateway-connect) для настройки.1870* Если вы направляете трафик через LLM-шлюз или ретранслятор, задайте [`ANTHROPIC_BASE_URL`](/docs/ru/env-vars) равным его адресу. Инструкции по настройке см. в разделе [Подключение Claude Code к LLM-шлюзу](/docs/ru/llm-gateway-connect).

1868* Убедитесь, что ваш брандмауэр разрешает хосты, указанные в [Network access requirements](/docs/ru/network-config#network-access-requirements)1871* Убедитесь, что ваш брандмауэр разрешает хосты, перечисленные в разделе [Требования к сетевому доступу](/docs/ru/network-config#network-access-requirements)

1869* Прерывистые сбои [повторяются автоматически](#automatic-retries); постоянные сбои указывают на локальную проблему сети1872* Для периодических сбоев [повторные попытки выполняются автоматически](#automatic-retries); постоянные сбои указывают на локальную проблему с сетью

1870 1873 

1871Если `curl` успешен, но Claude Code всё ещё не работает, причина обычно находится между средой выполнения и сетью, а не в самой сети:1874Если `curl` выполняется успешно, но Claude Code по-прежнему не работает, причина обычно находится между средой выполнения и сетью, а не в самой сети:

1872 1875 

1873* Проверьте, установлена ли переменная `ANTHROPIC_BASE_URL`, запустив `echo $ANTHROPIC_BASE_URL`, или `echo $env:ANTHROPIC_BASE_URL` в PowerShell, и посмотрите её в блоке `env` ваших [settings files](/docs/ru/settings). Когда она установлена, Claude Code отправляет запросы модели на этот адрес вместо `api.anthropic.com`, поэтому оставшееся значение, указывающее на локальный прокси или шлюз, который больше не работает, производит `Connection refused`, даже если `curl` достигает API. Удалите его из профиля вашей оболочки или параметров и запустите Claude Code из нового терминала.1876* Проверьте, задана ли `ANTHROPIC_BASE_URL`, выполнив `echo $ANTHROPIC_BASE_URL` или `echo $env:ANTHROPIC_BASE_URL` в PowerShell, и поищите её в блоке `env` ваших [файлов настроек](/docs/ru/settings). Когда она задана, Claude Code отправляет запросы к модели на этот адрес вместо `api.anthropic.com`, поэтому оставшееся значение, указывающее на локальный прокси или шлюз, который больше не работает, приводит к `Connection refused`, даже если `curl` достигает API. Удалите её из профиля оболочки или из настроек и запустите Claude Code в новом терминале.

1874* На Linux и WSL проверьте `/etc/resolv.conf` на наличие недостижимого сервера имён. WSL в частности может унаследовать неработающий распознаватель от хоста.1877* В Linux и WSL проверьте `/etc/resolv.conf` на наличие недоступного сервера имён. WSL, в частности, может унаследовать неработающий резолвер от хоста.

1875* На macOS клиент VPN, который был отключен или удален, может оставить интерфейс туннеля или правило маршрутизации. Проверьте `ifconfig` на наличие устаревших интерфейсов `utun` и удалите сетевое расширение VPN в System Settings.1878* В macOS VPN-клиент, который был отключён или удалён, может оставить после себя туннельный интерфейс или правило маршрутизации. Проверьте `ifconfig` на наличие устаревших интерфейсов `utun` и удалите сетевое расширение VPN в System Settings.

1876* Docker Desktop и аналогичные среды выполнения контейнеров могут перехватывать исходящий трафик. Закройте их и повторите попытку, чтобы исключить это.1879* Docker Desktop и аналогичные среды выполнения контейнеров могут перехватывать исходящий трафик. Закройте их и повторите попытку, чтобы исключить эту причину.

1877 1880 

1878<h3 id="unable-to-connect-to-anthropic-services">1881<h3 id="unable-to-connect-to-anthropic-services">

1879 Unable to connect to Anthropic services1882 Unable to connect to Anthropic services

1880</h3>1883</h3>

1881 1884 

1882Во время первоначальной настройки Claude Code проверяет, что он может достичь `api.anthropic.com` и `platform.claude.com` перед отображением шага входа. Когда одна из проверок не удаётся, Claude Code выводит причину и выходит.1885Во время первоначальной настройки Claude Code проверяет доступность `api.anthropic.com` и `platform.claude.com` перед отображением шага входа. Если любая из проверок не проходит, Claude Code выводит причину и завершает работу.

1883 1886 

1884```text theme={null}1887```text theme={null}

1885Unable to connect to Anthropic services1888Unable to connect to Anthropic services


1888A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above.1891A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above.

1889```1892```

1890 1893 

1891Claude Code отправляет проверку через ту же [proxy configuration](/docs/ru/network-config), что и запросы API, и даёт каждому зонду 10 секунд. Когда неудачный зонд прошёл через прокси, сообщение указывает переменную окружения, которая его настроила, такую как `HTTPS_PROXY`. До версии v2.1.222 проверка использовала другой транспорт прокси без тайм-аута: за прокси URL со схемой `https://` она могла зависнуть на `Checking connectivity...` неопределённо долго, а затем не удаться, даже если запросы API через тот же прокси успешны.1894Claude Code выполняет проверку через ту же [конфигурацию прокси](/docs/ru/network-config), что и запросы к API, и отводит каждой проверке 10 секунд. Если неудачная проверка шла через прокси, сообщение называет переменную окружения, которая его задала, например `HTTPS_PROXY`. До версии v2.1.222 проверка использовала другой транспорт прокси без таймаута: за прокси с URL со схемой `https://` она могла бесконечно зависать на `Checking connectivity...`, а затем завершаться ошибкой, хотя запросы к API через тот же прокси проходили успешно.

1892 1895 

1893Claude Code пропускает эту проверку, когда [managed settings file, MDM policy, или policy helper](/docs/ru/managed-settings) устанавливает [`forceLoginMethod`](/docs/ru/settings-reference#forceloginmethod) на `"gateway"`, или устанавливает [`forceLoginGatewayUrl`](/docs/ru/settings-reference#forcelogingatewayurl) без `forceLoginMethod`. С любой из этих конфигураций Claude Code открывает шаг входа на экране **Cloud gateway** вместо метода входа Anthropic. Claude Code также пропускает проверку, когда источник управляемых параметров на машине существует, но не может быть прочитан, поскольку этот источник может содержать конфигурацию шлюза. До версии v2.1.247 Claude Code запускал проверку и при этой конфигурации и выходил с этой ошибкой, когда конечные точки Anthropic были недостижимы.1896Claude Code пропускает эту проверку, когда [файл управляемых настроек, политика MDM или policy helper](/docs/ru/managed-settings) задаёт для [`forceLoginMethod`](/docs/ru/settings-reference#forceloginmethod) значение `"gateway"` или задаёт [`forceLoginGatewayUrl`](/docs/ru/settings-reference#forcelogingatewayurl) без `forceLoginMethod`. При любой из этих конфигураций Claude Code открывает шаг входа на экране **Cloud gateway** вместо способа входа Anthropic. Claude Code также пропускает проверку, когда источник управляемых настроек на машине существует, но не может быть прочитан, поскольку этот источник может содержать конфигурацию шлюза. До версии v2.1.247 Claude Code выполнял проверку и при такой конфигурации и завершал работу с этой ошибкой, когда эндпоинты Anthropic были недоступны.

1894 1897 

1895**Что делать:**1898**Что делать:**

1896 1899 

1897* Если сообщение указывает переменную прокси, проверьте, что её значение указывает на правильный прокси, и попросите вашу команду сети разрешить HTTPS-соединения через него к хосту в сообщении. См. [Network configuration](/docs/ru/network-config).1900* Если сообщение называет переменную прокси, проверьте, что её значение указывает на нужный прокси, и попросите сетевую команду разрешить HTTPS-соединения через него к хосту из сообщения. См. [Настройка сети](/docs/ru/network-config).

1898* Пройдите проверки в [Unable to connect to API](#unable-to-connect-to-api). Тест `curl` и рекомендации по брандмауэру там применяются и к этой проверке.1901* Выполните проверки из раздела [Unable to connect to API](#unable-to-connect-to-api). Тест с `curl` и рекомендации по брандмауэру оттуда применимы и к этой проверке.

1899* Если ваша сеть открыта и сбой сохраняется, Claude Code может быть [недоступен в вашей стране](https://www.anthropic.com/supported-countries)1902* Если ваша сеть открыта, а сбой сохраняется, Claude Code может быть [недоступен в вашей стране](https://www.anthropic.com/supported-countries)

1900 1903 

1901<h3 id="socket-is-closed">1904<h3 id="socket-is-closed">

1902 Socket is closed1905 Socket is closed

1903</h3>1906</h3>

1904 1907 

1905`Socket is closed` означает, что соединение, несущее потоковый ответ, было закрыто, пока ответ всё ещё поступал. Наиболее распространённая причина — корпоративный прокси на Windows, отбрасывающий установленный туннель в середине ответа.1908`Socket is closed` означает, что соединение, по которому шёл потоковый ответ, было закрыто, пока ответ ещё поступал. Наиболее распространённая причина — корпоративный прокси в Windows, разрывающий установленный туннель посреди ответа.

1906 1909 

1907В зависимости от того, насколько далеко продвинулся ответ, Claude Code повторяет запрос, сохраняет то, что произвёл Claude, или завершает ход. См. [Automatic retries](#automatic-retries).1910В зависимости от того, насколько продвинулся ответ, Claude Code повторяет запрос, сохраняет то, что успел сгенерировать Claude, или завершает ход. См. [Автоматические повторные попытки](#automatic-retries).

1908 1911 

1909До версии v2.1.214 Claude Code не повторял этот сбой, и ход останавливался с ошибкой, содержащей `Socket is closed`.1912До версии v2.1.214 Claude Code не повторял попытку при этом сбое, и ход останавливался с ошибкой, содержащей `Socket is closed`.

1910 1913 

1911**Что делать:**1914**Что делать:**

1912 1915 

1913* Если вы видите эту ошибку, обновитесь до v2.1.214 или позже с помощью `claude update`, затем отправьте ваше сообщение снова1916* Если вы видите эту ошибку, обновитесь до v2.1.214 или более поздней версии с помощью `claude update`, затем отправьте сообщение снова

1914* Если ходы продолжают не удаваться за тем же прокси после обновления, пройдите [Unable to connect to API](#unable-to-connect-to-api) и проверьте настройку прокси в [Network configuration](/docs/ru/network-config)1917* Если после обновления ходы продолжают завершаться ошибкой за тем же прокси, выполните проверки из раздела [Unable to connect to API](#unable-to-connect-to-api) и проверьте настройку прокси в разделе [Настройка сети](/docs/ru/network-config)

1915 1918 

1916<h3 id="api-returned-an-empty-or-malformed-response">1919<h3 id="api-returned-an-empty-or-malformed-response">

1917 API returned an empty or malformed response1920 API returned an empty or malformed response

1918</h3>1921</h3>

1919 1922 

1920Claude Code показывает эту ошибку, когда его повторная попытка без потока неудачного потокового запроса получает статус HTTP успеха, но тело не является сообщением Claude API: обычно это HTML-ошибка или страница входа, пустое тело или JSON в другом формате. Прокси, шлюз или страница входа в сеть, отвечающие вместо API, — обычный источник. Claude Code не повторяет запрос, и ход заканчивается этой ошибкой.1923Claude Code показывает эту ошибку, когда его непотоковая повторная попытка неудавшегося потокового запроса получает успешный HTTP-статус, но тело не является сообщением Claude API: обычно это HTML-страница ошибки или входа, пустое тело или JSON в другом формате. Обычный источник — прокси, шлюз или страница входа в сеть, отвечающие вместо API. Claude Code не повторяет запрос, и ход завершается этой ошибкой.

1921 1924 

1922```text theme={null}1925```text theme={null}

1923API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.1926API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.

1924```1927```

1925 1928 

1926После этого открытия сообщение сообщает, что вернулось и какой запрос не удался:1929После этого вступления сообщение сообщает, что вернулось и какой запрос завершился ошибкой:

1927 1930 

1928* Предложение `Response:` с типом содержимого, типом тела, таким как `body is an HTML page` или `empty body`, его размером в байтах и наличием ли в ответе идентификатора запроса Anthropic. Когда ответ указывает на узнаваемый сервер, такой как `nginx` или `cloudflare`, или содержит заголовки промежуточного звена, такие как `cf-ray` или `via`, предложение также их перечисляет.1931* Фрагмент `Response:` с типом содержимого, видом тела, например `body is an HTML page` или `empty body`, его размером в байтах и тем, содержал ли ответ идентификатор запроса Anthropic. Когда ответ называет узнаваемый сервер, например `nginx` или `cloudflare`, или содержит заголовки промежуточных узлов, например `cf-ray` или `via`, фрагмент перечисляет и их.

1929* Предложение, указывающее идентификатор неудачного потокового запроса и сбой, который вызвал повторную попытку. Когда поток открылся до сбоя, оно также сообщает, сколько событий потока прибыло и, если какие-то прибыли, как долго поток молчал, когда попытка не удалась.1932* Предложение с идентификатором неудавшегося потокового запроса и сбоем, который вызвал повторную попытку. Если до сбоя поток был открыт, оно также сообщает, сколько событий потока пришло и, если они были, как долго поток молчал на момент сбоя попытки.

1930 1933 

1931До версии v2.1.234 сообщение заканчивалось после `intercepting the request`.1934До версии v2.1.234 сообщение заканчивалось после `intercepting the request`.

1932 1935 

1933До версии v2.1.271 ответ, который нёс действительное сообщение API под типом содержимого, отличным от JSON, таким как `text/plain`, также заканчивал ход этой ошибкой. Некоторые шлюзы LLM используют этот тип содержимого для ответа без потока.1936До версии v2.1.271 ответ, содержавший корректное сообщение API с типом содержимого, отличным от JSON, например `text/plain`, также завершал ход этой ошибкой. Некоторые LLM-шлюзы используют этот тип содержимого для непотокового ответа.

1934 1937 

1935**Что делать:**1938**Что делать:**

1936 1939 

1937* Прочитайте предложение `Response:`, чтобы увидеть, какая система ответила. HTML-тело, отсутствие идентификатора запроса Anthropic или названный сервер, такой как `nginx` или `cloudflare`, означает, что что-то между Claude Code и API ответило вместо него1940* Прочитайте фрагмент `Response:`, чтобы понять, какая система ответила. HTML-тело, отсутствие идентификатора запроса Anthropic или названный сервер, например `nginx` или `cloudflare`, означают, что вместо API ответило что-то между Claude Code и API

1938* Если вы маршрутизируете через [LLM gateway](/docs/ru/llm-gateway-connect#troubleshoot-gateway-errors), протестируйте маршрут прямым запросом и исправьте переход, который возвращает ответ, отличный от API1941* Если вы направляете трафик через [LLM-шлюз](/docs/ru/llm-gateway-connect#troubleshoot-gateway-errors), проверьте маршрут прямым запросом и исправьте звено, которое возвращает ответ не от API

1939* В сети со страницей входа, такой как гостевой Wi-Fi, завершите вход в браузере, затем повторите попытку1942* В сети со страницей входа, например в гостевом Wi-Fi, выполните вход в браузере, затем повторите попытку

1940* Если только маршрут без потока через ваш шлюз сломан, установите [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/ru/env-vars#variables), чтобы отключить этот резервный вариант, кроме случаев, когда сама конечная точка потока возвращает `404`, где Claude Code всё ещё переходит на резервный вариант1943* Если не работает только непотоковый маршрут через ваш шлюз, задайте [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/ru/env-vars#variables), чтобы отключить этот резервный вариант, за исключением случая, когда сам потоковый эндпоинт возвращает `404`: тогда Claude Code всё равно переключается на резервный вариант

1941 1944 

1942<h3 id="streaming-response-ended-before-any-complete-data-was-received">1945<h3 id="streaming-response-ended-before-any-complete-data-was-received">

1943 Streaming response ended before any complete data was received1946 Streaming response ended before any complete data was received

1944</h3>1947</h3>

1945 1948 

1946Потоковый ответ от вашего поставщика модели завершился без доставки каких-либо полезных данных, поэтому Claude Code повторно отправил запрос без потока, чтобы завершить ход. Claude Code показывает предупреждение один раз за сеанс, только в интерактивных сеансах. До версии v2.1.239 Claude Code молча повторял попытку без потока.1949Потоковый ответ от вашего поставщика модели завершился, не доставив никаких пригодных данных, поэтому Claude Code повторно отправил запрос без потоковой передачи, чтобы завершить ход. Claude Code показывает это предупреждение один раз за сессию и только в интерактивных сессиях. До версии v2.1.239 Claude Code молча повторял попытку без потоковой передачи.

1947 1950 

1948```text theme={null}1951```text theme={null}

1949Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.1952Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.

1950```1953```

1951 1954 

1952Claude Code отправляет каждый затронутый запрос дважды: пустую попытку потока и повторную попытку. Обычная причина — прокси или шлюз, который потребляет или преобразует тело потокового ответа на обратном пути.1955Claude Code отправляет каждый затронутый запрос дважды: пустую потоковую попытку и повторную попытку. Обычная причина — прокси или шлюз, который поглощает или преобразует тело потокового ответа на обратном пути.

1953 1956 

1954**Что делать:**1957**Что делать:**

1955 1958 

1956* Настройте любой прокси или шлюз между Claude Code и вашим поставщиком модели, чтобы пропускать тела потоковых ответов и их заголовки без изменений1959* Настройте все прокси и шлюзы между Claude Code и вашим поставщиком модели так, чтобы тела потоковых ответов и их заголовки проходили без изменений

1957* На [Amazon Bedrock](/docs/ru/amazon-bedrock) см. [Streaming errors behind a gateway or proxy](/docs/ru/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy) для требований к заголовкам и телу1960* Для [Amazon Bedrock](/docs/ru/amazon-bedrock) требования к заголовкам и телу см. в разделе [Ошибки потоковой передачи за шлюзом или прокси](/docs/ru/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)

1958 1961 

1959<h3 id="bedrock-streaming-response-has-an-unexpected-content-type">1962<h3 id="bedrock-streaming-response-has-an-unexpected-content-type">

1960 Bedrock streaming response has an unexpected content-type1963 Bedrock streaming response has an unexpected content-type

1961</h3>1964</h3>

1962 1965 

1963Шлюз или прокси между Claude Code и [Amazon Bedrock](/docs/ru/amazon-bedrock) преобразует тело потокового ответа или его заголовок `Content-Type`. Amazon Bedrock потоком передаёт ответы как `application/vnd.amazon.eventstream`. Вместо декодирования тела, которое он не может прочитать, Claude Code отклоняет успешный потоковый ответ, который сообщает другой тип содержимого. Claude Code не повторяет запрос.1966Шлюз или прокси между Claude Code и [Amazon Bedrock](/docs/ru/amazon-bedrock) преобразует тело потокового ответа или его заголовок `Content-Type`. Amazon Bedrock передаёт потоковые ответы как `application/vnd.amazon.eventstream`. Вместо того чтобы декодировать тело, которое он не может прочитать, Claude Code отклоняет успешный потоковый ответ с другим типом содержимого. Claude Code не повторяет запрос.

1964 1967 

1965```text theme={null}1968```text theme={null}

1966Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed through unmodified. Set CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 to suppress this check while the gateway is being fixed.1969Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed through unmodified. Set CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 to suppress this check while the gateway is being fixed.

1967```1970```

1968 1971 

1969До версии v2.1.208 та же неправильная конфигурация проявлялась как `API Error: Truncated event message received` после того, как весь ответ был буферизирован.1972До версии v2.1.208 та же ошибка конфигурации проявлялась как `API Error: Truncated event message received` после буферизации всего ответа.

1970 1973 

1971**Что делать:**1974**Что делать:**

1972 1975 

1973* Настройте шлюз на пропуск тела ответа `InvokeModelWithResponseStream` и его заголовка `Content-Type` без изменений. Промежуточное звено, которое повторно излучает поток как события, отправляемые сервером, — распространённая причина.1976* Настройте шлюз так, чтобы тело ответа `InvokeModelWithResponseStream` и его заголовок `Content-Type` проходили без изменений. Частая причина — промежуточный узел, который повторно выдаёт поток как server-sent events.

1974* Установка [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/ru/env-vars) скрывает эту ошибку, но Claude Code не декодирует двоичное тело под переписанным заголовком, поэтому эти запросы переходят на более медленный путь без потока. См. [Streaming errors behind a gateway or proxy](/docs/ru/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).1977* Установка [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/ru/env-vars) скрывает эту ошибку, но Claude Code не декодирует двоичное тело с переписанным заголовком, поэтому такие запросы переключаются на более медленный непотоковый путь. См. [Ошибки потоковой передачи за шлюзом или прокси](/docs/ru/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

1975 1978 

1976<h3 id="ssl-certificate-errors">1979<h3 id="ssl-certificate-errors">

1977 SSL certificate errors1980 SSL certificate errors

1978</h3>1981</h3>

1979 1982 

1980Прокси или устройство безопасности в вашей сети перехватывает трафик TLS со своим собственным сертификатом, и Claude Code ему не доверяет.1983Прокси или устройство безопасности в вашей сети перехватывает TLS-трафик с помощью собственного сертификата, которому Claude Code не доверяет.

1981 1984 

1982```text theme={null}1985```text theme={null}

1983Unable to connect to API: SSL certificate verification failed (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config1986Unable to connect to API: SSL certificate verification failed (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config

1984Unable to connect to API: Self-signed certificate detected (SELF_SIGNED_CERT_IN_CHAIN). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config1987Unable to connect to API: Self-signed certificate detected (SELF_SIGNED_CERT_IN_CHAIN). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config

1985```1988```

1986 1989 

1987До версии v2.1.273 оба сообщения заканчивались на `Check your proxy or corporate SSL certificates`, без кода OpenSSL или подсказки `NODE_EXTRA_CA_CERTS`.1990До версии v2.1.273 оба сообщения заканчивались на `Check your proxy or corporate SSL certificates`, без кода OpenSSL и подсказки про `NODE_EXTRA_CA_CERTS`.

1988 1991 

1989Начиная с версии v2.1.199, сбой проверки сертификата не повторяется, поэтому эта ошибка появляется при первой попытке вместо того, чтобы появиться после полного [retry budget](#automatic-retries). Более ранние версии потратили несколько минут на повторные попытки перед её отображением. Переходящие условия TLS, такие как тайм-аут рукопожатия, всё ещё повторяются.1992Начиная с версии v2.1.199, при сбое проверки сертификата повторные попытки не выполняются, поэтому эта ошибка появляется при первой попытке, а не после исчерпания всего [лимита повторных попыток](#automatic-retries). Более ранние версии тратили несколько минут на повторные попытки, прежде чем показать её. При временных проблемах TLS, например таймауте рукопожатия, повторные попытки по-прежнему выполняются.

1990 1993 

1991Во время `/login` и проверки подключения при запуске тот же сбой производит другое сообщение:1994Во время `/login` и проверки подключения при запуске тот же сбой приводит к другому сообщению:

1992 1995 

1993```text theme={null}1996```text theme={null}

1994SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.1997SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.

1995```1998```

1996 1999 

1997На [Amazon Bedrock](/docs/ru/amazon-bedrock) запросы, которые Claude Code сам отправляет в AWS, такие как вызовы учётных данных роли STS и SSO, обнаружение модели и проверки мастера настройки, зависят от той же конфигурации сертификата. См. [Certificate errors behind a TLS-inspecting proxy](/docs/ru/amazon-bedrock#certificate-errors-behind-a-tls-inspecting-proxy).2000На [Amazon Bedrock](/docs/ru/amazon-bedrock) запросы, которые Claude Code сам отправляет в AWS, например вызовы STS и SSO для получения учётных данных роли, обнаружение моделей и проверки мастера настройки, зависят от той же конфигурации сертификатов. См. [Ошибки сертификатов за прокси с TLS-инспекцией](/docs/ru/amazon-bedrock#certificate-errors-behind-a-tls-inspecting-proxy).

1998 2001 

1999**Что делать:**2002**Что делать:**

2000 2003 

2001* Экспортируйте пакет CA вашей организации и укажите Claude Code на него с помощью `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`2004* Экспортируйте пакет CA вашей организации и укажите его Claude Code с помощью `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`

2002* См. [Network configuration](/docs/ru/network-config#custom-ca-certificates) для полных инструкций по настройке2005* Полные инструкции по настройке см. в разделе [Настройка сети](/docs/ru/network-config#custom-ca-certificates)

2003* Не устанавливайте `NODE_TLS_REJECT_UNAUTHORIZED=0`, что полностью отключает проверку сертификата2006* Не устанавливайте `NODE_TLS_REJECT_UNAUTHORIZED=0` — это полностью отключает проверку сертификатов

2004 2007 

2005<h3 id="host-not-allowed-in-a-cloud-session">2008<h3 id="host-not-allowed-in-a-cloud-session">

2006 Host not allowed in a cloud session2009 Host not allowed in a cloud session

2007</h3>2010</h3>

2008 2011 

2009Исходящий HTTP-запрос из облачного сеанса или подпрограммы был заблокирован политикой сети среды.2012Исходящий HTTP-запрос из облачной сессии или routine был заблокирован сетевой политикой среды.

2010 2013 

2011```text theme={null}2014```text theme={null}

2012HTTP 4032015HTTP 403

2013x-deny-reason: host_not_allowed2016x-deny-reason: host_not_allowed

2014```2017```

2015 2018 

2016Вы также можете увидеть сертификат TLS, который не соответствует реальному сертификату пункта назначения. Облачные сеансы маршрутизируют исходящий трафик через прокси, который применяет политику сети, поэтому несоответствующий сертификат означает, что прокси завершил соединение, а не пункт назначения.2019Вы также можете увидеть TLS-сертификат, который не совпадает с настоящим сертификатом пункта назначения. Облачные сессии направляют исходящий трафик через прокси, который применяет сетевую политику, поэтому несовпадающий сертификат означает, что соединение завершил прокси, а не пункт назначения.

2017 2020 

2018Это не проблема сети на стороне клиента. Облачные сеансы и [routines](/docs/ru/routines) работают внутри изолированной виртуальной машины, исходящий трафик которой через сеанс отфильтрован в [cloud environment's](/docs/ru/cloud-environments) список разрешений; [GitHub operations](/docs/ru/cloud-environments#github-proxy) и трафик соединителя MCP используют отдельные каналы, поэтому они могут продолжать работать, пока другие хосты заблокированы. Среда **Default** использует доступ **Trusted**, который разрешает [default allowlist](/docs/ru/cloud-environments#default-allowed-domains) реестров пакетов, API поставщиков облака, реестров контейнеров и распространённых доменов разработки и блокирует другие домены на этом пути.2021Это не проблема сети на стороне клиента. Облачные сессии и [routines](/docs/ru/routines) работают внутри изолированной виртуальной машины, исходящий трафик которой через сеть сессии фильтруется по списку разрешённых доменов [облачной среды](/docs/ru/cloud-environments); [операции GitHub](/docs/ru/cloud-environments#github-proxy) и трафик MCP-коннекторов используют отдельные каналы, поэтому они могут продолжать работать, пока другие хосты заблокированы. Среда **Default** использует доступ **Trusted**, который разрешает [список разрешённых доменов по умолчанию](/docs/ru/cloud-environments#default-allowed-domains): реестры пакетов, API облачных провайдеров, реестры контейнеров и распространённые домены для разработки — и блокирует другие домены на этом пути.

2019 2022 

2020**Что делать:**2023**Что делать:**

2021 2024 

2022Эти шаги изменяют одну из ваших собственных сред. [Организационная общая среда](/docs/ru/cloud-environments#organization-shared-environments) открывается только для чтения в селекторе, поэтому попросите владельца изменить её сетевой доступ со страницы **Cloud environments** в [admin settings](https://claude.ai/admin-settings).2025Эти шаги изменяют одну из ваших собственных сред. [Общая среда организации](/docs/ru/cloud-environments#organization-shared-environments) открывается в селекторе только для чтения, поэтому попросите Owner изменить её сетевой доступ на странице **Cloud environments** в [настройках администратора](https://claude.ai/admin-settings).

2023 2026 

2024* Откройте вашу среду для редактирования, либо из [routine's form](/docs/ru/routines#environments-and-network-access), либо из [environment selector](/docs/ru/cloud-environments#configure-your-environment), где вы запускаете облачные сеансы.2027* Откройте среду для редактирования либо из [формы routine](/docs/ru/routines#environments-and-network-access), либо из [селектора сред](/docs/ru/cloud-environments#configure-your-environment), где вы запускаете облачные сессии.

2025* В диалоговом окне **Edit cloud environment** измените **Network access** с **Trusted** на **Custom**, затем добавьте заблокированный домен в **Allowed domains**. Введите один домен в строку. Установите флажок **Also include default list of common package managers**, чтобы сохранить [default allowlist](/docs/ru/cloud-environments#default-allowed-domains) вместе с вашими пользовательскими доменами. Выберите **Full** вместо этого, если вы хотите неограниченный доступ.2028* В диалоговом окне **Edit environment** измените **Network access** с **Trusted** на **Custom**, затем добавьте заблокированный домен в **Allowed domains**. Вводите по одному домену в строке. Установите флажок **Also include default list of common package managers**, чтобы сохранить [список разрешённых доменов по умолчанию](/docs/ru/cloud-environments#default-allowed-domains) вместе с вашими доменами. Если нужен неограниченный доступ, выберите вместо этого **Full**.

2026* Нажмите **Save changes**. Следующий запуск использует обновленный список разрешений. Для облачного сеанса, который уже открыт, см. [when a network access change reaches existing sessions](/docs/ru/cloud-environments#network-access).2029* Нажмите **Save changes**. Следующий запуск использует обновлённый список разрешённых доменов. Для уже открытой облачной сессии см. [когда изменение сетевого доступа применяется к существующим сессиям](/docs/ru/cloud-environments#network-access).

2027 2030 

2028См. [Network access](/docs/ru/cloud-environments#network-access) для уровней доступа и списка разрешений по умолчанию. Локальные сеансы CLI не затронуты этой политикой.2031Уровни доступа и список разрешённых доменов по умолчанию описаны в разделе [Сетевой доступ](/docs/ru/cloud-environments#network-access). Эта политика не влияет на локальные сессии CLI.

2029 2032 

2030<h3 id="the-proxy-refused-the-connection">2033<h3 id="the-proxy-refused-the-connection">

2031 The proxy refused the connection2034 The proxy refused the connection

2032</h3>2035</h3>

2033 2036 

2034Вы видите это сообщение, когда Claude читает [artifact](/docs/ru/artifacts) через прокси, который вы установили в `HTTPS_PROXY` или связанную [proxy variable](/docs/ru/network-config#environment-variables). Содержимое артефакта поступает из `*.frame.claudeusercontent.com`, поэтому Claude Code сначала отправляет прокси запрос `CONNECT`, прося его открыть туннель к этому хосту. Когда прокси отказывает, ничего не достигает хоста, и сообщение содержит статус HTTP прокси:2037Вы видите это сообщение, когда Claude читает [артефакт](/docs/ru/artifacts) через прокси, заданный в `HTTPS_PROXY` или связанной [переменной прокси](/docs/ru/network-config#environment-variables). Содержимое артефакта поступает с `*.frame.claudeusercontent.com`, поэтому Claude Code сначала отправляет прокси запрос `CONNECT` с просьбой открыть туннель к этому хосту. Когда прокси отказывает, до хоста ничего не доходит, и сообщение содержит HTTP-статус прокси:

2035 2038 

2036```text theme={null}2039```text theme={null}

2037artifact content fetch failed (proxy refused the connection: HTTP 407)2040artifact content fetch failed (proxy refused the connection: HTTP 407)


2039the proxy refused the connection to the artifact's content host (HTTP 502)2042the proxy refused the connection to the artifact's content host (HTTP 502)

2040```2043```

2041 2044 

2042Статус — это ответ прокси на `CONNECT`. Хост никогда не ответил, поэтому каждый статус указывает на другое исправление:2045Статус — это ответ прокси на `CONNECT`. Хост не отвечал вовсе, поэтому каждый статус указывает на своё исправление:

2043 2046 

2044* `HTTP 407`: прокси требует учётные данные, которые он не получил. Поместите их в URL прокси, как показано в [Basic authentication](/docs/ru/network-config#basic-authentication).2047* `HTTP 407`: прокси требует учётные данные, которые не получил. Укажите их в URL прокси, как показано в разделе [Базовая аутентификация](/docs/ru/network-config#basic-authentication).

2045* `HTTP 403`: прокси отказывается туннелировать к `*.frame.claudeusercontent.com`. Попросите того, кто управляет прокси, разрешить этот хост, который [Network access requirements](/docs/ru/network-config#network-access-requirements) перечисляет.2048* `HTTP 403`: прокси отказывается создавать туннель к `*.frame.claudeusercontent.com`. Попросите того, кто управляет прокси, разрешить этот хост, указанный в разделе [Требования к сетевому доступу](/docs/ru/network-config#network-access-requirements).

2046* Любой другой статус, такой как `HTTP 502`: прокси не открыл туннель по своей причине, такой как неудача достижения хоста. Посмотрите статус в журналах прокси.2049* Любой другой статус, например `HTTP 502`: прокси не открыл туннель по собственной причине, например не смог достичь хоста. Найдите этот статус в логах прокси.

2047* `unreadable reply` вместо статуса: то, что находится по адресу прокси, не ответило строкой статуса HTTP. Проверьте, что адрес — это HTTP-прокси.2050* `unreadable reply` вместо статуса: то, что находится по адресу прокси, не ответило строкой HTTP-статуса. Проверьте, что по этому адресу находится HTTP-прокси.

2048 2051 

2049**Что делать:**2052**Что делать:**

2050 2053 

2051* Проверьте адрес и учётные данные в переменной прокси, как описано в [Proxy configuration](/docs/ru/network-config#proxy-configuration), затем запустите `curl -x http://proxy.example.com:8080 -I https://api.anthropic.com` из оболочки, в которой вы запускаете Claude Code, используя ваш собственный URL прокси. В Windows PowerShell запустите `curl.exe`. Если этот зонд не удаётся так же, сначала исправьте настройку прокси. Если он успешен, отказ специфичен для хоста артефакта.2054* Проверьте адрес и учётные данные в переменной прокси, как описано в разделе [Конфигурация прокси](/docs/ru/network-config#proxy-configuration), затем выполните `curl -x http://proxy.example.com:8080 -I https://api.anthropic.com` в оболочке, из которой вы запускаете Claude Code, подставив URL своего прокси. В Windows PowerShell используйте `curl.exe`. Если эта проверка завершается так же, сначала исправьте настройку прокси. Если она проходит успешно, отказ касается только хоста артефактов.

2052* Если ваша сеть позволяет Claude Code достичь хоста артефакта напрямую, добавьте `.frame.claudeusercontent.com` в [`NO_PROXY`](/docs/ru/network-config#environment-variables). Сохраняйте запись узкой: более широкая запись `.claudeusercontent.com` также обходит прокси для `bridge.claudeusercontent.com`, который организациям с [IP allowlisting](/docs/ru/network-config#organization-ip-allowlists-and-proxy-egress) нужно сохранить на прокси.2055* Если ваша сеть позволяет Claude Code обращаться к хосту артефактов напрямую, добавьте `.frame.claudeusercontent.com` в [`NO_PROXY`](/docs/ru/network-config#environment-variables). Не расширяйте эту запись: более широкая запись `.claudeusercontent.com` также направляет в обход прокси `bridge.claudeusercontent.com`, который организациям со [списками разрешённых IP-адресов](/docs/ru/network-config#organization-ip-allowlists-and-proxy-egress) нужно оставлять за прокси.

2053 2056 

2054До версии v2.1.238 Claude Code сообщал об отказанном туннеле как об общей ошибке сети.2057До версии v2.1.238 Claude Code сообщал об отказе в туннеле как об общей сетевой ошибке.

2055 2058 

2056<h3 id="the-cloud-environments-service-returned-an-empty-or-unexpected-response">2059<h3 id="the-cloud-environments-service-returned-an-empty-or-unexpected-response">

2057 The cloud environments service returned an empty or unexpected response2060 The cloud environments service returned an empty or unexpected response

2058</h3>2061</h3>

2059 2062 

2060Claude Code запрашивает ваш список [cloud environments](/docs/ru/cloud-environments) в нескольких местах, например, когда вы создаёте облачный сеанс из CLI или запускаете [`/remote-env`](/docs/ru/cloud-environments#select-an-environment-from-the-cli). Когда он не может прочитать ответ сервера, он показывает одно из этих сообщений:2063Claude Code запрашивает список ваших [облачных сред](/docs/ru/cloud-environments) в нескольких случаях, например когда вы создаёте облачную сессию из CLI или выполняете [`/remote-env`](/docs/ru/cloud-environments#select-an-environment-from-the-cli). Когда он не может прочитать ответ сервера, он показывает одно из этих сообщений:

2061 2064 

2062```text theme={null}2065```text theme={null}

2063The cloud environments service returned an empty response (HTTP 200 with no body). This is usually temporary — try again in a moment.2066The cloud environments service returned an empty response (HTTP 200 with no body). This is usually temporary — try again in a moment.


2065The cloud environments service returned a response in an unexpected format (HTTP 200 without a usable environments list). This is usually temporary — try again in a moment.2068The cloud environments service returned a response in an unexpected format (HTTP 200 without a usable environments list). This is usually temporary — try again in a moment.

2066```2069```

2067 2070 

2068Сервер принял запрос, но ответил телом, которое не является списком сред: пусто, не JSON или JSON без списка. Это обычно сопровождает сбой на стороне сервиса и очищается самостоятельно. В зависимости от поверхности, которая запросила список, Claude Code может добавить префикс, такой как `couldn't list environments:` в диалоговом окне `/remote-env`.2071Сервер принял запрос, но вернул тело, которое не является списком сред: пустое, не JSON или JSON без списка. Обычно это сопровождает сбой на стороне сервиса и проходит само. В зависимости от интерфейса, запросившего список, Claude Code может добавить префикс, например `couldn't list environments:` в диалоговом окне `/remote-env`.

2069 2072 

2070**Что делать:**2073**Что делать:**

2071 2074 

2072* Повторите действие. Claude Code запрашивает список снова каждый раз2075* Повторите действие. Claude Code каждый раз запрашивает список заново

2073* Если сообщение продолжает появляться, проверьте [status.claude.com](https://status.claude.com) на наличие активных инцидентов2076* Если сообщение продолжает появляться, проверьте [status.claude.com](https://status.claude.com) на наличие активных инцидентов

2074 2077 

2075До версии v2.1.236 Claude Code показывал необработанную ошибку JavaScript TypeError вместо этих сообщений.2078До версии v2.1.236 Claude Code вместо этих сообщений показывал необработанную ошибку JavaScript TypeError.

2076 2079 

2077<h3 id="couldnt-reconnect-to-your-remote-control-session">2080<h3 id="couldnt-reconnect-to-your-remote-control-session">

2078 Couldn't reconnect to your Remote Control session2081 Couldn't reconnect to your Remote Control session


2082Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume.2085Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume.

2083```2086```

2084 2087 

2085Возобновление с помощью `claude --resume` или `claude --continue` переподключается к сеансу [Remote Control](/docs/ru/remote-control), записанному в этом разговоре. Это сообщение означает, что переподключение не удалось по причине, которая может быть временной, такой как сетевой сбой или ошибка сервера, поэтому Claude Code не может подтвердить, существует ли удалённый сеанс. Ваш локальный сеанс продолжает работать без Remote Control.2088При возобновлении с помощью `claude --resume` или `claude --continue` Claude Code повторно подключается к сессии [Remote Control](/docs/ru/remote-control), записанной в этом диалоге. Это сообщение означает, что повторное подключение не удалось по причине, которая может быть временной, например из-за сетевого сбоя или ошибки сервера, поэтому Claude Code не может подтвердить, существует ли ещё удалённая сессия. Ваша локальная сессия продолжает работать без Remote Control.

2086 2089 

2087**Что делать:**2090**Что делать:**

2088 2091 

2089* Запустите `/remote-control` для повторной попытки подключения2092* Выполните `/remote-control`, чтобы повторить попытку подключения

2090* Запустите новый сеанс с помощью `claude --remote-control`, чтобы создать новый сеанс Remote Control2093* Запустите новую сессию с помощью `claude --remote-control`, чтобы создать новую сессию Remote Control

2091* Для других сообщений запуска Remote Control см. [Troubleshoot Remote Control](/docs/ru/remote-control#troubleshooting)2094* Другие сообщения при запуске Remote Control описаны в разделе [Устранение неполадок Remote Control](/docs/ru/remote-control#troubleshooting)

2092 2095 

2093Если сервер вместо этого сообщает, что предыдущий сеанс исчез, вы не видите это сообщение. Claude Code запускает новый сеанс на его месте или показывает [`Previous session is unavailable — run /remote-control to start a new one`](/docs/ru/remote-control#previous-session-is-unavailable).2096Если сервер вместо этого сообщает, что предыдущей сессии больше нет, вы не увидите это сообщение. Claude Code запустит вместо неё новую сессию или покажет [`Previous session is unavailable — run /remote-control to start a new one`](/docs/ru/remote-control#previous-session-is-unavailable).

2094 2097 

2095<h3 id="sessions-ended-while-this-machine-was-offline">2098<h3 id="sessions-ended-while-this-machine-was-offline">

2096 Sessions ended while this machine was offline2099 Sessions ended while this machine was offline

2097</h3>2100</h3>

2098 2101 

2099Claude Code показывает это сообщение в терминале, запускающем [`claude remote-control`](/docs/ru/remote-control#start-a-remote-control-session), после того как ваша машина была в автономном режиме достаточно долго, чтобы сервер очистил среду Remote Control, которую ваша машина обслуживала. Сеансы в этой среде закончились, и вы не можете их возобновить. Количество — это количество сеансов, которые закончились.2102Claude Code показывает это сообщение в терминале, где запущен [`claude remote-control`](/docs/ru/remote-control#start-a-remote-control-session), после того как ваша машина находилась офлайн настолько долго, что сервер удалил среду Remote Control, которую обслуживала ваша машина. Сессии в этой среде завершились, и возобновить их нельзя. Число в сообщении — количество завершившихся сессий.

2100 2103 

2101```text theme={null}2104```text theme={null}

21022 sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.21052 sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.


2104 2107 

2105**Что делать:**2108**Что делать:**

2106 2109 

2107* Когда Claude Code перечисляет сохранённые worktrees под этим сообщением, подберите любую незафиксированную работу из них2110* Если под этим сообщением Claude Code перечисляет сохранённые worktree, заберите из них незафиксированную работу

2108* Запустите `claude remote-control` для запуска свежей среды2111* Выполните `claude remote-control`, чтобы запустить новую среду

2109 2112 

2110<h3 id="couldnt-share-the-transcript">2113<h3 id="couldnt-share-the-transcript">

2111 Couldn't share the transcript2114 Couldn't share the transcript

2112</h3>2115</h3>

2113 2116 

2114После того как вы согласитесь поделиться стенограммой вашего сеанса из приглашения опроса, такого как [session quality survey](/docs/ru/data-usage#session-quality-surveys), Claude Code загружает её в Anthropic или сохраняет локальный архив вместо этого на сторонних поставщиков, на сеансах [Claude apps gateway](/docs/ru/claude-apps-gateway) и когда нет доступных учётных данных Anthropic. Это сообщение означает, что общий доступ не завершился.2117После того как вы соглашаетесь поделиться транскриптом сессии в окне опроса, например [опроса о качестве сессии](/docs/ru/data-usage#session-quality-surveys), Claude Code загружает его в Anthropic либо вместо этого сохраняет локальный архив — при использовании сторонних поставщиков, в сессиях [Claude apps gateway](/docs/ru/claude-apps-gateway) и когда учётные данные Anthropic недоступны. Это сообщение означает, что отправка не завершилась.

2115 2118 

2116```text theme={null}2119```text theme={null}

2117Couldn't share the transcript.2120Couldn't share the transcript.

2118```2121```

2119 2122 

2120Загрузка должна соответствовать лимиту 8 MiB. На длинном сеансе Claude Code прогрессивно отбрасывает части общего доступа, параметры модели последнего запроса в первую очередь, затем структурированный разговор и стенограммы подагента, и показывает это сообщение только когда никакая сокращённая версия не может быть отправлена или сетевая или ошибка сервера останавливает загрузку. Когда Claude Code сохраняет локальный архив вместо этого, сообщение означает, что он не мог записать архив.2123Загрузка должна укладываться в лимит 8 MiB. В длинной сессии Claude Code постепенно исключает части отправляемых данных — сначала настройки модели последнего запроса, затем структурированный диалог и транскрипты субагентов — и показывает это сообщение, когда ни одну сокращённую версию отправить не удаётся или загрузку прерывает сетевая ошибка либо ошибка сервера. Когда Claude Code вместо загрузки сохраняет локальный архив, сообщение означает, что записать архив не удалось.

2121 2124 

2122**Что делать:**2125**Что делать:**

2123 2126 

2124* Запустите `/feedback` для отправки стенограммы с описанием того, что произошло. См. [Report an error](#report-an-error), если `/feedback` недоступен в вашей среде2127* Выполните `/feedback`, чтобы отправить транскрипт с описанием того, что произошло. Если `/feedback` недоступна в вашей среде, см. [Сообщить об ошибке](#report-an-error)

2125* Если другие запросы также не удаются, проверьте ваше сетевое соединение и см. [Unable to connect to API](#unable-to-connect-to-api)2128* Если другие запросы тоже завершаются ошибкой, проверьте сетевое подключение и см. [Unable to connect to API](#unable-to-connect-to-api)

2126 2129 

2127<h3 id="couldnt-send-feedback">2130<h3 id="couldnt-send-feedback">

2128 Couldn't send feedback2131 Couldn't send feedback

2129</h3>2132</h3>

2130 2133 

2131Вы отправили отчёт из диалогового окна [`/feedback`, `/bug`, или `/share`](/docs/ru/commands#all-commands) и загрузка в Anthropic не удалась. Диалоговое окно сохраняет ваш текст, чтобы вы могли повторить попытку.2134Вы отправили отчёт из [диалогового окна `/feedback`, `/bug` или `/share`](/docs/ru/commands#all-commands), и загрузка в Anthropic не удалась. Диалоговое окно сохраняет ваш текст, чтобы вы могли повторить попытку.

2132 2135 

2133```text theme={null}2136```text theme={null}

2134Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.2137Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.

2135```2138```

2136 2139 

2137Текст после префикса указывает, что не удалось:2140Текст после префикса указывает, что именно не удалось:

2138 2141 

2139* **`: not signed in. Run /login, then retry.`**: диалоговое окно загружает только когда Claude Code нашёл учётные данные Anthropic при его открытии, и ни один из них не был пригоден к использованию к моменту отправки. Например, вы вышли на этой машине в то же время, или ваш вход больше не может быть обновлён.2142* **`: not signed in. Run /login, then retry.`**: диалоговое окно выполняет загрузку, только если при его открытии Claude Code нашёл учётные данные Anthropic, а к моменту отправки пригодных учётных данных не осталось. Например, вы тем временем вышли из системы на этой машине или ваш вход больше не удалось обновить.

2140* **Скобка**: `(server returned <status>)` — это код ответа сервиса; `(request timed out)` и `(couldn't reach the service)` — это сетевые сбои. Когда Claude Code не может назвать причину, скобка отсутствует.2143* **Текст в скобках**: `(server returned <status>)` — это код ответа сервиса; `(request timed out)` и `(couldn't reach the service)` — сетевые сбои. Когда Claude Code не может назвать причину, текста в скобках нет.

2141 2144 

2142В [feedback drafts queue](/docs/ru/tools-reference#sendfeedback-tool-behavior) тот же сбой заканчивается с `The draft is still queued. Try again later.` вместо этого, и черновик остаётся в очереди для другой попытки.2145В [очереди черновиков отзывов](/docs/ru/tools-reference#sendfeedback-tool-behavior) тот же сбой вместо этого заканчивается на `The draft is still queued. Try again later.`, и черновик остаётся в очереди для следующей попытки.

2143 2146 

2144**Что делать:**2147**Что делать:**

2145 2148 

2146* Для формулировки не подписано, запустите `/login` и отправьте снова2149* При формулировке о том, что вход не выполнен, выполните `/login` и отправьте снова

2147* В противном случае отправьте снова; если другие запросы также не удаются, проверьте ваше сетевое соединение и см. [Unable to connect to API](#unable-to-connect-to-api)2150* В остальных случаях отправьте снова; если другие запросы тоже завершаются ошибкой, проверьте сетевое подключение и см. [Unable to connect to API](#unable-to-connect-to-api)

2148* Если это продолжает не удаваться, подайте отчёт на [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues), как говорит сообщение2151* Если сбой повторяется, создайте отчёт на [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues), как указано в сообщении

2149 2152 

2150До версии v2.1.281 каждая отправка не удавалась с этим сообщением один раз, когда Remote Control **Stop** или срочное кросс-сеансовое сообщение прибыло, пока диалоговое окно было открыто. На этих версиях закройте диалоговое окно, откройте его снова и отправьте снова.2153До версии v2.1.281 любая отправка завершалась этим сообщением, если, пока диалоговое окно было открыто, поступила команда **Stop** от Remote Control или срочное сообщение из другой сессии. В этих версиях закройте диалоговое окно, откройте его снова и повторите отправку.

2151 2154 

2152<h2 id="request-errors">2155<h2 id="request-errors">

2153 Ошибки запроса2156 Ошибки запроса


2865* Если ваш запрос не касался кибербезопасности, выполните `/feedback`, чтобы сообщить о ложном срабатывании2868* Если ваш запрос не касался кибербезопасности, выполните `/feedback`, чтобы сообщить о ложном срабатывании

2866* Чтобы продолжить работу в той же сессии, дважды нажмите Esc или выполните `/rewind`, чтобы вернуться к чекпоинту до хода, вызвавшего пометку, затем выберите другой подход. См. раздел [Чекпоинты](/docs/ru/checkpointing).2869* Чтобы продолжить работу в той же сессии, дважды нажмите Esc или выполните `/rewind`, чтобы вернуться к чекпоинту до хода, вызвавшего пометку, затем выберите другой подход. См. раздел [Чекпоинты](/docs/ru/checkpointing).

2867 2870 

2871<h3 id="output-blocked-by-content-filtering-policy">

2872 Output blocked by content filtering policy

2873</h3>

2874 

2875Фильтр содержимого вывода API остановил ответ, который генерировал Claude. Текст сообщения приходит от API:

2876 

2877```text theme={null}

2878API Error: Output blocked by content filtering policy

2879```

2880 

2881Claude Code показывает ошибку сразу после получения блокировки и на этом завершает запрос. Он не повторяет запрос, не отправляет его повторно без потоковой передачи и не переключается на [резервную модель](/docs/ru/model-config#fallback-model-chains). До версии 2.1.285 Claude Code мог повторно отправлять заблокированный запрос и повторять попытки, иногда в течение нескольких минут, прежде чем показать ошибку.

2882 

2883**Что делать:**

2884 

2885* Переформулируйте последнее сообщение или выберите другой подход

2886* Чтобы вернуться к чекпоинту до хода, вызвавшего блокировку, дважды нажмите Esc или выполните `/rewind`. См. раздел [Чекпоинты](/docs/ru/checkpointing)

2887 

2868<h2 id="installation-errors">2888<h2 id="installation-errors">

2869 Ошибки установки2889 Ошибки установки

2870</h2>2890</h2>


4414 Teammate's agent definition was not restored4434 Teammate's agent definition was not restored

4415</h3>4435</h3>

4416 4436 

4417Claude отправил сообщение остановленному участнику [команды агентов](/docs/ru/agent-teams), и Claude Code вернул его без повторного применения [определения субагента](/docs/ru/agent-teams#use-subagent-definitions-for-teammates), из которого он был порождён, потому что файл определения получен из папки без сохранённого доверия. Уведомление следует за отчётом о возобновлении в результате инструмента отправляющего агента:4437Claude отправил сообщение остановленному участнику [команды агентов](/docs/ru/agent-teams), и Claude Code вернул его без повторного применения [определения субагента](/docs/ru/agent-teams#use-subagent-definitions-for-teammates), из которого он был порождён. Уведомление следует за отчётом о возобновлении в результате инструмента отправляющего агента и называет причину. Когда файл определения получен из папки без сохранённого доверия, оно выглядит так:

4418 4438 

4419```text wrap theme={null}4439```text wrap theme={null}

4420Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.4440Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.

hooks.md +611 −606

Details

1156Для расширенных примеров, включая валидацию команд Bash, фильтрацию запросов и скрипты автоматического одобрения, см. [What you can automate](/docs/ru/hooks-guide#what-you-can-automate) в руководстве и [Bash command validator reference implementation](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).1156Для расширенных примеров, включая валидацию команд Bash, фильтрацию запросов и скрипты автоматического одобрения, см. [What you can automate](/docs/ru/hooks-guide#what-you-can-automate) в руководстве и [Bash command validator reference implementation](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).

1157 1157 

1158<h2 id="hook-events">1158<h2 id="hook-events">

1159 События hooks1159 События хуков

1160</h2>1160</h2>

1161 1161 

1162Каждое событие соответствует точке в жизненном цикле Claude Code, где могут выполняться hooks. Разделы ниже упорядочены в соответствии с жизненным циклом: от настройки сеанса через агентский цикл до завершения сеанса. Каждый раздел описывает, когда срабатывает событие, какие matchers оно поддерживает, какой JSON-ввод оно получает и как управлять поведением через вывод.1162Каждое событие соответствует точке жизненного цикла Claude Code, в которой могут выполняться хуки. Разделы ниже упорядочены в соответствии с жизненным циклом: от настройки сессии через агентный цикл до завершения сессии. В каждом разделе описано, когда срабатывает событие, какие значения matcher оно поддерживает, какие входные данные JSON получает и как управлять поведением через вывод.

1163 1163 

1164<h3 id="sessionstart">1164<h3 id="sessionstart">

1165 SessionStart1165 SessionStart

1166</h3>1166</h3>

1167 1167 

1168Запускается, когда Claude Code начинает новый сеанс или возобновляет существующий сеанс. Полезно для загрузки контекста разработки, такого как существующие проблемы или недавние изменения в вашей кодовой базе, или для установки переменных окружения. Для статического контекста, который не требует скрипта, используйте [CLAUDE.md](/docs/ru/memory) вместо этого.1168Выполняется, когда Claude Code запускает новую сессию или возобновляет существующую. Полезно для загрузки контекста разработки, например существующих задач или недавних изменений в кодовой базе, или для настройки переменных окружения. Для статического контекста, которому не нужен скрипт, используйте вместо этого [CLAUDE.md](/docs/ru/memory).

1169 1169 

1170SessionStart запускается в каждом сеансе, поэтому держите эти hooks быстрыми. Поддерживаются только hooks `type: "command"` и `type: "mcp_tool"`. См. [MCP tool hook fields](#mcp-tool-hook-fields) для информации о том, когда выполняются hooks `mcp_tool`.1170SessionStart выполняется в каждой сессии, поэтому такие хуки должны работать быстро. Поддерживаются только хуки `type: "command"` и `type: "mcp_tool"`. О том, когда выполняются хуки `mcp_tool`, см. [Поля хуков MCP-инструментов](#mcp-tool-hook-fields).

1171 1171 

1172Значение matcher соответствует тому, как был инициирован сеанс:1172Значение matcher соответствует тому, как была инициирована сессия:

1173 1173 

1174| Matcher | Когда срабатывает |1174| Matcher | Когда срабатывает |

1175| :- | :- |1175| :- | :- |

1176| `startup` | Новый сеанс |1176| `startup` | Новая сессия |

1177| `resume` | `--resume`, `--continue` или `/resume` |1177| `resume` | `--resume`, `--continue` или `/resume` |

1178| `clear` | `/clear` |1178| `clear` | `/clear` |

1179| `compact` | Автоматическое или ручное сжатие |1179| `compact` | Автоматическое или ручное сжатие контекста |

1180| `fork` | Новый сеанс, разветвленный из существующего: `--fork-session` с `--resume` или `--continue`, фоновая копия `/fork`, `/branch` или разговор, который вы [переместили в фон](/docs/ru/agent-view#from-inside-a-session) |1180| `fork` | Новая сессия, ответвлённая от существующей: `--fork-session` вместе с `--resume` или `--continue`, фоновая копия `/fork`, `/branch` или диалог, который вы [перевели в фон](/docs/ru/agent-view#from-inside-a-session) |

1181 1181 

1182До версии 2.1.214 разветвленные сеансы сообщали источник `"resume"`.1182До v2.1.214 ответвлённые сессии сообщали источник `"resume"`.

1183 1183 

1184Когда вы запускаете интерактивный сеанс, возобновляете разговор при запуске с `--continue` или `--resume` или запускаете `/clear`, hooks SessionStart выполняются в фоне. Вы можете сразу начать печатать, и возобновленный разговор появляется без ожидания завершения hooks. Первый ответ Claude все еще ждет завершения hooks, поэтому их контекст достигает Claude.1184Когда вы запускаете интерактивную сессию, возобновляете диалог при запуске с помощью `--continue` или `--resume` или выполняете `/clear`, хуки SessionStart выполняются в фоне. Вы можете сразу начать вводить текст, а возобновлённый диалог появляется, не дожидаясь хуков. Первый ответ Claude всё же ожидает завершения хуков, чтобы их контекст дошёл до Claude.

1185 1185 

1186Когда вы переключаете разговоры с `/resume` внутри сеанса, переключение ждет завершения hooks. Если вы запустите `/clear` или переключитесь на другой разговор, пока фоновые hooks все еще выполняются, ничего из того, что они возвращают, не применяется к сеансу.1186Когда вы переключаете диалоги с помощью `/resume` внутри сессии, переключение, напротив, ожидает завершения хуков. Если вы выполните `/clear` или переключитесь на другой диалог, пока фоновые хуки ещё работают, ничто из возвращённого ими к сессии не применяется.

1187 1187 

1188То же самое ожидание применяется при запуске, включая возобновленный сеанс: подсказка, которую вы отправляете, пока выполняются hooks SessionStart, не достигает Claude, пока они не завершатся.1188То же ожидание действует при запуске, в том числе для возобновлённой сессии: промпт, отправленный, пока хуки SessionStart ещё выполняются, не дойдёт до Claude, пока они не завершатся.

1189 1189 

1190Во время любого ожидания нажмите `Esc`, чтобы вернуть подсказку в ввод без отправки. Hooks продолжают выполняться.1190Во время любого из этих ожиданий нажмите `Esc`, чтобы вернуть промпт в поле ввода, не отправляя его. Хуки продолжат выполняться.

1191 1191 

1192<h4 id="sessionstart-input">1192<h4 id="sessionstart-input">

1193 SessionStart input1193 Входные данные SessionStart

1194</h4>1194</h4>

1195 1195 

1196Помимо [общих полей ввода](#common-input-fields), hooks SessionStart получают `source` и опционально `model`, `agent_type` и `session_title`:1196Помимо [общих входных полей](#common-input-fields), хуки SessionStart получают `source` и, необязательно, `model`, `agent_type` и `session_title`:

1197 1197 

1198| Поле | Описание |1198| Поле | Описание |

1199| :- | :- |1199| :- | :- |

1200| `source` | Как был запущен сеанс: `"startup"` для новых сеансов, `"resume"` для возобновленных сеансов, `"clear"` после `/clear`, `"compact"` после сжатия или `"fork"` для нового сеанса, разветвленного из существующего |1200| `source` | Как началась сессия: `"startup"` для новых сессий, `"resume"` для возобновлённых, `"clear"` после `/clear`, `"compact"` после сжатия контекста или `"fork"` для новой сессии, ответвлённой от существующей |

1201| `model` | Идентификатор активной модели. Может быть опущен, например после `/clear` или когда сеанс восстанавливается через восстановление разговора, поэтому проверьте наличие поля перед его чтением |1201| `model` | Идентификатор активной модели. Может отсутствовать, например после `/clear` или когда сессия восстановлена через восстановление диалога, поэтому проверяйте наличие поля перед чтением |

1202| `agent_type` | Имя агента, присутствует, когда вы запускаете Claude Code с `claude --agent <name>` |1202| `agent_type` | Имя агента; присутствует, когда вы запускаете Claude Code командой `claude --agent <name>` |

1203| `session_title` | Текущее название сеанса, если оно уже установлено, например через `--name`, `/rename`, вывод hook `sessionTitle` или метод `renameSession()` Agent SDK. Hook, который выдает `sessionTitle`, может сначала проверить это поле, чтобы избежать перезаписи существующего пользовательского названия |1203| `session_title` | Пользовательское название сессии; присутствует, если оно задано, например через `--name`, `/rename`, вывод хука `sessionTitle` или `renameSession()` в Agent SDK. Хук, выдающий `sessionTitle`, может сначала проверить это поле, чтобы не перезаписать существующее пользовательское название |

1204 1204 

1205Сеанс, который вы не назвали, все еще может иметь [сгенерированное название](/docs/ru/sessions#name-your-sessions). Это название не является пользовательским названием и не появляется в `session_title`.1205У сессии, которую вы не назвали, всё равно может быть [сгенерированное название](/docs/ru/sessions#name-your-sessions). Такое название не является пользовательским и не появляется в `session_title`.

1206 1206 

1207Когда `source` имеет значение `"resume"` или `"fork"` и транскрипт содержит по крайней мере один ответ от Claude, hooks SessionStart также получают четыре поля ниже. Ваш hook может использовать их для сообщения о том, какие затраты на возобновление устаревшего разговора до первого запроса, например в [`systemMessage`](#json-output). Эти поля требуют Claude Code v2.1.251 или позже.1207Когда `source` равно `"resume"` или `"fork"` и транскрипт содержит хотя бы один ответ от Claude, хуки SessionStart также получают четыре поля ниже. Ваш хук может использовать их, чтобы до первого запроса сообщить, во что обойдётся возобновление устаревшего диалога, например в [`systemMessage`](#json-output). Для этих полей требуется Claude Code v2.1.251 или новее.

1208 1208 

1209| Поле | Описание |1209| Поле | Описание |

1210| :- | :- |1210| :- | :- |

1211| `seconds_since_last_response` | Настоящее время в секундах с момента последнего ответа в возобновленном транскрипте |1211| `seconds_since_last_response` | Реальное время в секундах с момента последнего ответа в возобновлённом транскрипте |

1212| `context_tokens` | Токены, которые первый запрос возобновленного сеанса повторно отправляет как его подсказка |1212| `context_tokens` | Токены, которые первый запрос возобновлённой сессии повторно отправляет в качестве промпта |

1213| `prompt_cache_likely_expired` | `true`, когда последний ответ старше [времени жизни кэша подсказок](/docs/ru/prompt-caching#cache-lifetime) сеанса или более позднее сжатие заменило кэшированный разговор |1213| `prompt_cache_likely_expired` | `true`, когда последний ответ старше [времени жизни кэша промптов](/docs/ru/prompt-caching#cache-lifetime) сессии или более позднее сжатие контекста заменило кэшированный диалог |

1214| `estimated_cache_write_usd` | Предполагаемая стоимость в долларах США записи `context_tokens` в кэш подсказок на модели сеанса, исключая ответ |1214| `estimated_cache_write_usd` | Оценочная стоимость в долларах США записи `context_tokens` в кэш промптов на модели сессии, без учёта ответа |

1215 1215 

1216Этот пример показывает ввод для сеанса, возобновленного через 90 минут после его последнего ответа:1216В этом примере показаны входные данные для сессии, возобновлённой через 90 минут после последнего ответа:

1217 1217 

1218```json theme={null}1218```json theme={null}

1219{1219{


1234 Управление решениями SessionStart1234 Управление решениями SessionStart

1235</h4>1235</h4>

1236 1236 

1237Claude Code добавляет stdout, который он [рассматривает как простой текст](#exit-code-0), в контекст Claude. Помимо [полей вывода JSON](#json-output), доступных всем hooks, вы можете вернуть эти поля, специфичные для события:1237Claude Code добавляет в контекст Claude stdout, который он [обрабатывает как обычный текст](#exit-code-0). Помимо [полей вывода JSON](#json-output), доступных всем хукам, вы можете возвращать следующие поля, специфичные для события:

1238 1238 

1239| Поле | Описание |1239| Поле | Описание |

1240| :- | :- |1240| :- | :- |

1241| `additionalContext` | Строка, добавленная в контекст Claude в начале разговора, перед первой подсказкой. См. [Add context for Claude](#add-context-for-claude) для информации о том, как доставляется текст и что в него поместить |1241| `additionalContext` | Строка, добавляемая в контекст Claude в начале диалога, перед первым промптом. О том, как доставляется текст и что в него включать, см. [Добавление контекста для Claude](#add-context-for-claude) |

1242| `initialUserMessage` | Строка, используемая как первое сообщение пользователя сеанса. Применяется в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`, где она становится первым ходом, даже если подсказка не предоставлена. Если подсказка предоставлена, она следует как следующий ход. В отличие от `additionalContext`, который присоединяется к существующему ходу, это создает ход |1242| `initialUserMessage` | Строка, используемая как первое пользовательское сообщение сессии. Применяется в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`, где она становится первым ходом, даже если промпт не передан. Если промпт передан, он следует как следующий ход. В отличие от `additionalContext`, который прикрепляется к существующему ходу, это поле создаёт ход |

1243| `sessionTitle` | Устанавливает название сеанса с тем же эффектом, что и `/rename`. Используйте для автоматического именования сеансов из папки запуска, ветки git или имени worktree. Применяется, когда `source` имеет значение `"startup"`, `"resume"` или `"fork"`; игнорируется на `"clear"` и `"compact"` |1243| `sessionTitle` | Задаёт название сессии с тем же эффектом, что и `/rename`. Используйте для автоматического именования сессий по каталогу запуска, ветке git или имени worktree. Применяется, когда `source` равно `"startup"`, `"resume"` или `"fork"`; игнорируется при `"clear"` и `"compact"` |

1244| `watchPaths` | Массив абсолютных путей для наблюдения за событиями [FileChanged](#filechanged) во время этого сеанса |1244| `watchPaths` | Массив абсолютных путей для отслеживания событий [FileChanged](#filechanged) в этой сессии |

1245| `reloadSkills` | Логическое значение. Когда `true`, Claude Code повторно сканирует [skill](/docs/ru/skills) и директории команд после завершения hooks SessionStart, поэтому skills, установленные hook, доступны в том же сеансе, начиная с первой подсказки |1245| `reloadSkills` | Логическое значение. При `true` Claude Code повторно сканирует каталоги [скиллов](/docs/ru/skills) и команд после завершения хуков SessionStart, так что установленные хуком скиллы доступны в той же сессии, начиная с первого промпта |

1246 1246 

1247```json theme={null}1247```json theme={null}

1248{1248{


1254}1254}

1255```1255```

1256 1256 

1257Поскольку простой stdout уже достигает Claude для этого события, hook, который только загружает контекст, может печатать в stdout напрямую без построения JSON. Используйте форму JSON, когда вам нужно объединить контекст с другими полями, такими как `sessionTitle`.1257Поскольку для этого события обычный stdout и так доходит до Claude, хук, который только загружает контекст, может выводить данные прямо в stdout, не формируя JSON. Используйте форму JSON, когда нужно совместить контекст с другими полями, например `sessionTitle`.

1258 1258 

1259Используйте `reloadSkills`, когда hook SessionStart устанавливает или обновляет skills. Обнаружение skills обычно выполняется до завершения hooks SessionStart, поэтому файлы, которые hook записывает в `~/.claude/skills/` или `.claude/skills/`, в противном случае появятся только в следующем сеансе. Этот пример синхронизирует репозиторий общих skills и запрашивает повторное сканирование:1259Используйте `reloadSkills`, когда хук SessionStart устанавливает или обновляет скиллы. Обнаружение скиллов обычно выполняется до завершения хуков SessionStart, поэтому файлы, которые хук записывает в `~/.claude/skills/` или `.claude/skills/`, иначе появились бы только в следующей сессии. В этом примере синхронизируется общий репозиторий скиллов и запрашивается повторное сканирование:

1260 1260 

1261```bash theme={null}1261```bash theme={null}

1262#!/bin/bash1262#!/bin/bash


1267echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1267echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1268```1268```

1269 1269 

1270URL репозитория — это заполнитель; замените его на URL вашего репозитория skills. С заполнителем клонирование не удается и выводит сообщение `fatal:` в stderr. Stderr из hook SessionStart, который выходит с кодом 0, только информационный, поэтому запрос `reloadSkills` все еще применяется.1270URL репозитория — это заполнитель; замените его на собственный репозиторий скиллов. С заполнителем клонирование завершится ошибкой и выведет сообщение `fatal:` в stderr. Stderr хука SessionStart, завершившегося с кодом 0, носит лишь информационный характер, поэтому запрос `reloadSkills` всё равно применяется.

1271 1271 

1272<h4 id="persist-environment-variables">1272<h4 id="persist-environment-variables">

1273 Persist environment variables1273 Сохранение переменных окружения

1274</h4>1274</h4>

1275 1275 

1276Hooks SessionStart имеют доступ к переменной окружения `CLAUDE_ENV_FILE`, которая предоставляет путь к файлу, где вы можете сохранять переменные окружения для последующих команд Bash.1276Хукам SessionStart доступна переменная окружения `CLAUDE_ENV_FILE`, содержащая путь к файлу, в котором можно сохранять переменные окружения для последующих команд Bash.

1277 1277 

1278Чтобы установить отдельные переменные окружения, напишите операторы `export` в `CLAUDE_ENV_FILE`. Используйте добавление (`>>`) для сохранения переменных, установленных другими hooks:1278Чтобы задать отдельные переменные окружения, запишите инструкции `export` в `CLAUDE_ENV_FILE`. Используйте дозапись (`>>`), чтобы сохранить переменные, заданные другими хуками:

1279 1279 

1280```bash theme={null}1280```bash theme={null}

1281#!/bin/bash1281#!/bin/bash


1289exit 01289exit 0

1290```1290```

1291 1291 

1292Чтобы захватить все изменения окружения из команд настройки, сравните экспортированные переменные до и после:1292Чтобы зафиксировать все изменения окружения, внесённые командами настройки, сравните экспортированные переменные до и после:

1293 1293 

1294```bash theme={null}1294```bash theme={null}

1295#!/bin/bash1295#!/bin/bash


1309```1309```

1310 1310 

1311<Note>1311<Note>

1312 `CLAUDE_ENV_FILE` доступен для hooks SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) и [FileChanged](#filechanged). Другие типы hooks не имеют доступа к этой переменной.1312 `CLAUDE_ENV_FILE` доступна для хуков SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) и [FileChanged](#filechanged). Хукам других типов эта переменная недоступна.

1313</Note>1313</Note>

1314 1314 

1315<h3 id="setup">1315<h3 id="setup">

1316 Setup1316 Setup

1317</h3>1317</h3>

1318 1318 

1319Срабатывает только при запуске Claude Code с `--init-only` или с `--init` или `--maintenance` в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`. Не срабатывает при нормальном запуске. Используйте его для одноразовой установки зависимостей или запланированной очистки, которую вы явно запускаете из CI или скриптов, отдельно от нормального запуска сеанса. Для инициализации для каждого сеанса используйте [SessionStart](#sessionstart) вместо этого.1319Срабатывает, только когда вы запускаете Claude Code с `--init-only` либо с `--init` или `--maintenance` в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`. При обычном запуске не срабатывает. Используйте его для однократной установки зависимостей или плановой очистки, которую вы явно запускаете из CI или скриптов, отдельно от обычного запуска сессии. Для инициализации каждой сессии используйте вместо этого [SessionStart](#sessionstart).

1320 1320 

1321Значение matcher соответствует флагу CLI, который запустил hook:1321Значение matcher соответствует флагу CLI, вызвавшему хук:

1322 1322 

1323| Matcher | Когда срабатывает |1323| Matcher | Когда срабатывает |

1324| :- | :- |1324| :- | :- |

1325| `init` | `claude --init-only` или `claude -p --init` |1325| `init` | `claude --init-only` или `claude -p --init` |

1326| `maintenance` | `claude -p --maintenance` |1326| `maintenance` | `claude -p --maintenance` |

1327 1327 

1328Когда вы запускаете `claude --init-only`, Claude Code запускает hooks Setup и hooks `SessionStart` с matcher `startup`, затем выходит без запуска разговора.1328Когда вы выполняете `claude --init-only`, Claude Code запускает хуки Setup и хуки `SessionStart` с matcher `startup`, а затем завершает работу, не начиная диалог.

1329 1329 

1330Когда вы запускаете или продолжаете разговор с `-p`, вам также нужно предоставить подсказку как аргумент или через stdin. Вы можете пропустить подсказку, когда hook `SessionStart` предоставляет [`initialUserMessage`](#sessionstart-decision-control) или когда вы возобновляете сеанс с [отложенным вызовом инструмента](#defer-a-tool-call-for-later).1330Когда вы начинаете или продолжаете диалог с `-p`, также нужно передать промпт — как аргумент или через stdin. Промпт можно не передавать, если хук `SessionStart` предоставляет [`initialUserMessage`](#sessionstart-decision-control) или если вы возобновляете сессию с [отложенным вызовом инструмента](#defer-a-tool-call-for-later).

1331 1331 

1332При успехе `--init-only` ничего не выводит на терминал. Чтобы подтвердить, что hooks выполнились, запустите с `claude --debug-file <path> --init-only`, заменив `<path>` на местоположение файла журнала, и проверьте журнал на наличие записей hooks Setup и SessionStart.1332При успехе `--init-only` ничего не выводит в терминал. Чтобы убедиться, что хуки выполнились, запустите `claude --debug-file <path> --init-only`, заменив `<path>` на расположение файла лога, и проверьте в логе записи хуков Setup и SessionStart.

1333 1333 

1334Поскольку Setup не срабатывает при каждом запуске, plugin, которому нужна установленная зависимость, не может полагаться только на Setup. Практический паттерн — проверить зависимость при первом использовании и установить при отсутствии, например hook или skill, который тестирует `${CLAUDE_PLUGIN_DATA}/node_modules` и запускает `npm install`, если отсутствует. См. [persistent data directory](/docs/ru/plugins/components#path-variables-and-persistent-data) для информации о том, где хранить установленные зависимости. Если вы распространяете ваш plugin через marketplace, вам может не понадобиться этот паттерн: Claude Code [автоматически устанавливает подходящие зависимости пакета Node.js](/docs/ru/plugins/loading#node-js-package-dependencies) при кэшировании plugin.1334Поскольку Setup срабатывает не при каждом запуске, плагин, которому нужна установленная зависимость, не может полагаться только на Setup. Практичный подход — проверять наличие зависимости при первом использовании и устанавливать её при отсутствии, например с помощью хука или скилла, который проверяет `${CLAUDE_PLUGIN_DATA}/node_modules` и выполняет `npm install`, если каталога нет. О том, где хранить установленные зависимости, см. [постоянный каталог данных](/docs/ru/plugins/components#path-variables-and-persistent-data). Если вы распространяете плагин через маркетплейс, этот подход может не понадобиться: Claude Code [автоматически устанавливает подходящие зависимости пакетов Node.js](/docs/ru/plugins/loading#node-js-package-dependencies) при кэшировании плагина.

1335 1335 

1336<h4 id="setup-input">1336<h4 id="setup-input">

1337 Setup input1337 Входные данные Setup

1338</h4>1338</h4>

1339 1339 

1340Помимо [общих полей ввода](#common-input-fields), hooks Setup получают поле `trigger`, установленное либо на `"init"`, либо на `"maintenance"`:1340Помимо [общих входных полей](#common-input-fields), хуки Setup получают поле `trigger` со значением `"init"` или `"maintenance"`:

1341 1341 

1342```json theme={null}1342```json theme={null}

1343{1343{


1353 Управление решениями Setup1353 Управление решениями Setup

1354</h4>1354</h4>

1355 1355 

1356Hooks Setup не могут блокировать; выполнение продолжается при любом коде выхода. При каждом коде выхода Claude Code отбрасывает [поля вывода JSON](#json-output) hook Setup, такие как `systemMessage`, `continue` и `hookSpecificOutput.additionalContext`. С `-p` stdout, stderr и код выхода hook Setup появляются в выводе запуска только как [`hook_response` события](/docs/ru/headless#read-session-metadata) при запуске с `--output-format stream-json --verbose`.1356Хуки Setup не могут блокировать; выполнение продолжается при любом коде выхода. При любом коде выхода Claude Code отбрасывает [поля вывода JSON](#json-output) хука Setup, такие как `systemMessage`, `continue` и `hookSpecificOutput.additionalContext`. С `-p` stdout, stderr и код выхода хука Setup появляются в выводе запуска только в виде [событий `hook_response`](/docs/ru/headless#read-session-metadata), когда вы запускаете с `--output-format stream-json --verbose`.

1357 1357 

1358Hooks Setup имеют доступ к `CLAUDE_ENV_FILE`. Переменные, записанные в этот файл, сохраняются в последующих командах Bash для сеанса, как в [hooks SessionStart](#persist-environment-variables). На `Setup` выполняются только hooks `type: "command"`. Hook `type: "mcp_tool"` на `Setup` всегда пропускается, как описано в [MCP tool hook fields](#mcp-tool-hook-fields).1358Хукам Setup доступна `CLAUDE_ENV_FILE`. Переменные, записанные в этот файл, сохраняются для последующих команд Bash в сессии, так же как в [хуках SessionStart](#persist-environment-variables). Для `Setup` выполняются только хуки `type: "command"`. Хук `type: "mcp_tool"` для `Setup` всегда пропускается, как описано в разделе [Поля хуков MCP-инструментов](#mcp-tool-hook-fields).

1359 1359 

1360<h3 id="instructionsloaded">1360<h3 id="instructionsloaded">

1361 InstructionsLoaded1361 InstructionsLoaded

1362</h3>1362</h3>

1363 1363 

1364Срабатывает, когда файл `CLAUDE.md` или `.claude/rules/*.md` загружается в контекст. Это событие срабатывает при запуске сеанса для файлов, загруженных с нетерпением, и снова позже, когда файлы загружаются с нетерпением, например когда Claude получает доступ к подпапке, которая содержит вложенный `CLAUDE.md`, или когда условные правила с frontmatter `paths:` совпадают. Hook не поддерживает блокировку или управление решениями. Он выполняется асинхронно в целях наблюдаемости.1364Срабатывает, когда файл `CLAUDE.md` или `.claude/rules/*.md` загружается в контекст. Это событие срабатывает при запуске сессии для файлов, загружаемых сразу, и снова позже, когда файлы загружаются отложенно, например когда Claude обращается к подкаталогу, содержащему вложенный `CLAUDE.md`, или когда срабатывают условные правила с frontmatter `paths:`. Хук не поддерживает блокировку и управление решениями. Он выполняется асинхронно в целях наблюдаемости.

1365 1365 

1366Это событие не срабатывает, когда Claude [читает `AGENTS.md` напрямую](/docs/ru/memory#agents-md) через параметр **Project instructions**. Оно срабатывает, когда `CLAUDE.md` импортирует ваш `AGENTS.md` с `load_reason`, установленным на `include`, как для любого другого импортированного файла, и когда `CLAUDE.md` является символической ссылкой на него, как обычная загрузка `CLAUDE.md`.1366Это событие не срабатывает, когда Claude [читает `AGENTS.md` напрямую](/docs/ru/memory#agents-md) через настройку **Project instructions**. Оно срабатывает, когда `CLAUDE.md` импортирует ваш `AGENTS.md` — с `load_reason`, равным `include`, как для любого другого импортированного файла, — и когда `CLAUDE.md` является символической ссылкой на него — как обычная загрузка `CLAUDE.md`.

1367 1367 

1368Matcher выполняется против `load_reason`. Например, используйте `"matcher": "session_start"` для срабатывания только для файлов, загруженных при запуске сеанса, или `"matcher": "path_glob_match|nested_traversal"` для срабатывания только для ленивых загрузок.1368Matcher сопоставляется с `load_reason`. Например, используйте `"matcher": "session_start"`, чтобы срабатывать только для файлов, загруженных при запуске сессии, или `"matcher": "path_glob_match|nested_traversal"`, чтобы срабатывать только при отложенных загрузках.

1369 1369 

1370<h4 id="instructionsloaded-input">1370<h4 id="instructionsloaded-input">

1371 InstructionsLoaded input1371 Входные данные InstructionsLoaded

1372</h4>1372</h4>

1373 1373 

1374Помимо [общих полей ввода](#common-input-fields), hooks InstructionsLoaded получают эти поля:1374Помимо [общих входных полей](#common-input-fields), хуки InstructionsLoaded получают следующие поля:

1375 1375 

1376| Поле | Описание |1376| Поле | Описание |

1377| :- | :- |1377| :- | :- |

1378| `file_path` | Абсолютный путь к файлу инструкций, который был загружен |1378| `file_path` | Абсолютный путь к загруженному файлу инструкций |

1379| `memory_type` | Область действия файла: `"User"`, `"Project"`, `"Local"` или `"Managed"` |1379| `memory_type` | Область действия файла: `"User"`, `"Project"`, `"Local"` или `"Managed"` |

1380| `load_reason` | Почему был загружен файл: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` или `"compact"`. Значение `"compact"` срабатывает, когда файлы инструкций перезагружаются после события сжатия |1380| `load_reason` | Почему файл был загружен: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` или `"compact"`. Значение `"compact"` срабатывает, когда файлы инструкций повторно загружаются после сжатия контекста |

1381| `globs` | Шаблоны glob путей из frontmatter `paths:` файла, если они есть. Присутствует только для загрузок `path_glob_match` |1381| `globs` | Glob-шаблоны путей из frontmatter `paths:` файла, если есть. Присутствует только для загрузок `path_glob_match` |

1382| `trigger_file_path` | Путь к файлу, доступ к которому запустил эту загрузку, для ленивых загрузок |1382| `trigger_file_path` | Путь к файлу, обращение к которому вызвало эту загрузку, для отложенных загрузок |

1383| `parent_file_path` | Путь к родительскому файлу инструкций, который включил этот, для загрузок `include` |1383| `parent_file_path` | Путь к родительскому файлу инструкций, который включил этот, для загрузок `include` |

1384 1384 

1385```json theme={null}1385```json theme={null}


1398 Управление решениями InstructionsLoaded1398 Управление решениями InstructionsLoaded

1399</h4>1399</h4>

1400 1400 

1401Hooks InstructionsLoaded не имеют управления решениями. Они не могут блокировать или изменять загрузку инструкций. Claude Code отбрасывает их [поля вывода JSON](#json-output), такие как `systemMessage` и `continue`. Используйте это событие для аудита журнала, отслеживания соответствия или наблюдаемости.1401У хуков InstructionsLoaded нет управления решениями. Они не могут блокировать или изменять загрузку инструкций. Claude Code отбрасывает их [поля вывода JSON](#json-output), такие как `systemMessage` и `continue`. Используйте это событие для журнала аудита, отслеживания соответствия требованиям или наблюдаемости.

1402 1402 

1403<h3 id="userpromptsubmit">1403<h3 id="userpromptsubmit">

1404 UserPromptSubmit1404 UserPromptSubmit

1405</h3>1405</h3>

1406 1406 

1407Запускается, когда пользователь отправляет подсказку, перед обработкой Claude. Это позволяет вам добавлять дополнительный контекст на основе подсказки/разговора, проверять подсказки или блокировать определенные типы подсказок.1407Выполняется, когда пользователь отправляет промпт, до того как Claude его обработает. Это позволяет

1408добавлять дополнительный контекст на основе промпта/диалога, проверять промпты или

1409блокировать определённые типы промптов.

1408 1410 

1409Hooks `UserPromptSubmit` имеют тайм-аут по умолчанию 30 секунд для типов `command`, `http` и `mcp_tool`, короче, чем 600-секундный по умолчанию для этих типов на большинстве других событий. Поскольку этот hook выполняется перед каждой подсказкой и блокирует обработку модели до его завершения, застрявший hook замораживает сеанс. Если вашему hook нужно больше времени, установите поле `timeout` в записи hook.1411У хуков `UserPromptSubmit` таймаут по умолчанию составляет 30 секунд для типов `command`, `http` и `mcp_tool` — меньше, чем 600 секунд по умолчанию для этих типов в большинстве других событий. Поскольку этот хук выполняется перед каждым промптом и блокирует обработку моделью до своего завершения, зависший хук останавливает сессию. Если вашему хуку нужно больше времени, задайте поле `timeout` в записи хука.

1410 1412 

1411Помимо hook команды, который вы запускаете с [`async: true`](#run-hooks-in-the-background), hook `UserPromptSubmit` команды, HTTP или MCP tool, который достигает своего тайм-аута, отменяется и его вывод, включая любой `additionalContext`, отбрасывается. Подсказка все еще достигает Claude без этого контекста. Транскрипт показывает уведомление с названием hook, тайм-аутом, который сработал, и что вывод был отброшен.1413За исключением command-хука, запущенного с [`async: true`](#run-hooks-in-the-background), command-, HTTP- или MCP-хук `UserPromptSubmit`, достигший таймаута, отменяется, а его вывод, включая любой `additionalContext`, отбрасывается. Промпт всё равно доходит до Claude, но без этого контекста. В транскрипте отображается уведомление с именем хука, сработавшим таймаутом и указанием на то, что вывод был отброшен.

1412 1414 

1413[Agent SDK callback hook](/docs/ru/agent-sdk/hooks) на `UserPromptSubmit`, который достигает своего тайм-аута, блокирует подсказку сообщением с названием hook и тайм-аутом, потому что callback там может действовать как политический шлюз, который не должен отказывать открыто. Сеанс продолжается. До версии 2.1.208 тайм-аут callback на этом событии заканчивал ход с ошибкой выполнения.1415[Callback-хук Agent SDK](/docs/ru/agent-sdk/hooks) на `UserPromptSubmit`, достигший таймаута, блокирует промпт с сообщением, в котором указаны хук и таймаут, поскольку callback в этом месте может выступать шлюзом политики, который не должен при сбое пропускать запросы. Сессия продолжается. До v2.1.208 таймаут callback для этого события завершал ход с ошибкой выполнения.

1414 1416 

1415<h4 id="userpromptsubmit-input">1417<h4 id="userpromptsubmit-input">

1416 UserPromptSubmit input1418 Входные данные UserPromptSubmit

1417</h4>1419</h4>

1418 1420 

1419Помимо [общих полей ввода](#common-input-fields), hooks UserPromptSubmit получают поле `prompt`, содержащее текст, отправленный пользователем. Вставленный контент, который свернулся в заполнитель `[Pasted text #N]`, прибывает развернутым на месте. В сеансах, где Claude Code [отмечает вставленный текст для Claude](/docs/ru/terminal-config#how-claude-treats-pasted-text), этот развернутый контент находится между строкой `<pasted_content id="…">` и строкой `</pasted_content id="…">`, поэтому учитывайте эти строки, если ваш hook анализирует подсказку.1421Помимо [общих входных полей](#common-input-fields), хуки UserPromptSubmit получают поле `prompt`, содержащее отправленный пользователем текст. Вставленное содержимое, свёрнутое в заполнитель `[Pasted text #N]`, приходит развёрнутым на месте. В сессиях, где Claude Code [помечает вставленный текст для Claude](/docs/ru/terminal-config#how-claude-treats-pasted-text), это развёрнутое содержимое находится между строкой `<pasted_content id="…">` и строкой `</pasted_content id="…">`, поэтому учитывайте эти строки, если ваш хук разбирает промпт.

1420 1422 

1421Hooks UserPromptSubmit также получают `session_title`, когда сеанс имеет пользовательское название, с тем же значением, что и [поле SessionStart `session_title`](#sessionstart-input).1423Хуки UserPromptSubmit также получают `session_title`, когда у сессии есть пользовательское название, с тем же значением, что и [поле `session_title` в SessionStart](#sessionstart-input).

1422 1424 

1423```json theme={null}1425```json theme={null}

1424{1426{


1435 Управление решениями UserPromptSubmit1437 Управление решениями UserPromptSubmit

1436</h4>1438</h4>

1437 1439 

1438Hooks `UserPromptSubmit` могут управлять тем, обрабатывается ли подсказка пользователя, и добавлять контекст. Все [поля вывода JSON](#json-output) доступны.1440Хуки `UserPromptSubmit` могут управлять тем, обрабатывается ли пользовательский промпт, и добавлять контекст. Доступны все [поля вывода JSON](#json-output).

1439 1441 

1440Есть два способа добавить контекст к разговору при коде выхода 0:1442Есть два способа добавить контекст в диалог при коде выхода 0:

1441 1443 

1442* **Простой текст stdout**: Claude Code добавляет stdout, который он [рассматривает как простой текст](#exit-code-0), в контекст Claude1444* **stdout в виде обычного текста**: Claude Code добавляет в контекст Claude stdout, который он [обрабатывает как обычный текст](#exit-code-0)

1443* **JSON с `additionalContext`**: используйте формат JSON ниже для большего контроля. Поле `additionalContext` добавляется как контекст1445* **JSON с `additionalContext`**: используйте формат JSON ниже для большего контроля. Поле `additionalContext` добавляется как контекст

1444 1446 

1445Ни один канал не создает видимую запись в транскрипте. Простой stdout и значение `additionalContext` каждый вводятся как системное напоминание, которое начинается с имени hook; Claude читает оба. Чтобы подтвердить доставку, проверьте [debug log](#debug-hooks).1447Ни один из каналов не создаёт видимой записи в транскрипте. Обычный stdout и значение `additionalContext` внедряются каждое как системное напоминание, начинающееся с имени хука; Claude читает оба. Чтобы подтвердить доставку, проверьте [отладочный лог](#debug-hooks).

1446 1448 

1447Чтобы заблокировать подсказку, верните объект JSON с `decision`, установленным на `"block"`:1449Чтобы заблокировать промпт, верните объект JSON с `decision`, равным `"block"`:

1448 1450 

1449| Поле | Описание |1451| Поле | Описание |

1450| :- | :- |1452| :- | :- |

1451| `decision` | `"block"` останавливает подсказку перед тем, как она достигнет Claude. Опустите, чтобы позволить подсказке продолжить |1453| `decision` | `"block"` останавливает промпт до того, как он дойдёт до Claude. Не указывайте, чтобы разрешить промпту пройти |

1452| `reason` | Показано пользователю, когда `decision` имеет значение `"block"`. Не добавляется в контекст |1454| `reason` | Показывается пользователю, когда `decision` равно `"block"`. Не добавляется в контекст |

1453| `additionalContext` | Строка, добавленная в контекст Claude рядом с отправленной подсказкой. См. [Add context for Claude](#add-context-for-claude) |1455| `additionalContext` | Строка, добавляемая в контекст Claude вместе с отправленным промптом. См. [Добавление контекста для Claude](#add-context-for-claude) |

1454| `sessionTitle` | Устанавливает название сеанса. Используйте для автоматического именования сеансов на основе содержания подсказки |1456| `sessionTitle` | Задаёт название сессии. Используйте для автоматического именования сессий на основе содержимого промпта |

1455| `suppressOriginalPrompt` | Если `true`, когда hook блокирует подсказку, оставляет текст подсказки вне сообщения блокировки. См. [What a blocked prompt leaves behind](#what-a-blocked-prompt-leaves-behind) |1457| `suppressOriginalPrompt` | Если `true`, когда хук блокирует промпт, текст промпта не включается в сообщение о блокировке. См. [Что остаётся после заблокированного промпта](#what-a-blocked-prompt-leaves-behind) |

1456 1458 

1457Hook, который блокирует выходом 2, маршрутизируется так же, как `reason`: сообщение блокировки показывает текст stderr пользователю, и оно не добавляется в контекст.1459Хук, блокирующий с кодом выхода 2, обрабатывается так же, как `reason`: сообщение о блокировке показывает пользователю текст из stderr, и он не добавляется в контекст.

1458 1460 

1459```json theme={null}1461```json theme={null}

1460{1462{


1470```1472```

1471 1473 

1472<h4 id="what-a-blocked-prompt-leaves-behind">1474<h4 id="what-a-blocked-prompt-leaves-behind">

1473 Что оставляет после себя заблокированная подсказка1475 Что остаётся после заблокированного промпта

1474</h4>1476</h4>

1475 1477 

1476Заблокированная подсказка никогда не достигает Claude, но ее текст не удаляется везде. По умолчанию сообщение блокировки, показанное пользователю, заканчивается на `Original prompt:`, за которым следует отправленный текст, и Claude Code записывает это сообщение в файл транскрипта сеанса на диск. Чтобы оставить текст вне сообщения, выведите JSON с `"suppressOriginalPrompt": true` внутри `hookSpecificOutput`. Это работает, блокирует ли hook с `decision: "block"` или выходом 2. Hook выхода 2, который не выводит JSON, всегда получает текст подсказки в своем сообщении блокировки.1478Заблокированный промпт никогда не доходит до Claude, но его текст удаляется не везде. По умолчанию сообщение о блокировке, показываемое пользователю, заканчивается строкой `Original prompt:`, за которой следует отправленный текст, и Claude Code записывает это сообщение в файл транскрипта сессии на диске. Чтобы исключить текст из сообщения, выведите JSON с `"suppressOriginalPrompt": true` внутри `hookSpecificOutput`. Это работает независимо от того, блокирует ли хук с помощью `decision: "block"` или кодом выхода 2. У хука с кодом выхода 2, который не выводит JSON, текст промпта всегда попадает в сообщение о блокировке.

1477 1479 

1478`suppressOriginalPrompt` изменяет только сообщение блокировки. Отправленный текст все еще может появляться в локальных файлах, таких как транскрипт сеанса и история подсказок, поэтому блокирующий hook не является способом держать секрет вне диска. Чтобы ограничить или удалить эти файлы, см. [Plaintext storage](/docs/ru/claude-directory#plaintext-storage) и [Clear local data](/docs/ru/claude-directory#clear-local-data).1480`suppressOriginalPrompt` изменяет только сообщение о блокировке. Отправленный текст всё равно может появиться в локальных файлах, таких как транскрипт сессии и история промптов, поэтому блокирующий хук не является способом не допустить попадания секрета на диск. Чтобы ограничить или удалить эти файлы, см. [Хранение в открытом виде](/docs/ru/claude-directory#plaintext-storage) и [Очистка локальных данных](/docs/ru/claude-directory#clear-local-data).

1479 1481 

1480<h3 id="userpromptexpansion">1482<h3 id="userpromptexpansion">

1481 UserPromptExpansion1483 UserPromptExpansion

1482</h3>1484</h3>

1483 1485 

1484Запускается, когда команда, введенная пользователем, расширяется в подсказку перед достижением Claude. Используйте это для блокировки определенных команд от прямого вызова, внедрения контекста для определенного skill или логирования того, какие команды вызывают пользователи. Например, hook, соответствующий `deploy`, может заблокировать `/deploy`, если отсутствует файл одобрения, или hook, соответствующий skill проверки, может добавить контрольный список проверки команды как `additionalContext`.1486Выполняется, когда введённая пользователем команда разворачивается в промпт до того, как дойти до Claude. Используйте его, чтобы запретить прямой вызов определённых команд, внедрить контекст для конкретного скилла или логировать, какие команды вызывают пользователи. Например, хук с matcher `deploy` может блокировать `/deploy`, если нет файла подтверждения, а хук, соответствующий скиллу ревью, может добавлять чек-лист ревью команды как `additionalContext`.

1485 1487 

1486Это событие охватывает путь, который `PreToolUse` не охватывает: hook `PreToolUse`, соответствующий инструменту `Skill`, срабатывает только, когда Claude вызывает инструмент, но ввод `/skillname` напрямую обходит `PreToolUse`. `UserPromptExpansion` срабатывает на этом прямом пути.1488Это событие покрывает путь, который не покрывает `PreToolUse`: хук `PreToolUse`, соответствующий инструменту `Skill`, срабатывает только когда Claude вызывает этот инструмент, но прямой ввод `/skillname` обходит `PreToolUse`. `UserPromptExpansion` срабатывает на этом прямом пути.

1487 1489 

1488Совпадает с `command_name`. Оставьте matcher пустым, чтобы срабатывать на каждой команде типа подсказки.1490Сопоставляется по `command_name`. Оставьте matcher пустым, чтобы срабатывать для каждой команды, разворачивающейся в промпт.

1489 1491 

1490<h4 id="userpromptexpansion-input">1492<h4 id="userpromptexpansion-input">

1491 UserPromptExpansion input1493 Входные данные UserPromptExpansion

1492</h4>1494</h4>

1493 1495 

1494Помимо [общих полей ввода](#common-input-fields), hooks UserPromptExpansion получают `expansion_type`, `command_name`, `command_args`, `command_source` и исходную строку `prompt`. Поле `expansion_type` — это `slash_command` для skill и пользовательских команд или `mcp_prompt` для подсказок MCP сервера.1496Помимо [общих входных полей](#common-input-fields), хуки UserPromptExpansion получают `expansion_type`, `command_name`, `command_args`, `command_source` и исходную строку `prompt`. Поле `expansion_type` равно `slash_command` для скиллов и пользовательских команд или `mcp_prompt` для промптов MCP-серверов.

1495 1497 

1496```json theme={null}1498```json theme={null}

1497{1499{


1512 Управление решениями UserPromptExpansion1514 Управление решениями UserPromptExpansion

1513</h4>1515</h4>

1514 1516 

1515Hooks `UserPromptExpansion` могут блокировать расширение или добавлять контекст. Все [поля вывода JSON](#json-output) доступны.1517Хуки `UserPromptExpansion` могут блокировать развёртывание или добавлять контекст. Доступны все [поля вывода JSON](#json-output).

1516 1518 

1517| Поле | Описание |1519| Поле | Описание |

1518| :- | :- |1520| :- | :- |

1519| `decision` | `"block"` предотвращает расширение команды. Опустите, чтобы позволить ей продолжить |1521| `decision` | `"block"` не даёт команде развернуться. Не указывайте, чтобы разрешить продолжение |

1520| `reason` | Показано пользователю, когда `decision` — это `"block"` |1522| `reason` | Показывается пользователю, когда `decision` равно `"block"` |

1521| `additionalContext` | Строка, добавленная в контекст Claude рядом с развернутой подсказкой. См. [Add context for Claude](#add-context-for-claude) |1523| `additionalContext` | Строка, добавляемая в контекст Claude вместе с развёрнутым промптом. См. [Добавление контекста для Claude](#add-context-for-claude) |

1522 1524 

1523Hook, который блокирует выходом 2, маршрутизируется так же, как `reason`: сообщение блокировки показывает текст stderr пользователю.1525Хук, блокирующий с кодом выхода 2, обрабатывается так же, как `reason`: сообщение о блокировке показывает пользователю текст из stderr.

1524 1526 

1525```json theme={null}1527```json theme={null}

1526{1528{


1537 MessageDisplay1539 MessageDisplay

1538</h3>1540</h3>

1539 1541 

1540Запускается, пока сообщение помощника транслируется на экран. Claude Code отображает сообщение порциями: каждый раз, когда партия новых завершенных строк готова к отрисовке, hook выполняется один раз с этими строками и Claude Code отображает текст замены hook на их месте. Длинное сообщение создает несколько вызовов; короткое сообщение может создать только один.1542Выполняется, пока сообщение ассистента потоково выводится на экран. Claude Code отображает сообщение частями: каждый раз, когда пакет только что завершённых строк готов к отрисовке, хук выполняется один раз с этими строками, и Claude Code отображает на их месте текст-замену, возвращённый хуком. Длинное сообщение порождает несколько вызовов; короткое может породить только один.

1541 1543 

1542Используйте MessageDisplay для:1544Используйте MessageDisplay, чтобы:

1543 1545 

1544* удаления markdown для минимального отображения1546* удалять разметку markdown для минималистичного отображения

1545* преобразования текста, который приложение Agent SDK показывает своим пользователям1547* преобразовывать текст, который приложение на Agent SDK показывает своим пользователям

1546* редактирования ключей API или внутренних имен хостов из ответов Claude1548* скрывать API-ключи или внутренние имена хостов в ответах Claude

1547 1549 

1548Claude Code удерживает каждую партию до возврата вашего hook, поэтому держите hook быстрым. Если hook не удается или истекает время ожидания, Claude Code отображает исходный текст. Тайм-аут по умолчанию для этого события — 10 секунд; если вашему hook нужно больше времени, установите поле `timeout` в записи hook.1550Claude Code удерживает каждый пакет, пока ваш хук не вернёт результат, поэтому хук должен работать быстро. Если хук завершается ошибкой или по таймауту, Claude Code отображает исходный текст. Таймаут по умолчанию для этого события — 10 секунд; если вашему хуку нужно больше времени, задайте поле `timeout` в записи хука.

1549 1551 

1550MessageDisplay только для отображения: текст замены изменяет только то, что отображается на экране. Транскрипт и то, что видит Claude, сохраняют исходный текст, поэтому Claude никогда не видит замену, и подробный режим показывает исходный. Hook получает только текст сообщения помощника, поэтому результаты инструментов и текст, который вы вводите, отображаются без изменений.1552MessageDisplay влияет только на отображение: текст-замена меняет лишь то, что выводится на экран. Транскрипт и то, что видит Claude, сохраняют исходный текст, поэтому Claude никогда не видит замену, а подробный режим показывает оригинал. Хук получает только текст сообщений ассистента, поэтому результаты инструментов и вводимый вами текст отображаются без изменений.

1551 1553 

1552MessageDisplay не поддерживает matchers и срабатывает для каждого сообщения помощника, которое потоком выводит текст; сообщения без текста, такие как ответы только с вызовом инструмента, не запускают его.1554MessageDisplay не поддерживает matcher и срабатывает для каждого сообщения ассистента, выводящего текст потоком; сообщения без текста, например ответы, содержащие только вызовы инструментов, его не вызывают.

1553 1555 

1554В неинтерактивных запусках, включая запросы Agent SDK и `claude -p`, MessageDisplay выполняется один раз для каждого сообщения помощника вместо один раз для каждой партии строк. Один вызов прибывает после завершения сообщения и несет полный текст сообщения: `index` — это `0`, `final` — это `true`, и `delta` содержит все сообщение. Hook, который собирает текст `delta` для каждого сообщения, получает одинаковый общий текст в обоих режимах.1556В неинтерактивных запусках, включая запросы Agent SDK и `claude -p`, MessageDisplay выполняется один раз на сообщение ассистента, а не один раз на пакет строк. Единственный вызов приходит после завершения сообщения и содержит полный текст сообщения: `index` равно `0`, `final` равно `true`, а `delta` содержит всё сообщение. Хук, собирающий текст `delta` для каждого сообщения, получает одинаковый итоговый текст в обоих режимах.

1555 1557 

1556<h4 id="messagedisplay-input">1558<h4 id="messagedisplay-input">

1557 MessageDisplay input1559 Входные данные MessageDisplay

1558</h4>1560</h4>

1559 1561 

1560Помимо [общих полей ввода](#common-input-fields), hooks MessageDisplay получают идентификаторы для хода и сообщения, позицию этого вызова в сообщении и новый текст в `delta`. Границы партий зависят от того, как потоком выводится текст, поэтому используйте `index` и `final` для отслеживания прогресса через сообщение, а не ожидайте, что строки будут сгруппированы определенным образом.1562Помимо [общих входных полей](#common-input-fields), хуки MessageDisplay получают идентификаторы хода и сообщения, позицию этого вызова в сообщении и новый текст в `delta`. Границы пакетов зависят от того, как текст поступает потоком, поэтому используйте `index` и `final` для отслеживания прогресса по сообщению, а не рассчитывайте на определённую группировку строк.

1561 1563 

1562| Поле | Описание |1564| Поле | Описание |

1563| :- | :- |1565| :- | :- |

1564| `turn_id` | UUID текущего хода |1566| `turn_id` | UUID текущего хода |

1565| `message_id` | UUID сообщения помощника, которое отображается. Стабилен для каждой партии одного сообщения. Это не API `msg_…` id, поэтому его нельзя коррелировать с id сообщений транскрипта |1567| `message_id` | UUID отображаемого сообщения ассистента. Неизменен во всех пакетах одного сообщения. Это не идентификатор API `msg_…`, поэтому его нельзя сопоставить с идентификаторами сообщений в транскрипте |

1566| `index` | Индекс этой партии в сообщении, начиная с нуля |1568| `index` | Индекс этого пакета в сообщении, начиная с нуля |

1567| `final` | `true` на последней партии сообщения. Каждое сообщение имеет ровно одну финальную партию |1569| `final` | `true` для последнего пакета сообщения. У каждого сообщения ровно один последний пакет |

1568| `delta` | Новые завершенные строки с момента предыдущей партии, включая завершающие новые строки. Всегда целые строки, кроме финальной партии, которая может заканчиваться в середине строки. В интерактивных запусках delta финальной партии пуста, когда сообщение заканчивается на новой строке, поэтому рассматривайте `final`, а не непустой delta, как сигнал конца сообщения. В запусках Agent SDK и `claude -p` один вызов несет все сообщение |1570| `delta` | Строки, завершённые после предыдущего пакета, включая завершающие символы новой строки. Всегда целые строки, кроме последнего пакета, который может закончиться посреди строки. В интерактивных запусках delta последнего пакета пуста, если сообщение заканчивается символом новой строки, поэтому считайте сигналом конца сообщения `final`, а не непустую delta. В запусках Agent SDK и `claude -p` единственный вызов содержит всё сообщение |

1569 1571 

1570```json theme={null}1572```json theme={null}

1571{1573{


1582```1584```

1583 1585 

1584<h4 id="messagedisplay-output">1586<h4 id="messagedisplay-output">

1585 MessageDisplay output1587 Вывод MessageDisplay

1586</h4>1588</h4>

1587 1589 

1588Помимо [полей вывода JSON](#json-output), доступных всем hooks, hooks MessageDisplay могут вернуть `displayContent` для замены delta на экране:1590Помимо [полей вывода JSON](#json-output), доступных всем хукам, хуки MessageDisplay могут возвращать `displayContent`, чтобы заменить delta на экране:

1589 1591 

1590| Поле | Описание |1592| Поле | Описание |

1591| :- | :- |1593| :- | :- |

1592| `displayContent` | Текст, отображаемый вместо delta. Опустите, чтобы отобразить исходный |1594| `displayContent` | Текст, отображаемый вместо delta. Не указывайте, чтобы отобразить оригинал |

1593 1595 

1594Hooks MessageDisplay не имеют управления решениями. Они не могут блокировать сообщение или изменять то, что хранится в транскрипте или отправляется Claude. Claude Code действует на `displayContent` из их вывода JSON и отбрасывает `systemMessage` и `continue`.1596У хуков MessageDisplay нет управления решениями. Они не могут блокировать сообщение или изменять то, что сохраняется в транскрипте или отправляется Claude. Claude Code учитывает `displayContent` из их вывода JSON и отбрасывает `systemMessage` и `continue`.

1595 1597 

1596Этот пример удаляет форматирование markdown из ответов Claude для отображения простого текста. Скрипт читает каждую партию из stdin, удаляет маркеры жирного шрифта и встроенные обратные кавычки кода из `delta` и возвращает результат как `displayContent`.1598В этом примере из ответов Claude удаляется форматирование markdown для отображения в виде обычного текста. Скрипт читает каждый пакет из stdin, удаляет маркеры жирного шрифта и обратные кавычки встроенного кода из `delta` и возвращает результат как `displayContent`.

1597 1599 

1598<Tabs>1600<Tabs>

1599 <Tab title="macOS/Linux">1601 <Tab title="macOS/Linux">

1600 Зарегистрируйте hook команды для события в файле параметров:1602 Зарегистрируйте command-хук для события в файле настроек:

1601 1603 

1602 ```json theme={null}1604 ```json theme={null}

1603 {1605 {


1626 </Tab>1628 </Tab>

1627 1629 

1628 <Tab title="Windows (PowerShell)">1630 <Tab title="Windows (PowerShell)">

1629 Зарегистрируйте hook команды, который запускает скрипт через PowerShell:1631 Зарегистрируйте command-хук, который запускает скрипт через PowerShell:

1630 1632 

1631 ```json theme={null}1633 ```json theme={null}

1632 {1634 {


1652 }1654 }

1653 ```1655 ```

1654 1656 

1655 Флаг `-NoProfile` пропускает загрузку вашего профиля PowerShell, поэтому hook запускается быстро, а `-ExecutionPolicy Bypass` позволяет PowerShell запускать локальный файл скрипта.1657 Флаг `-NoProfile` пропускает загрузку вашего профиля PowerShell, чтобы хук запускался быстро, а `-ExecutionPolicy Bypass` позволяет PowerShell выполнить локальный файл скрипта.

1656 1658 

1657 Сохраните этот скрипт в `.claude/hooks/plain-display.ps1` в вашем проекте:1659 Сохраните этот скрипт в `.claude/hooks/plain-display.ps1` в вашем проекте:

1658 1660 


1669 </Tab>1671 </Tab>

1670</Tabs>1672</Tabs>

1671 1673 

1672Партии без markdown проходят без изменений. Если скрипт не удается, например, потому что `jq` отсутствует, Claude Code отображает исходный текст и отмечает сбой только в [debug output](#debug-hooks), а не в сеансе.1674Пакеты без markdown проходят без изменений. Если скрипт завершается ошибкой, например из-за отсутствия `jq`, Claude Code отображает исходный текст и отмечает сбой только в [отладочном выводе](#debug-hooks), а не в сессии.

1673 1675 

1674<h3 id="pretooluse">1676<h3 id="pretooluse">

1675 PreToolUse1677 PreToolUse

1676</h3>1678</h3>

1677 1679 

1678Запускается после того, как Claude создает параметры инструмента и перед обработкой вызова инструмента. Совпадает с любым именем инструмента, кроме `EndConversation`: встроенные инструменты, такие как `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` и `ExitPlanMode`, и любые [имена инструментов MCP](#match-mcp-tools).1680Выполняется после того, как Claude создаёт параметры инструмента, и до обработки вызова инструмента. Сопоставляется с любым именем инструмента, кроме `EndConversation`: встроенными инструментами, такими как `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` и `ExitPlanMode`, а также любыми [именами MCP-инструментов](#match-mcp-tools).

1679 1681 

1680Чтобы запустить hook, когда определенный файл изменяется на диске, независимо от того, что его написало, используйте [FileChanged](#filechanged) вместо соответствия инструментам редактирования файлов по названию. В отличие от PreToolUse, Claude Code запускает hooks FileChanged после изменения и они не имеют управления решениями, поэтому они не могут блокировать запись.1682Чтобы запускать хук при изменении определённого файла на диске, кто бы его ни записал, используйте [FileChanged](#filechanged) вместо сопоставления инструментов редактирования файлов по имени. В отличие от PreToolUse, Claude Code запускает хуки FileChanged после изменения, и у них нет управления решениями, поэтому они не могут блокировать запись.

1681 1683 

1682<Warning>1684<Warning>

1683 PreToolUse запускается только, когда Claude вызывает инструмент. Файлы, которые вы [ссылаетесь с `@` в вашей подсказке](/docs/ru/common-workflows#reference-files-and-directories), добавляются без вызова инструмента: Claude Code вставляет их содержимое при построении подсказки, поэтому для них не срабатывает hook PreToolUse, включая hooks, соответствующие `Read`. Чтобы заблокировать определенные пути от ссылок `@`, используйте [правило отказа `Read`](/docs/ru/permissions#read-and-edit) вместо этого.1685 PreToolUse выполняется только когда Claude вызывает инструмент. Файлы, на которые вы [ссылаетесь через `@` в промпте](/docs/ru/common-workflows#reference-files-and-directories), добавляются без какого-либо вызова инструмента: Claude Code вставляет их содержимое при построении промпта, поэтому для них не срабатывает ни один хук PreToolUse, включая хуки, соответствующие `Read`. Чтобы заблокировать определённые пути для ссылок через `@`, используйте вместо этого [правило запрета `Read`](/docs/ru/permissions#read-and-edit).

1684 1686 

1685 PreToolUse также не срабатывает для [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior).1687 PreToolUse также не срабатывает для [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior).

1686</Warning>1688</Warning>

1687 1689 

1688Используйте [управление решениями PreToolUse](#pretooluse-decision-control) для разрешения, отказа, запроса или отложения вызова инструмента.1690Используйте [управление решениями PreToolUse](#pretooluse-decision-control), чтобы разрешить, запретить, запросить подтверждение или отложить вызов инструмента.

1689 1691 

1690[Agent SDK callback hook](/docs/ru/agent-sdk/hooks) на `PreToolUse`, который превышает свой тайм-аут, блокирует вызов инструмента, и Claude получает результат ошибки с названием тайм-аута. Явный отказ, возвращенный другим hook, все еще имеет приоритет.1692[Callback-хук Agent SDK](/docs/ru/agent-sdk/hooks) на `PreToolUse`, превысивший таймаут, блокирует вызов инструмента, и Claude получает результат с ошибкой, указывающей на таймаут. Явный запрет, возвращённый другим хуком, по-прежнему имеет приоритет.

1691 1693 

1692<h4 id="pretooluse-input">1694<h4 id="pretooluse-input">

1693 PreToolUse input1695 Входные данные PreToolUse

1694</h4>1696</h4>

1695 1697 

1696Помимо [общих полей ввода](#common-input-fields), hooks PreToolUse получают `tool_name`, `tool_input` и `tool_use_id`.1698Помимо [общих входных полей](#common-input-fields), хуки PreToolUse получают `tool_name`, `tool_input` и `tool_use_id`.

1697 1699 

1698Для [инструмента MCP](#match-mcp-tools) ввод также несет `mcp_server`, объект с `name` сервера и `source`, который говорит, откуда пришло определение сервера. Значения `source` включают `plugin`, `sdk` и области конфигурации, такие как `user` и `project`. [`McpServerProvenance`](/docs/ru/agent-sdk/typescript#mcpserverprovenance) в справочнике Agent SDK перечисляет их все и говорит, как рассматривать тот, который вы не узнаете. Основывайте решения о доверии на `source`, а не на `name` или префиксе имени инструмента `mcp__<server>__`. Поле `mcp_server` требует Claude Code v2.1.274 или позже.1700Для [MCP-инструмента](#match-mcp-tools) входные данные также содержат `mcp_server` — объект с `name` сервера и `source`, указывающим, откуда взято определение сервера. Значения `source` включают `plugin`, `sdk` и области действия конфигурации, такие как `user` и `project`. [`McpServerProvenance`](/docs/ru/agent-sdk/typescript#mcpserverprovenance) в справочнике Agent SDK перечисляет их все и описывает, как обрабатывать незнакомое значение. Принимайте решения о доверии на основе `source`, а не `name` или префикса имени инструмента `mcp__<server>__`. Для поля `mcp_server` требуется Claude Code v2.1.274 или новее.

1699 1701 

1700Для инструментов файлов `Write`, `Edit` и `Read`, `tool_input.file_path` всегда абсолютен:1702Для файловых инструментов `Write`, `Edit` и `Read` значение `tool_input.file_path` всегда абсолютное:

1701 1703 

1702* Claude Code расширяет `~` и относительные пути перед запуском hooks, поэтому hook, который совпадает с путями, не может быть обойден через `~` или относительное написание одного пути1704* Claude Code раскрывает `~` и относительные пути до запуска хуков, поэтому хук, сопоставляющий пути, нельзя обойти через `~` или относительную запись того же пути

1703* На Windows путь прибывает с разделителями обратной косой черты, даже когда ваш hook выполняется под Git Bash, где `$PWD` выглядит как `/c/project`1705* В Windows путь приходит с разделителями-обратными слешами, даже если ваш хук работает в Git Bash, где `$PWD` выглядит как `/c/project`

1704* Сравнение, написанное с прямыми косыми чертами, такое как проверка `/src/`, никогда не совпадает с путем обратной косой черты, и вызов инструмента продолжается, как если бы hook не имел ничего для блокировки1706* Сравнение, записанное с прямыми слешами, например проверка `/src/`, никогда не совпадёт с путём с обратными слешами, и вызов инструмента пройдёт так, будто хуку нечего блокировать

1705* Нормализуйте разделители перед сравнением: `FILE_PATH="${FILE_PATH//\\//}"` в Bash или `file_path.replace("\\", "/")` в Python, затем совпадайте с сегментом пути, такой как `/src/`, а не якорем с `^`, так как путь абсолютен1707* Нормализуйте разделители перед сравнением: `FILE_PATH="${FILE_PATH//\\//}"` в Bash или `file_path.replace("\\", "/")` в Python, а затем сопоставляйте сегмент пути, например `/src/`, а не привязывайтесь к началу через `^`, поскольку путь абсолютный

1706 1708 

1707Вызов `Write` на Windows доставляет:1709Вызов `Write` в Windows передаёт:

1708 1710 

1709```json theme={null}1711```json theme={null}

1710{1712{


1726 Bash1728 Bash

1727</h5>1729</h5>

1728 1730 

1729Выполняет команды оболочки.1731Выполняет shell-команды.

1730 1732 

1731| Поле | Тип | Пример | Описание |1733| Поле | Тип | Пример | Описание |

1732| :- | :- | :- | :- |1734| :- | :- | :- | :- |

1733| `command` | string | `"npm test"` | Команда оболочки для выполнения |1735| `command` | string | `"npm test"` | Shell-команда для выполнения |

1734| `description` | string | `"Run test suite"` | Опциональное описание того, что делает команда |1736| `description` | string | `"Run test suite"` | Необязательное описание того, что делает команда |

1735| `timeout` | number | `120000` | Опциональный тайм-аут в миллисекундах. Значения выше [максимума](/docs/ru/tools-reference#bash-tool-behavior) уменьшаются до максимума, а не отклоняются |1737| `timeout` | number | `120000` | Необязательный таймаут в миллисекундах. Значения выше [максимума](/docs/ru/tools-reference#bash-tool-behavior) уменьшаются до максимума, а не отклоняются |

1736| `run_in_background` | boolean | `false` | Выполнять ли команду в фоне |1738| `run_in_background` | boolean | `false` | Выполнять ли команду в фоне |

1737 1739 

1738Когда команда Bash изменяет файлы в репозитории Git, Claude Code может записать, что изменилось. Он записывает изменения в каждом режиме разрешений, когда параметр [`bashEditDiffEnabled`](/docs/ru/settings-reference#basheditdiffenabled) включает запись; запись этого параметра говорит, какие файлы могут его установить. В противном случае он записывает их только в режиме auto и режиме `bypassPermissions`, и только когда Claude Code направляет Claude на редактирование файлов через Bash. Установите `bashEditDiffEnabled` на `false`, чтобы отключить запись. Фоновые команды и команды только для чтения не несут diff.1740Когда команда Bash изменяет файлы в репозитории Git, Claude Code может записывать, что изменилось. Изменения записываются во всех режимах разрешений, когда настройка [`bashEditDiffEnabled`](/docs/ru/settings-reference#basheditdiffenabled) включает запись; в описании этой настройки указано, в каких файлах её можно задать. В противном случае изменения записываются только в авторежиме и режиме `bypassPermissions`, и только когда Claude Code поручает Claude редактировать файлы через Bash. Установите `bashEditDiffEnabled` в `false`, чтобы отключить запись. Фоновые команды и команды только для чтения не содержат diff.

1739 1741 

1740Ваш [hook PostToolUse](#posttooluse) затем получает измененные файлы в `tool_response.bashEditDiff`. Список охватывает то, что изменилось в репозитории, пока выполнялась команда. Файлы, которые Git игнорирует, и файлы в подмодулях не указаны. Требует Claude Code v2.1.269 или позже.1742Затем ваш [хук PostToolUse](#posttooluse) получает изменённые файлы в `tool_response.bashEditDiff`. Список охватывает то, что изменилось в репозитории за время выполнения команды. Файлы, которые Git игнорирует, и файлы в подмодулях не включаются. Требуется Claude Code v2.1.269 или новее.

1741 1743 

1742<Note>1744<Note>

1743 Список — это лучшее усилие и в публичной бета-версии. Claude Code может пропустить изменение, включить файл, который другой процесс изменил одновременно, или остановиться на его пределах размера. Форма поля может измениться. Используйте список для поиска того, что нужно проверить, а не для обеспечения политики.1745 Список формируется по принципу «насколько возможно» и доступен в публичной бета-версии. Claude Code может пропустить изменение, включить файл, который одновременно изменил другой процесс, или остановиться на своих ограничениях размера. Структура поля может измениться. Используйте список, чтобы найти, что проверить, а не для применения политики.

1744</Note>1746</Note>

1745 1747 

1746`changedFiles` и `files` перечисляют то, что изменила команда; остальные поля говорят, насколько полон и надежен этот список.1748`changedFiles` и `files` перечисляют, что изменила команда; остальные поля показывают, насколько этот список полон и надёжен.

1747 1749 

1748| Поле | Тип | Пример | Описание |1750| Поле | Тип | Пример | Описание |

1749| :- | :- | :- | :- |1751| :- | :- | :- | :- |

1750| `changedFiles` | array | `["/path/to/src/app.ts"]` | Абсолютные пути файлов, которые изменила команда, максимум 200. Присутствует, когда `files` содержит diff или `moreFiles` выше нуля |1752| `changedFiles` | array | `["/path/to/src/app.ts"]` | Абсолютные пути файлов, изменённых командой, не более 200. Присутствует, когда `files` содержит diff или `moreFiles` больше нуля |

1751| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs до 5 измененных файлов для отображения. `created` или `deleted` — это `true` для файла, который команда добавила или удалила |1753| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diff до 5 изменённых файлов для отображения. `created` или `deleted` равно `true` для файла, который команда добавила или удалила |

1752| `moreFiles` | number | `2` | Количество измененных файлов без diff в `files` |1754| `moreFiles` | number | `2` | Количество изменённых файлов без diff в `files` |

1753| `unavailable` | boolean | `true` | Установлено, когда diff неполный или не мог быть взят |1755| `unavailable` | boolean | `true` | Устанавливается, когда diff неполон или его не удалось получить |

1754| `skipped` | boolean | `true` | Установлено для команды Git, которая перемещает рабочее дерево, такой как `git checkout` или `git stash`, поэтому Claude Code не берет diff |1756| `skipped` | boolean | `true` | Устанавливается для команды Git, перемещающей рабочее дерево, например `git checkout` или `git stash`, поэтому Claude Code не получает diff |

1755| `shared` | boolean | `true` | Установлено, когда другой вызов инструмента Bash, такой как вызов подагента, выполнялся в том же репозитории одновременно, поэтому некоторые перечисленные изменения могут быть этой командой |1757| `shared` | boolean | `true` | Устанавливается, когда другой вызов инструмента Bash, например субагента, выполнялся в том же репозитории в то же время, поэтому некоторые перечисленные изменения могут принадлежать той команде |

1756 1758 

1757<a id="powershell" />1759<a id="powershell" />

1758 1760 


1760 PowerShell1762 PowerShell

1761</h5>1763</h5>

1762 1764 

1763Выполняет команды PowerShell. См. [инструмент PowerShell](/docs/ru/tools-reference#powershell-tool) для доступности по платформе.1765Выполняет команды PowerShell. Доступность по платформам см. в разделе об [инструменте PowerShell](/docs/ru/tools-reference#powershell-tool).

1764 1766 

1765Поля совпадают с инструментом Bash, со строкой команды в `command`:1767Поля совпадают с инструментом Bash, строка команды — в `command`:

1766 1768 

1767| Поле | Тип | Пример | Описание |1769| Поле | Тип | Пример | Описание |

1768| :- | :- | :- | :- |1770| :- | :- | :- | :- |

1769| `command` | string | `"Get-ChildItem -Recurse"` | Команда PowerShell для выполнения |1771| `command` | string | `"Get-ChildItem -Recurse"` | Команда PowerShell для выполнения |

1770| `description` | string | `"List files recursively"` | Опциональное описание того, что делает команда |1772| `description` | string | `"List files recursively"` | Необязательное описание того, что делает команда |

1771| `timeout` | number | `120000` | Опциональный тайм-аут в миллисекундах |1773| `timeout` | number | `120000` | Необязательный таймаут в миллисекундах |

1772| `run_in_background` | boolean | `false` | Выполнять ли команду в фоне |1774| `run_in_background` | boolean | `false` | Выполнять ли команду в фоне |

1773 1775 

1774Совпадайте с `Bash|PowerShell` в hooks, которые проверяют команды оболочки, поэтому они охватывают оба инструмента:1776В хуках, проверяющих shell-команды, используйте matcher `Bash|PowerShell`, чтобы охватить оба инструмента:

1775 1777 

1776* На Windows, везде, где включен инструмент PowerShell, Claude рассматривает PowerShell как основную оболочку и маршрутизирует команды оболочки через него.1778* В Windows, где бы ни был включён инструмент PowerShell, Claude считает PowerShell основной оболочкой и направляет через неё shell-команды.

1777* На Windows без Git Bash инструмент включен автоматически, и Claude Code не регистрирует инструмент Bash вообще.1779* В Windows без Git Bash инструмент включается автоматически, а Claude Code вообще не регистрирует инструмент Bash.

1778* Hook, который совпадает только с `Bash`, никогда не срабатывает там.1780* Хук, соответствующий только `Bash`, там никогда не срабатывает.

1779 1781 

1780<h5 id="write">1782<h5 id="write">

1781 Write1783 Write

1782</h5>1784</h5>

1783 1785 

1784Создает или перезаписывает файл.1786Создаёт или перезаписывает файл.

1785 1787 

1786| Поле | Тип | Пример | Описание |1788| Поле | Тип | Пример | Описание |

1787| :- | :- | :- | :- |1789| :- | :- | :- | :- |


1810| Поле | Тип | Пример | Описание |1812| Поле | Тип | Пример | Описание |

1811| :- | :- | :- | :- |1813| :- | :- | :- | :- |

1812| `file_path` | string | `"/path/to/file.txt"` | Абсолютный путь к файлу для чтения |1814| `file_path` | string | `"/path/to/file.txt"` | Абсолютный путь к файлу для чтения |

1813| `offset` | number | `10` | Опциональный номер строки для начала чтения |1815| `offset` | number | `10` | Необязательный номер строки, с которой начать чтение |

1814| `limit` | number | `50` | Опциональное количество строк для чтения |1816| `limit` | number | `50` | Необязательное количество строк для чтения |

1815 1817 

1816<h5 id="glob">1818<h5 id="glob">

1817 Glob1819 Glob

1818</h5>1820</h5>

1819 1821 

1820Находит файлы, соответствующие шаблону glob.1822Находит файлы, соответствующие glob-шаблону.

1821 1823 

1822| Поле | Тип | Пример | Описание |1824| Поле | Тип | Пример | Описание |

1823| :- | :- | :- | :- |1825| :- | :- | :- | :- |

1824| `pattern` | string | `"**/*.ts"` | Шаблон glob для соответствия файлам |1826| `pattern` | string | `"**/*.ts"` | Glob-шаблон для сопоставления файлов |

1825| `path` | string | `"/path/to/dir"` | Опциональная директория для поиска. По умолчанию текущая рабочая директория |1827| `path` | string | `"/path/to/dir"` | Необязательный каталог для поиска. По умолчанию — текущий рабочий каталог |

1826 1828 

1827<h5 id="grep">1829<h5 id="grep">

1828 Grep1830 Grep

1829</h5>1831</h5>

1830 1832 

1831Ищет содержимое файлов с помощью регулярных выражений.1833Ищет по содержимому файлов с помощью регулярных выражений.

1832 1834 

1833| Поле | Тип | Пример | Описание |1835| Поле | Тип | Пример | Описание |

1834| :- | :- | :- | :- |1836| :- | :- | :- | :- |

1835| `pattern` | string | `"TODO.*fix"` | Шаблон регулярного выражения для поиска |1837| `pattern` | string | `"TODO.*fix"` | Шаблон регулярного выражения для поиска |

1836| `path` | string | `"/path/to/dir"` | Опциональный файл или директория для поиска |1838| `path` | string | `"/path/to/dir"` | Необязательный файл или каталог для поиска |

1837| `glob` | string | `"*.ts"` | Опциональный шаблон glob для фильтрации файлов |1839| `glob` | string | `"*.ts"` | Необязательный glob-шаблон для фильтрации файлов |

1838| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` или `"count"`. По умолчанию `"files_with_matches"` |1840| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` или `"count"`. По умолчанию `"files_with_matches"` |

1839| `-i` | boolean | `true` | Поиск без учета регистра |1841| `-i` | boolean | `true` | Поиск без учёта регистра |

1840| `multiline` | boolean | `false` | Включить многострочное соответствие |1842| `multiline` | boolean | `false` | Включить многострочное сопоставление |

1841 1843 

1842<h5 id="webfetch">1844<h5 id="webfetch">

1843 WebFetch1845 WebFetch

1844</h5>1846</h5>

1845 1847 

1846Получает и обрабатывает веб-контент.1848Загружает и обрабатывает веб-контент.

1847 1849 

1848| Поле | Тип | Пример | Описание |1850| Поле | Тип | Пример | Описание |

1849| :- | :- | :- | :- |1851| :- | :- | :- | :- |

1850| `url` | string | `"https://example.com/api"` | URL для получения контента |1852| `url` | string | `"https://example.com/api"` | URL, с которого загружается контент |

1851| `prompt` | string | `"Extract the API endpoints"` | Подсказка для запуска на полученном контенте |1853| `prompt` | string | `"Extract the API endpoints"` | Промпт, применяемый к загруженному контенту |

1852 1854 

1853<h5 id="websearch">1855<h5 id="websearch">

1854 WebSearch1856 WebSearch

1855</h5>1857</h5>

1856 1858 

1857Ищет в веб.1859Выполняет поиск в интернете.

1858 1860 

1859| Поле | Тип | Пример | Описание |1861| Поле | Тип | Пример | Описание |

1860| :- | :- | :- | :- |1862| :- | :- | :- | :- |

1861| `query` | string | `"react hooks best practices"` | Поисковый запрос |1863| `query` | string | `"react hooks best practices"` | Поисковый запрос |

1862| `allowed_domains` | array | `["docs.example.com"]` | Опциональный: включить результаты только с этих доменов |1864| `allowed_domains` | array | `["docs.example.com"]` | Необязательно: включать результаты только с этих доменов |

1863| `blocked_domains` | array | `["spam.example.com"]` | Опциональный: исключить результаты с этих доменов |1865| `blocked_domains` | array | `["spam.example.com"]` | Необязательно: исключать результаты с этих доменов |

1864 1866 

1865<h5 id="agent">1867<h5 id="agent">

1866 Agent1868 Agent

1867</h5>1869</h5>

1868 1870 

1869Порождает [подагента](/docs/ru/sub-agents).1871Запускает [субагента](/docs/ru/sub-agents).

1870 1872 

1871| Поле | Тип | Пример | Описание |1873| Поле | Тип | Пример | Описание |

1872| :- | :- | :- | :- |1874| :- | :- | :- | :- |

1873| `prompt` | string | `"Find all API endpoints"` | Задача для выполнения агентом |1875| `prompt` | string | `"Find all API endpoints"` | Задача, которую должен выполнить агент |

1874| `description` | string | `"Find API endpoints"` | Краткое описание задачи |1876| `description` | string | `"Find API endpoints"` | Краткое описание задачи |

1875| `subagent_type` | string | `"Explore"` | Тип специализированного агента для использования |1877| `subagent_type` | string | `"Explore"` | Тип используемого специализированного агента |

1876| `model` | string | `"sonnet"` | Опциональный псевдоним модели для переопределения по умолчанию |1878| `model` | string | `"sonnet"` | Необязательный псевдоним модели для переопределения модели по умолчанию |

1877 1879 

1878Когда вызов Agent переднего плана завершается, ваш [hook PostToolUse](#posttooluse) получает результат подагента и телеметрию запуска в `tool_response`. Прочитайте эти поля для проверки запуска; для сводок токенов и затрат по подагентам используйте [счетчики токенов и затрат](/docs/ru/monitoring-usage#token-counter), отфильтрованные по `query_source` `"subagent"`, так как `totalTokens` и `usage` охватывают только финальный запрос:1880Когда вызов Agent на переднем плане завершается, ваш [хук PostToolUse](#posttooluse) получает результат субагента и телеметрию запуска в `tool_response`. Читайте эти поля для анализа запуска; для сводных данных по токенам и стоимости по всем субагентам используйте [счётчики токенов и стоимости](/docs/ru/monitoring-usage#token-counter) с фильтром `query_source` `"subagent"`, поскольку `totalTokens` и `usage` охватывают только последний запрос:

1879 1881 

1880| Поле | Тип | Пример | Описание |1882| Поле | Тип | Пример | Описание |

1881| :- | :- | :- | :- |1883| :- | :- | :- | :- |

1882| `status` | string | `"completed"` | `"completed"` для субагентов на переднем плане, `"async_launched"` для фоновых субагентов. По умолчанию субагенты работают в фоне, поэтому вызов Agent без `run_in_background` также даёт `"async_launched"` |1884| `status` | string | `"completed"` | `"completed"` для субагентов на переднем плане, `"async_launched"` для фоновых субагентов. По умолчанию субагенты выполняются в фоне, поэтому вызов Agent без `run_in_background` также даёт `"async_launched"` |

1883| `agentId` | string | `"a4d2c8f1e0b3a297"` | Идентификатор для запуска подагента |1885| `agentId` | string | `"a4d2c8f1e0b3a297"` | Идентификатор запуска субагента |

1884| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Финальные текстовые блоки подагента или, для подагента, чей отчет проходит через `SubagentHandback`, краткая заметка об этом hand-back на их месте |1886| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Итоговые текстовые блоки субагента или, для субагента, чей отчёт передаётся через `SubagentHandback`, вместо них краткая заметка об этой передаче |

1885| `resolvedModel` | string | `"claude-sonnet-4-5"` | Модель, на которой подагент начал, которая может отличаться от запрошенной модели |1887| `resolvedModel` | string | `"claude-sonnet-4-5"` | Модель, с которой субагент начал работу; может отличаться от запрошенной |

1886| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Модели, используемые по порядку, с последовательными повторениями свернутыми; установлено только, когда модель была переключена во время запуска. Требует Claude Code v2.1.212 или позже |1888| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Использованные модели по порядку, с объединением последовательных повторов; задаётся только если модель была заменена во время запуска. Требуется Claude Code v2.1.212 или новее |

1887| `totalTokens` | number | `12450` | Количество токенов из финального API запроса подагента: входные, выходные и кэшированные токены в сумме. Это не общее количество по всему запуску |1889| `totalTokens` | number | `12450` | Количество токенов последнего запроса API субагента: входные, выходные и токены кэша вместе. Это не итог за весь запуск |

1888| `totalDurationMs` | number | `48211` | Настоящее время запуска подагента |1890| `totalDurationMs` | number | `48211` | Реальная длительность запуска субагента |

1889| `totalToolUseCount` | number | `7` | Количество вызовов инструментов, которые сделал подагент |1891| `totalToolUseCount` | number | `7` | Количество вызовов инструментов, сделанных субагентом |

1890| `usage` | object | `{"input_tokens": 8320, ...}` | Разбор токенов по типам финального API запроса: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1892| `usage` | object | `{"input_tokens": 8320, ...}` | Разбивка токенов последнего запроса API по типам: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1891 1893 

1892На Claude Code v2.1.271 или позже подагент, который выполняется с инструментом [`SubagentHandback`](/docs/ru/tools-reference), который Claude Code предоставляет в [режиме auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), доставляет свой отчет через этот инструмент, а не возвращает его как текст. Поле `content` его результата `completed` затем несет краткую заметку об этом hand-back, а не сам отчет. Чтобы прочитать отчет, совпадайте с hook `PreToolUse` или `PostToolUse` на `SubagentHandback` и прочитайте `tool_input.message`.1894В Claude Code v2.1.271 или новее субагент, работающий с инструментом [`SubagentHandback`](/docs/ru/tools-reference), который Claude Code предоставляет в [авторежиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), передаёт свой отчёт через этот инструмент, а не возвращает его текстом. Тогда поле `content` его результата `completed` содержит краткую заметку об этой передаче, а не сам отчёт. Чтобы прочитать отчёт, настройте хук `PreToolUse` или `PostToolUse` с matcher `SubagentHandback` и читайте `tool_input.message`.

1893 1895 

1894Для подагентов фона инструмент возвращается, когда задача переходит в фон, поэтому `tool_response` не несет полей использования: запуск фона возвращается немедленно, и задача переднего плана, которую Claude Code переводит в фон во время запуска, возвращается при этом переходе. Он имеет `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` и `resolvedModel`.1896Для фоновых субагентов инструмент возвращает результат, когда задача переходит в фон, поэтому `tool_response` не содержит полей использования: фоновый запуск возвращается сразу, а задача на переднем плане, которую Claude Code переводит в фон во время выполнения, возвращается в момент этого перехода. Ответ содержит `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` и `resolvedModel`.

1895 1897 

1896На ответе `completed`, `resolvedModel` называет модель, на которой подагент начал, которая может отличаться от значения `model` в `tool_input`, такой как когда `availableModels` или другое переопределение применяется. На ответе `async_launched`, `resolvedModel` называет модель в использовании, когда агент перешел в фон, поэтому переключение, которое произошло перед переводом в фон, отражается там. `modelsUsed` и поведение `resolvedModel` во время перевода в фон требуют Claude Code v2.1.212 или позже.1898В ответе `completed` поле `resolvedModel` указывает модель, с которой начал субагент; она может отличаться от значения `model` в `tool_input`, например когда применяется `availableModels` или другое переопределение. В ответе `async_launched` поле `resolvedModel` указывает модель, использовавшуюся в момент перехода агента в фон, поэтому замена, произошедшая до перевода в фон, в нём отражается. Для `modelsUsed` и поведения `resolvedModel` на момент перевода в фон требуется Claude Code v2.1.212 или новее.

1897 1899 

1898<a id="askuserquestion" />1900<a id="askuserquestion" />

1899 1901 


1901 AskUserQuestion1903 AskUserQuestion

1902</h5>1904</h5>

1903 1905 

1904Задает пользователю один-четыре вопроса с множественным выбором.1906Задаёт пользователю от одного до четырёх вопросов с вариантами ответа.

1905 1907 

1906| Поле | Тип | Пример | Описание |1908| Поле | Тип | Пример | Описание |

1907| :- | :- | :- | :- |1909| :- | :- | :- | :- |

1908| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Вопросы для представления, каждый с строкой `question`, коротким `header`, массивом `options` и опциональным флагом `multiSelect` |1910| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Вопросы для показа, каждый со строкой `question`, коротким `header`, массивом `options` и необязательным флагом `multiSelect` |

1909| `answers` | object | `{"Which framework?": "React"}` | Опциональный. Отображает текст вопроса на выбранный ярлык опции. Ответы с множественным выбором объединяют ярлыки запятыми. Claude не устанавливает это поле; предоставьте его через `updatedInput` для программного ответа |1911| `answers` | object | `{"Which framework?": "React"}` | Необязательно. Сопоставляет текст вопроса с меткой выбранного варианта. В ответах с множественным выбором метки объединяются через запятую. Claude не задаёт это поле; передайте его через `updatedInput`, чтобы ответить программно |

1910 1912 

1911<h5 id="exitplanmode">1913<h5 id="exitplanmode">

1912 ExitPlanMode1914 ExitPlanMode

1913</h5>1915</h5>

1914 1916 

1915Представляет план и просит пользователя одобрить его перед тем, как Claude покидает [режим плана](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode). Claude записывает план в файл на диск перед вызовом инструмента, поэтому буквальный `tool_input` из модели обычно пуст. Claude Code вводит содержимое плана и путь к файлу перед передачей ввода в hooks.1917Представляет план и просит пользователя утвердить его, прежде чем Claude выйдет из [режима планирования](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode). Claude записывает план в файл на диске перед вызовом инструмента, поэтому буквальный `tool_input` от модели обычно пуст. Claude Code внедряет содержимое плана и путь к файлу перед передачей входных данных хукам.

1916 1918 

1917| Поле | Тип | Пример | Описание |1919| Поле | Тип | Пример | Описание |

1918| :- | :- | :- | :- |1920| :- | :- | :- | :- |

1919| `plan` | string | `"## Refactor auth\n1. Extract..."` | Содержимое плана в Markdown. Введено из файла плана на диске |1921| `plan` | string | `"## Refactor auth\n1. Extract..."` | Содержимое плана в Markdown. Внедряется из файла плана на диске |

1920| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Путь к файлу плана. Введено |1922| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Путь к файлу плана. Внедряется |

1921| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Устарело. Claude Code принимает поле, но игнорирует его. До v2.1.205 оно несло разрешения на основе подсказок, которые Claude запросил для реализации плана |1923| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Устаревшее. Claude Code принимает поле, но игнорирует его. До v2.1.205 оно содержало разрешения на основе промптов, которые Claude запрашивал для реализации плана |

1922 1924 

1923В `PostToolUse`, `tool_response` является объектом с полями `plan` и `filePath`, содержащими одобренный план, плюс внутренние флаги статуса. Прочитайте `tool_response.plan` для содержимого плана, а не перечитывайте файл с диска.1925В `PostToolUse` поле `tool_response` — это объект с полями `plan` и `filePath`, содержащими утверждённый план, а также внутренними флагами состояния. Читайте `tool_response.plan` для получения содержимого плана, а не перечитывайте файл с диска.

1924 1926 

1925<h4 id="pretooluse-decision-control">1927<h4 id="pretooluse-decision-control">

1926 Управление решениями PreToolUse1928 Управление решениями PreToolUse

1927</h4>1929</h4>

1928 1930 

1929Hooks `PreToolUse` могут управлять тем, продолжается ли вызов инструмента. В отличие от других hooks, которые используют поле `decision` верхнего уровня, PreToolUse возвращает свое решение внутри объекта `hookSpecificOutput`. Это дает ему более богатый контроль: четыре результата (разрешить, отказать, спросить или отложить) плюс возможность изменить ввод инструмента перед выполнением.1931Хуки `PreToolUse` могут управлять тем, выполняется ли вызов инструмента. В отличие от других хуков, использующих поле `decision` верхнего уровня, PreToolUse возвращает своё решение внутри объекта `hookSpecificOutput`. Это даёт ему более широкие возможности управления: четыре исхода (разрешить, запретить, запросить подтверждение или отложить) и возможность изменить входные данные инструмента перед выполнением.

1930 1932 

1931| Поле | Описание |1933| Поле | Описание |

1932| :- | :- |1934| :- | :- |

1933| `permissionDecision` | `"allow"` пропускает подсказку разрешения, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves) и для `AskUserQuestion` и `ExitPlanMode`, которым нужен [`updatedInput`, связанный с ним](#allow-with-updatedinput). `"deny"` предотвращает вызов инструмента. `"ask"` подсказывает пользователю подтвердить. `"defer"` выходит корректно, чтобы инструмент мог быть возобновлен позже. [Правила отказа и запроса](/docs/ru/permissions#manage-permissions) все еще оцениваются независимо от того, что возвращает hook |1935| `permissionDecision` | `"allow"` пропускает запрос разрешения, кроме [действий, которые не подтверждает автоматически ни один режим](/docs/ru/permission-modes#actions-no-mode-auto-approves), и кроме `AskUserQuestion` и `ExitPlanMode`, которым нужен [`updatedInput` в паре с ним](#allow-with-updatedinput). `"deny"` предотвращает вызов инструмента. `"ask"` просит пользователя подтвердить. `"defer"` корректно завершает работу, чтобы инструмент можно было возобновить позже. [Правила запрета и запроса подтверждения](/docs/ru/permissions#manage-permissions) всё равно применяются независимо от того, что возвращает хук |

1934| `permissionDecisionReason` | Для `"ask"`, показано пользователю, но не Claude. Для `"deny"`, показано Claude. Для `"allow"` и `"defer"`, написано в [debug log](#debug-hooks) только |1936| `permissionDecisionReason` | Для `"ask"` показывается пользователю в запросе разрешения. Когда Claude Code [отклоняет вызов](/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs) в запуске с `-p`, где никто не может ответить на этот запрос, Claude вместо этого читает причину в результате инструмента. Для `"deny"` показывается Claude. Для `"allow"` и `"defer"` записывается только в [отладочный лог](#debug-hooks) |

1935| `updatedInput` | Изменяет параметры ввода инструмента перед выполнением. Заменяет весь объект ввода, поэтому включите неизменные поля рядом с измененными. Claude Code оценивает правила разрешения и [автоматическое фоновое выполнение](/docs/ru/tools-reference#background-commands) команды Bash против ввода, который возвращает ваш hook, а не ввода, который отправил Claude. Объедините с `"allow"` для автоматического одобрения или `"ask"` для показа измененного ввода пользователю. Для `"defer"`, игнорируется |1937| `updatedInput` | Изменяет входные параметры инструмента перед выполнением. Заменяет весь объект входных данных, поэтому включайте неизменённые поля вместе с изменёнными. Claude Code проверяет правила разрешений и [возможность автоматического перевода в фон](/docs/ru/tools-reference#foreground-commands-that-move-to-the-background) команды Bash по входным данным, возвращённым вашим хуком, а не по тем, что отправил Claude. Используйте вместе с `"allow"` для автоматического подтверждения или с `"ask"`, чтобы показать пользователю изменённые входные данные. Для `"defer"` игнорируется |

1936| `additionalContext` | Строка, добавленная в контекст Claude рядом с результатом инструмента. Игнорируется, когда `permissionDecision` имеет значение `"defer"`. См. [Add context for Claude](#add-context-for-claude) |1938| `additionalContext` | Строка, добавляемая в контекст Claude вместе с результатом инструмента. Игнорируется, когда `permissionDecision` равно `"defer"`. См. [Добавление контекста для Claude](#add-context-for-claude) |

1937 1939 

1938Когда несколько hooks PreToolUse возвращают разные решения, приоритет `deny` > `defer` > `ask` > `allow`.1940Когда несколько хуков PreToolUse возвращают разные решения, приоритет таков: `deny` > `defer` > `ask` > `allow`.

1939 1941 

1940Hook, который блокирует выходом 2, маршрутизируется так же, как `"deny"`: Claude видит сообщение stderr как причину отказа.1942Хук, блокирующий с кодом выхода 2, обрабатывается так же, как `"deny"`: Claude видит сообщение из stderr как причину запрета.

1941 1943 

1942Когда hook возвращает `"ask"`, подсказка разрешения, отображаемая пользователю, включает ярлык, определяющий, откуда пришел hook: `[settings]` для hook из любого файла параметров или frontmatter агента, `[plugin:<name>]` для hook plugin или `[skill]` для hook из frontmatter skill. Это помогает пользователям понять, какой источник конфигурации запрашивает подтверждение.1944Когда хук возвращает `"ask"`, запрос разрешения, показываемый пользователю, содержит метку, указывающую, откуда взялся хук: `[settings]` для хука из любого файла настроек или из frontmatter агента, `[plugin:<name>]` для хука плагина или `[skill]` для хука из frontmatter скилла. Это помогает пользователям понять, какой источник конфигурации запрашивает подтверждение.

1943 1945 

1944`"ask"` hook также принуждает подсказку разрешения в [режиме auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode): классификатор все еще может отказать вызов инструмента, но не может одобрить вызов молча. До версии 2.1.211 классификатор мог одобрить команду Bash, выполняющуюся вне [sandbox](/docs/ru/sandboxing), без показа подсказки, которую запросил hook; классификатор все еще применял свои собственные правила безопасности к этой команде, и отказ hook `"deny"` всегда соблюдался.1946`"ask"` от хука также принудительно вызывает запрос разрешения в [авторежиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode): классификатор по-прежнему может запретить вызов инструмента, но не может молча его одобрить. До v2.1.211 классификатор мог одобрить команду Bash, выполняемую вне [песочницы](/docs/ru/sandboxing), не показывая запрошенный хуком запрос; при этом классификатор всё равно применял к этой команде собственные правила безопасности, а `"deny"` от хука всегда соблюдался.

1945 1947 

1946```json theme={null}1948```json theme={null}

1947{1949{


1959 1961 

1960<span id="allow-with-updatedinput" />1962<span id="allow-with-updatedinput" />

1961 1963 

1962В [неинтерактивном режиме](/docs/ru/headless) с флагом `-p` Claude Code предлагает `AskUserQuestion` и `ExitPlanMode` только, когда запуск имеет [хост разрешений](/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs) для получения подсказки, такой как callback `canUseTool` Agent SDK. Эти инструменты требуют взаимодействия с пользователем. Возврат `permissionDecision: "allow"` вместе с `updatedInput` удовлетворяет это требование: hook читает ввод инструмента из stdin, собирает ответ через ваш собственный UI и возвращает его в `updatedInput`, поэтому инструмент выполняется без подсказки. Возврат `"allow"` один недостаточен для этих инструментов. Для `AskUserQuestion` повторите исходный массив `questions` и добавьте объект [`answers`](#askuserquestion), отображающий текст каждого вопроса на выбранный ярлык опции.1964В [неинтерактивном режиме](/docs/ru/headless) с флагом `-p` Claude Code предлагает `AskUserQuestion` и `ExitPlanMode` только если у запуска есть [хост разрешений](/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs) для получения запроса, например callback `canUseTool` в Agent SDK. Этим инструментам требуется взаимодействие с пользователем. Возврат `permissionDecision: "allow"` вместе с `updatedInput` удовлетворяет это требование: хук читает входные данные инструмента из stdin, получает ответ через ваш собственный интерфейс и возвращает его в `updatedInput`, чтобы инструмент выполнился без запроса. Одного `"allow"` для этих инструментов недостаточно. Для `AskUserQuestion` верните исходный массив `questions` и добавьте объект [`answers`](#askuserquestion), сопоставляющий текст каждого вопроса с выбранным ответом.

1963 1965 

1964Начиная с v2.1.199, инструмент MCP, сервер которого отмечает его с помощью [`_meta["anthropic/requiresUserInteraction"]`](/docs/ru/mcp#require-approval-for-a-specific-tool), более строг: hook не может пропустить его подсказку одобрения с `"allow"`, с или без `updatedInput`, потому что Claude Code не может подтвердить, что hook собрал взаимодействие, которое нужно инструменту.1966MCP-инструмент, который его сервер помечает с помощью [`_meta["anthropic/requiresUserInteraction"]`](/docs/ru/mcp#require-approval-for-a-specific-tool), строже: хук не может пропустить его запрос подтверждения с помощью `"allow"`, с `updatedInput` или без него, потому что Claude Code не может убедиться, что хук получил необходимое инструменту взаимодействие.

1965 1967 

1966<Note>1968<Note>

1967 PreToolUse ранее использовал поля `decision` и `reason` верхнего уровня, но они устарели для этого события. Используйте `hookSpecificOutput.permissionDecision` и `hookSpecificOutput.permissionDecisionReason` вместо этого. Устаревшие значения `"approve"` и `"block"` отображаются на `"allow"` и `"deny"` соответственно. Другие события, такие как PostToolUse и Stop, продолжают использовать `decision` и `reason` верхнего уровня как их текущий формат.1969 Ранее PreToolUse использовал поля `decision` и `reason` верхнего уровня, но для этого события они объявлены устаревшими. Используйте вместо них `hookSpecificOutput.permissionDecision` и `hookSpecificOutput.permissionDecisionReason`. Устаревшие значения `"approve"` и `"block"` соответствуют `"allow"` и `"deny"` соответственно. Другие события, такие как PostToolUse и Stop, по-прежнему используют поля `decision` и `reason` верхнего уровня в качестве текущего формата.

1968</Note>1970</Note>

1969 1971 

1970<h4 id="defer-a-tool-call-for-later">1972<h4 id="defer-a-tool-call-for-later">

1971 Defer a tool call for later1973 Отложить вызов инструмента

1972</h4>1974</h4>

1973 1975 

1974`"defer"` предназначен для интеграций, которые запускают `claude -p` как подпроцесс и читают его вывод JSON, такие как приложение Agent SDK или пользовательский UI, построенный на основе Claude Code. Это позволяет этому вызывающему процессу приостановить Claude при вызове инструмента, собрать ввод через его собственный интерфейс и возобновить, где он остановился. Claude Code соблюдает это значение только в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`. В интерактивных сеансах он регистрирует предупреждение и игнорирует результат hook.1976`"defer"` предназначено для интеграций, которые запускают `claude -p` как подпроцесс и читают его вывод JSON, например приложения на Agent SDK или пользовательского интерфейса, построенного поверх Claude Code. Оно позволяет вызывающему процессу приостановить Claude на вызове инструмента, получить ввод через собственный интерфейс и продолжить с того же места. Claude Code учитывает это значение только в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`. В интерактивных сессиях он записывает в лог предупреждение и игнорирует результат хука.

1975 1977 

1976Инструмент `AskUserQuestion` — типичный случай: Claude хочет что-то спросить у пользователя, но нет терминала для ответа. Запуск `-p` предлагает `AskUserQuestion` только, когда он имеет [хост разрешений](/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs), такой как инструмент MCP, который вы передаете с `--permission-prompt-tool`, поэтому запустите запуск с одним. Круговой путь работает так:1978Типичный случай — инструмент `AskUserQuestion`: Claude хочет что-то спросить у пользователя, но терминала для ответа нет. Запуск с `-p` предлагает `AskUserQuestion`, только если у него есть [хост разрешений](/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs), например MCP-инструмент, переданный через `--permission-prompt-tool`, поэтому запускайте с ним. Цикл работает так:

1977 1979 

19781. Claude вызывает `AskUserQuestion`. Срабатывает hook `PreToolUse`.19801. Claude вызывает `AskUserQuestion`. Срабатывает хук `PreToolUse`.

19792. Hook возвращает `permissionDecision: "defer"`. Инструмент не выполняется. Процесс выходит с `stop_reason: "tool_deferred"` и сохраненным вызовом инструмента в транскрипте.19812. Хук возвращает `permissionDecision: "defer"`. Инструмент не выполняется. Процесс завершается с `stop_reason: "tool_deferred"`, а ожидающий вызов инструмента сохраняется в транскрипте.

19803. Вызывающий процесс читает `deferred_tool_use` из результата SDK, выводит вопрос в своем собственном UI и ждет ответа.19823. Вызывающий процесс читает `deferred_tool_use` из результата SDK, показывает вопрос в своём интерфейсе и ждёт ответа.

19814. Вызывающий процесс запускает `claude -p --resume <session-id>` с тем же хостом разрешений. Тот же вызов инструмента срабатывает `PreToolUse` снова.19834. Вызывающий процесс выполняет `claude -p --resume <session-id>` с тем же хостом разрешений. Тот же вызов инструмента снова запускает `PreToolUse`.

19825. Hook возвращает `permissionDecision: "allow"` с ответом в `updatedInput`. Инструмент выполняется и Claude продолжает.19845. Хук возвращает `permissionDecision: "allow"` с ответом в `updatedInput`. Инструмент выполняется, и Claude продолжает работу.

1983 1985 

1984Поле `deferred_tool_use` несет `id`, `name` и `input` инструмента. `input` — это параметры, которые Claude сгенерировал для вызова инструмента, захваченные перед выполнением:1986Поле `deferred_tool_use` содержит `id`, `name` и `input` инструмента. `input` — это параметры, сгенерированные Claude для вызова инструмента и зафиксированные до выполнения:

1985 1987 

1986```json theme={null}1988```json theme={null}

1987{1989{


1997}1999}

1998```2000```

1999 2001 

2000Нет тайм-аута или лимита повторных попыток. Сеанс остается на диске до возобновления, подлежит [правилам очистки](/docs/ru/claude-directory#cleaned-up-automatically) сметания удержания [`cleanupPeriodDays`](/docs/ru/settings-reference#cleanupperioddays), которое удаляет файлы сеанса через 30 дней по умолчанию. Если ответ не готов при возобновлении, hook может вернуть `"defer"` снова и процесс выходит так же. Вызывающий процесс управляет тем, когда разорвать цикл, в конечном итоге возвращая `"allow"` или `"deny"` из hook.2002Ограничений по таймауту или количеству повторных попыток нет. Сессия остаётся на диске, пока вы её не возобновите, с учётом очистки по сроку хранения [`cleanupPeriodDays`](/docs/ru/settings-reference#cleanupperioddays), которая по умолчанию удаляет файлы сессий через 30 дней согласно [правилам очистки по сроку хранения](/docs/ru/claude-directory#cleaned-up-automatically). Если ответ не готов к моменту возобновления, хук может снова вернуть `"defer"`, и процесс завершится так же. Вызывающий процесс сам решает, когда выйти из цикла, в итоге возвращая из хука `"allow"` или `"deny"`.

2001 2003 

2002`"defer"` работает только, когда Claude делает один вызов инструмента в ходе. Если Claude делает несколько вызовов инструментов одновременно, `"defer"` игнорируется с предупреждением и инструмент проходит через нормальный поток разрешений. Ограничение существует, потому что возобновление может повторно запустить только один инструмент: нет способа отложить один вызов из партии без оставления других неразрешенными.2004`"defer"` работает, только когда Claude делает в ходе один вызов инструмента. Если Claude делает несколько вызовов инструментов одновременно, `"defer"` игнорируется с предупреждением, и инструмент проходит обычный процесс проверки разрешений. Это ограничение существует потому, что при возобновлении можно повторно выполнить только один инструмент: нельзя отложить один вызов из пакета, не оставив остальные неразрешёнными.

2003 2005 

2004Если отложенный инструмент больше не доступен при возобновлении, процесс выходит с `stop_reason: "tool_deferred_unavailable"` и `is_error: true` перед срабатыванием hook. Это происходит, когда сервер MCP, который предоставил инструмент, не подключен для возобновленного сеанса. Полезная нагрузка `deferred_tool_use` все еще включена, поэтому вы можете определить, какой инструмент исчез.2006Если отложенный инструмент при возобновлении больше недоступен, процесс завершается с `stop_reason: "tool_deferred_unavailable"` и `is_error: true` до срабатывания хука. Это происходит, когда MCP-сервер, предоставлявший инструмент, не подключён в возобновлённой сессии. Данные `deferred_tool_use` всё равно включаются, чтобы вы могли определить, какой инструмент пропал.

2005 2007 

2006<Note>2008<Note>

2007 Чтобы возобновить отложенный сеанс в режиме плана, передайте [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) вместе с `--resume`, чтобы Claude Code мог представить план для одобрения. Если вы передадите определенные другие флаги запуска, возобновленный запуск не возвращается в режим плана; см. [Resume in plan mode with `-p`](/docs/ru/sessions#resume-in-plan-mode-with-p). Требует Claude Code v2.1.246 или позже.2009 Чтобы возобновить отложенную сессию в режиме планирования, передайте [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) вместе с `--resume`, чтобы Claude Code мог представить план на утверждение. Если вы передаёте некоторые другие флаги запуска, возобновлённый запуск не возвращается в режим планирования; см. [Возобновление в режиме планирования с `-p`](/docs/ru/sessions#resume-in-plan-mode-with-p). Требуется Claude Code v2.1.246 или новее.

2008 2010 

2009 Когда вы возобновляете с `-p`, Claude Code не восстанавливает никакой другой сохраненный режим разрешений. Он запускает запуск в режиме разрешений, который запустил бы новый запуск `claude -p`, поэтому передайте `--permission-mode` или `--dangerously-skip-permissions` снова, если отложенный сеанс использовал один. Когда вы возобновляете с `claude --resume <session-id>` без `-p`, Claude Code восстанавливает сохраненный режим разрешений, с исключениями, перечисленными в [permission mode on resume](/docs/ru/sessions#permission-mode-on-resume).2011 При возобновлении с `-p` Claude Code не восстанавливает никакой другой сохранённый режим разрешений. Он запускает работу в том режиме разрешений, в котором запустился бы новый запуск `claude -p`, поэтому снова передайте `--permission-mode` или `--dangerously-skip-permissions`, если отложенная сессия их использовала. При возобновлении с `claude --resume <session-id>` без `-p` Claude Code восстанавливает сохранённый режим разрешений, за исключениями, перечисленными в разделе [режим разрешений при возобновлении](/docs/ru/sessions#permission-mode-on-resume).

2010</Note>2012</Note>

2011 2013 

2012<h3 id="permissionrequest">2014<h3 id="permissionrequest">

2013 PermissionRequest2015 PermissionRequest

2014</h3>2016</h3>

2015 2017 

2016Запускается, когда Claude Code собирается запросить у вас разрешение на использование инструмента. В сессиях, которые не могут показать запрос, например у фоновых субагентов в [неинтерактивном режиме](/docs/ru/headless), Claude Code всё равно запускает эти хуки, и если ни один хук не возвращает решение, он запрещает вызов инструмента. Для вызова, который доходит до `--permission-prompt-tool` или [callback `canUseTool`](/docs/ru/agent-sdk/permissions) в Agent SDK, хуки выполняются параллельно с вашим хостом, и применяется решение того, кто решит первым.2018Выполняется, когда Claude Code собирается запросить у вас разрешение на использование инструмента. В сессиях, которые не могут показать запрос, например у фоновых субагентов в [неинтерактивном режиме](/docs/ru/headless), Claude Code всё равно запускает эти хуки, и если ни один хук не вернёт решение, он запрещает вызов инструмента. Для вызова, который доходит до `--permission-prompt-tool` или [callback `canUseTool`](/docs/ru/agent-sdk/permissions) в Agent SDK, хуки выполняются параллельно с вашим хостом, и применяется то решение, которое принято первым.

2017Используйте [управление решениями PermissionRequest](#permissionrequest-decision-control), чтобы разрешать или запрещать от имени пользователя.2019Используйте [управление решениями PermissionRequest](#permissionrequest-decision-control), чтобы разрешать или запрещать от имени пользователя.

2018 2020 

2019Используйте это событие, когда вам нужен сигнал в момент, когда Claude просит разрешение на использование инструмента. Claude Code запускает hook [Notification](#notification) с типом `permission_prompt` только после того, как подсказка ждала около шести секунд.2021Используйте это событие, когда нужен сигнал в момент, когда Claude запрашивает разрешение на использование инструмента. Claude Code запускает хук [Notification](#notification) с типом `permission_prompt` только после того, как запрос прождёт около шести секунд.

2020 2022 

2021Claude Code не запускает hooks PermissionRequest для [сетевого запроса](/docs/ru/sandboxing#network-isolation) изолированной команды. Чтобы получить сигнал для этой подсказки, используйте тип уведомления `permission_prompt`.2023Claude Code не запускает хуки PermissionRequest для [сетевого запроса](/docs/ru/sandboxing#network-isolation) команды, выполняемой в песочнице. Чтобы получить сигнал для такого запроса, используйте тип уведомления `permission_prompt`.

2022 2024 

2023Совпадает с именем инструмента, те же значения, что и PreToolUse.2025Сопоставляется по имени инструмента, с теми же значениями, что и PreToolUse.

2024 2026 

2025<h4 id="permissionrequest-input">2027<h4 id="permissionrequest-input">

2026 PermissionRequest input2028 Входные данные PermissionRequest

2027</h4>2029</h4>

2028 2030 

2029Hooks PermissionRequest получают поля `tool_name` и `tool_input`, как hooks PreToolUse, но без `tool_use_id`. Для инструмента MCP они также получают объект [`mcp_server`](#pretooluse-input). Опциональный массив `permission_suggestions` содержит [обновления разрешений](#permission-update-entries), которые Claude Code предлагает для этого запроса, такие как добавление правила разрешения или изменение режима разрешений.2031Хуки PermissionRequest получают поля `tool_name` и `tool_input`, как хуки PreToolUse, но без `tool_use_id`. Для MCP-инструмента они также получают объект [`mcp_server`](#pretooluse-input). Необязательный массив `permission_suggestions` содержит [обновления разрешений](#permission-update-entries), которые Claude Code предлагает для этого запроса, например добавление правила разрешения или смену режима разрешений.

2030 2032 

2031Массив `permission_suggestions` не является точным списком опций, которые вы видите, потому что каждый диалог разрешений строит свои собственные опции. Некоторые диалоги, такие как для редактирования файлов, вообще не читают массив и получают свои опции из самого запроса. Диалог, который читает его, все еще может скрыть опцию, чье предложение остается в массиве, например, когда [`allowManagedPermissionRulesOnly`](/docs/ru/settings-reference#allowmanagedpermissionrulesonly) скрывает опции сохранения правил. Он также может предложить опции, которые не имеют записи предложения, такие как [**Yes, and switch to auto mode**](/docs/ru/permission-modes#switch-permission-modes), которая изменяет режим разрешений напрямую, а не через обновление разрешений.2033Массив `permission_suggestions` не является точным списком вариантов, которые вы видите, поскольку каждое диалоговое окно разрешений формирует собственные варианты. Некоторые диалоговые окна, например для редактирования файлов, вообще не читают этот массив и выводят варианты из самого запроса. Диалоговое окно, которое его читает, всё равно может скрыть вариант, предложение для которого остаётся в массиве, например когда [`allowManagedPermissionRulesOnly`](/docs/ru/settings-reference#allowmanagedpermissionrulesonly) скрывает варианты сохранения правил. Оно также может предлагать варианты без соответствующей записи, например [**Yes, and switch to auto mode**](/docs/ru/permission-modes#switch-permission-modes), который меняет режим разрешений напрямую, а не через обновление разрешений.

2032 2034 

2033Hooks PreToolUse запускаются перед каждым вызовом инструмента, независимо от того, нужно ли ему разрешение. Hooks PermissionRequest запускаются только, когда Claude Code собирается попросить у вас разрешение, или когда он в противном случае автоматически отказал бы вызову, который не может подсказать. Ни одно событие не срабатывает для [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior).2035Хуки PreToolUse выполняются перед каждым вызовом инструмента, независимо от того, нужно ли для него разрешение. Хуки PermissionRequest выполняются только когда Claude Code собирается запросить у вас разрешение или когда он иначе автоматически запретил бы вызов, который не может показать запрос. Ни одно из этих событий не срабатывает для [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior).

2034 2036 

2035```json theme={null}2037```json theme={null}

2036{2038{


2059 Управление решениями PermissionRequest2061 Управление решениями PermissionRequest

2060</h4>2062</h4>

2061 2063 

2062Hooks `PermissionRequest` могут разрешить или отказать запросы разрешений. Помимо [полей вывода JSON](#json-output), доступных всем hooks, ваш скрипт hook может вернуть объект `decision` с этими полями, специфичными для события:2064Хуки `PermissionRequest` могут разрешать или запрещать запросы разрешений. Помимо [полей вывода JSON](#json-output), доступных всем хукам, ваш скрипт хука может вернуть объект `decision` со следующими полями, специфичными для события:

2063 2065 

2064| Поле | Описание |2066| Поле | Описание |

2065| :- | :- |2067| :- | :- |

2066| `behavior` | `"allow"` предоставляет разрешение, `"deny"` отказывает. [Правила отказа и запроса](/docs/ru/permissions#manage-permissions) все еще оцениваются, поэтому hook, возвращающий `"allow"`, не переопределяет соответствующее правило отказа |2068| `behavior` | `"allow"` предоставляет разрешение, `"deny"` отклоняет его. [Правила запрета и запроса подтверждения](/docs/ru/permissions#manage-permissions) всё равно применяются, поэтому хук, возвращающий `"allow"`, не переопределяет соответствующее правило запрета |

2067| `updatedInput` | Для `"allow"` только: изменяет параметры ввода инструмента перед выполнением. Заменяет весь объект ввода, поэтому включите неизмененные поля рядом с измененными. Измененный ввод повторно оценивается против правил отказа и запроса |2069| `updatedInput` | Только для `"allow"`: изменяет входные параметры инструмента перед выполнением. Заменяет весь объект входных данных, поэтому включайте неизменённые поля вместе с изменёнными. Изменённые входные данные повторно проверяются по правилам запрета и запроса подтверждения |

2068| `updatedPermissions` | Для `"allow"` только: массив [записей обновления разрешений](#permission-update-entries) для применения, такие как добавление правила разрешения или изменение режима разрешений сеанса |2070| `updatedPermissions` | Только для `"allow"`: массив [записей обновления разрешений](#permission-update-entries) для применения, например добавление правила разрешения или смена режима разрешений сессии |

2069| `message` | Для `"deny"` только: говорит Claude, почему разрешение было отказано |2071| `message` | Только для `"deny"`: сообщает Claude, почему в разрешении отказано |

2070| `interrupt` | Для `"deny"` только: если `true`, останавливает Claude |2072| `interrupt` | Только для `"deny"`: если `true`, останавливает Claude |

2071 2073 

2072Hook, который выходит 2 без объекта `decision`, оставляет поток разрешений неизменным, и его stderr отбрасывается. Только объект `decision` может предоставить или отказать запрос.2074Хук, завершившийся с кодом выхода 2 без объекта `decision`, оставляет процесс проверки разрешений без изменений, а его stderr отбрасывается. Предоставить или отклонить запрос может только объект `decision`.

2073 2075 

2074```json theme={null}2076```json theme={null}

2075{2077{


2086```2088```

2087 2089 

2088<h4 id="permission-update-entries">2090<h4 id="permission-update-entries">

2089 Permission update entries2091 Записи обновления разрешений

2090</h4>2092</h4>

2091 2093 

2092Поле вывода `updatedPermissions` и поле ввода [`permission_suggestions`](#permissionrequest-input) оба используют один и тот же массив объектов записей. Каждая запись имеет `type`, который определяет ее другие поля, и `destination`, который управляет тем, где записывается изменение.2094Поле вывода `updatedPermissions` и [входное поле `permission_suggestions`](#permissionrequest-input) используют один и тот же массив объектов-записей. У каждой записи есть `type`, определяющий её остальные поля, и `destination`, управляющий тем, куда записывается изменение.

2093 2095 

2094| `type` | Поля | Эффект |2096| `type` | Поля | Действие |

2095| :- | :- | :- |2097| :- | :- | :- |

2096| `addRules` | `rules`, `behavior`, `destination` | Добавляет правила разрешения. `rules` — это массив объектов `{toolName, ruleContent?}`. Опустите `ruleContent` для совпадения со всем инструментом. `behavior` — это `"allow"`, `"deny"` или `"ask"` |2098| `addRules` | `rules`, `behavior`, `destination` | Добавляет правила разрешений. `rules` — массив объектов `{toolName, ruleContent?}`. Не указывайте `ruleContent`, чтобы охватить весь инструмент. `behavior` — `"allow"`, `"deny"` или `"ask"` |

2097| `replaceRules` | `rules`, `behavior`, `destination` | Заменяет все правила данного `behavior` в `destination` предоставленными `rules` |2099| `replaceRules` | `rules`, `behavior`, `destination` | Заменяет все правила заданного `behavior` в `destination` переданными `rules` |

2098| `removeRules` | `rules`, `behavior`, `destination` | Удаляет соответствующие правила данного `behavior` |2100| `removeRules` | `rules`, `behavior`, `destination` | Удаляет соответствующие правила заданного `behavior` |

2099| `setMode` | `mode`, `destination` | Изменяет режим разрешений. Допустимые режимы — `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` и `manual` как псевдоним для `default`. Псевдоним `manual` требует Claude Code v2.1.200 или позже |2101| `setMode` | `mode`, `destination` | Меняет режим разрешений. Допустимые режимы: `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` и `manual` как псевдоним для `default`. Для псевдонима `manual` требуется Claude Code v2.1.200 или новее |

2100| `addDirectories` | `directories`, `destination` | Добавляет рабочие директории. `directories` — это массив строк путей |2102| `addDirectories` | `directories`, `destination` | Добавляет рабочие каталоги. `directories` — массив строк путей |

2101| `removeDirectories` | `directories`, `destination` | Удаляет рабочие директории |2103| `removeDirectories` | `directories`, `destination` | Удаляет рабочие каталоги |

2102 2104 

2103<Note>2105<Note>

2104 `setMode` с `bypassPermissions` вступает в силу только, если вы запустили сеанс с режимом обхода, уже доступным: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` или `permissions.defaultMode: "bypassPermissions"` в [user, `--settings` или managed settings](/docs/ru/settings-reference#permissions-defaultmode). В противном случае обновление — это no-op. Обновление также является no-op, когда [`permissions.disableBypassPermissionsMode`](/docs/ru/permissions#managed-settings) отключает режим или когда сеанс запускается в [restricted mode](/docs/ru/cli-reference#cli-flags).2106 `setMode` с `bypassPermissions` действует, только если вы запустили сессию с уже доступным режимом обхода: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` или `permissions.defaultMode: "bypassPermissions"` в [пользовательских настройках, `--settings` или управляемых настройках](/docs/ru/settings-reference#permissions-defaultmode). В противном случае обновление ничего не делает. Обновление также ничего не делает, когда [`permissions.disableBypassPermissionsMode`](/docs/ru/permissions#managed-settings) отключает этот режим или когда сессия запускается в [ограниченном режиме](/docs/ru/cli-reference#cli-flags).

2105 2107 

2106 `bypassPermissions` никогда не сохраняется как `defaultMode` независимо от `destination`.2108 `bypassPermissions` никогда не сохраняется как `defaultMode` независимо от `destination`.

2107</Note>2109</Note>

2108 2110 

2109Поле `destination` на каждой записи определяет, остается ли изменение в памяти или сохраняется в файл параметров.2111Поле `destination` в каждой записи определяет, остаётся ли изменение в памяти или сохраняется в файл настроек.

2110 2112 

2111| `destination` | Записывает в |2113| `destination` | Куда записывается |

2112| :- | :- |2114| :- | :- |

2113| `session` | только в памяти, отбрасывается при завершении сеанса |2115| `session` | только в памяти, отбрасывается при завершении сессии |

2114| `localSettings` | `.claude/settings.local.json` |2116| `localSettings` | `.claude/settings.local.json` |

2115| `projectSettings` | `.claude/settings.json` |2117| `projectSettings` | `.claude/settings.json` |

2116| `userSettings` | `~/.claude/settings.json` |2118| `userSettings` | `~/.claude/settings.json` |

2117 2119 

2118Hook может повторить одно из `permission_suggestions`, которые он получил, как свой собственный вывод `updatedPermissions`.2120Хук может вернуть одно из полученных `permission_suggestions` в качестве собственного вывода `updatedPermissions`.

2119 2121 

2120<h3 id="posttooluse">2122<h3 id="posttooluse">

2121 PostToolUse2123 PostToolUse


2123 2125 

2124Запускается сразу после успешного завершения инструмента.2126Запускается сразу после успешного завершения инструмента.

2125 2127 

2126Совпадает с именем инструмента, те же значения, что и PreToolUse.2128Сопоставляется по имени инструмента, значения те же, что и для PreToolUse.

2127 2129 

2128Совпадайте более широко, когда имя инструмента не является правильным фильтром:2130Используйте более широкое сопоставление, когда имя инструмента не подходит в качестве фильтра:

2129 2131 

2130* Чтобы запустить hook после завершения любого инструмента успешно, опустите `matcher` или установите его на `"*"`. Ваш hook затем может обнаружить, что изменилось сам, например, запустив `git status --porcelain`, который также перечисляет неотслеживаемые файлы, которые `git diff` пропускает. Для вызовов инструментов, которые не удаются, добавьте тот же hook под [PostToolUseFailure](#posttoolusefailure).2132* Чтобы запускать хук после успешного завершения любого инструмента, опустите `matcher` или задайте ему значение `"*"`. Тогда ваш хук сможет сам определить, что изменилось, например выполнив `git status --porcelain`, который также показывает неотслеживаемые файлы, пропускаемые `git diff`. Для вызовов инструментов, завершившихся сбоем, добавьте тот же хук в [PostToolUseFailure](#posttoolusefailure).

2131* Чтобы запустить hook, когда определенный файл изменяется на диске, независимо от того, что его написало, используйте [FileChanged](#filechanged). Claude Code не запускает hook `PostToolUse`, соответствующий `Edit|Write`, когда команда `Bash` или процесс вне Claude Code переписывает тот же файл.2133* Чтобы запускать хук при изменении определённого файла на диске, независимо от того, что его записало, используйте [FileChanged](#filechanged). Claude Code не запускает хук `PostToolUse`, сопоставленный с `Edit|Write`, когда тот же файл перезаписывает команда `Bash` или процесс вне Claude Code.

2132 2134 

2133<h4 id="posttooluse-input">2135<h4 id="posttooluse-input">

2134 PostToolUse input2136 Входные данные PostToolUse

2135</h4>2137</h4>

2136 2138 

2137Hooks `PostToolUse` срабатывают после того, как инструмент уже выполнился успешно. Ввод включает как `tool_input`, аргументы, отправленные инструменту, так и `tool_response`, результат, который он вернул. Точная схема для обоих зависит от инструмента. Пути инструментов файлов `tool_input` прибывают в том же формате, что и для [PreToolUse](#pretooluse-input): всегда абсолютные, с собственными разделителями платформы, поэтому обратные косые черты на Windows. Для инструмента MCP ввод также несет объект [`mcp_server`](#pretooluse-input).2139Хуки `PostToolUse` срабатывают после того, как инструмент уже успешно выполнился. Входные данные включают как `tool_input` — аргументы, переданные инструменту, так и `tool_response` — возвращённый им результат. Точная схема обоих зависит от инструмента. Пути в `tool_input` файловых инструментов поступают в том же формате, что и для [PreToolUse](#pretooluse-input): всегда абсолютные, с нативными разделителями платформы, то есть с обратными слешами в Windows. Для MCP-инструмента входные данные также содержат объект [`mcp_server`](#pretooluse-input).

2138 2140 

2139```json theme={null}2141```json theme={null}

2140{2142{


2159 2161 

2160| Поле | Описание |2162| Поле | Описание |

2161| :- | :- |2163| :- | :- |

2162| `duration_ms` | Опциональный. Время выполнения инструмента в миллисекундах. Исключает время, потраченное на подсказки разрешений и hooks PreToolUse |2164| `duration_ms` | Необязательное. Время выполнения инструмента в миллисекундах. Не включает время, проведённое в запросах разрешений и хуках PreToolUse |

2163 2165 

2164<h4 id="posttooluse-decision-control">2166<h4 id="posttooluse-decision-control">

2165 Управление решениями PostToolUse2167 Управление решениями PostToolUse

2166</h4>2168</h4>

2167 2169 

2168Hooks `PostToolUse` могут предоставить обратную связь Claude после выполнения инструмента. Помимо [полей вывода JSON](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:2170Хуки `PostToolUse` могут передавать Claude обратную связь после выполнения инструмента. Помимо [полей вывода JSON](#json-output), доступных всем хукам, ваш скрипт хука может возвращать следующие поля, специфичные для события:

2169 2171 

2170| Поле | Описание |2172| Поле | Описание |

2171| :- | :- |2173| :- | :- |

2172| `decision` | `"block"` добавляет `reason` рядом с результатом инструмента. Claude все еще видит исходный вывод; чтобы заменить его, используйте `updatedToolOutput` |2174| `decision` | `"block"` добавляет `reason` рядом с результатом инструмента. Claude по-прежнему видит исходный вывод; чтобы заменить его, используйте `updatedToolOutput` |

2173| `reason` | Объяснение, показанное Claude, когда `decision` — это `"block"` |2175| `reason` | Пояснение, показываемое Claude, когда `decision` равно `"block"` |

2174| `additionalContext` | Строка, добавленная в контекст Claude рядом с результатом инструмента. См. [Add context for Claude](#add-context-for-claude) |2176| `additionalContext` | Строка, добавляемая в контекст Claude вместе с результатом инструмента. См. [Добавление контекста для Claude](#add-context-for-claude) |

2175| `classifierContext` | Краткая заметка об этом результате вызова для [классификатора режима auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), а не для Claude. См. [Annotate a result for the auto mode classifier](#annotate-a-result-for-the-auto-mode-classifier). Требует Claude Code v2.1.236 или позже |2177| `classifierContext` | Короткая заметка о результате этого вызова для классификатора [авторежима](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), а не для Claude. См. [Аннотирование результата для классификатора авторежима](#annotate-a-result-for-the-auto-mode-classifier). Требуется Claude Code v2.1.236 или новее |

2176| `updatedToolOutput` | Заменяет вывод инструмента предоставленным значением перед отправкой Claude. Значение должно совпадать с формой вывода инструмента |2178| `updatedToolOutput` | Заменяет вывод инструмента указанным значением перед отправкой Claude. Значение должно соответствовать форме вывода инструмента |

2177| `updatedMCPToolOutput` | Заменяет вывод для [инструментов MCP](#match-mcp-tools) только. Предпочитайте `updatedToolOutput`, который работает для всех инструментов |2179| `updatedMCPToolOutput` | Заменяет вывод только для [MCP-инструментов](#match-mcp-tools). Предпочтительнее использовать `updatedToolOutput`, который работает для всех инструментов |

2178 2180 

2179Пример ниже заменяет вывод вызова `Bash`. Значение замены совпадает с формой вывода инструмента `Bash`:2181Пример ниже заменяет вывод вызова `Bash`. Значение замены соответствует форме вывода инструмента `Bash`:

2180 2182 

2181```json theme={null}2183```json theme={null}

2182{2184{


2194```2196```

2195 2197 

2196<Warning>2198<Warning>

2197 `updatedToolOutput` только изменяет то, что видит Claude. Инструмент уже выполнился к моменту срабатывания hook, поэтому любые написанные файлы, выполненные команды или отправленные сетевые запросы уже вступили в силу. Телеметрия, такая как spans инструментов OpenTelemetry и события аналитики, также захватывает исходный вывод перед выполнением hook. Чтобы предотвратить или изменить вызов инструмента перед его выполнением, используйте hook [PreToolUse](#pretooluse) вместо этого.2199 `updatedToolOutput` изменяет только то, что видит Claude. К моменту срабатывания хука инструмент уже выполнился, поэтому все записанные файлы, выполненные команды или отправленные сетевые запросы уже вступили в силу. Телеметрия, например спаны инструментов OpenTelemetry и аналитические события, также фиксирует исходный вывод до запуска хука. Чтобы предотвратить или изменить вызов инструмента до его выполнения, используйте вместо этого хук [PreToolUse](#pretooluse).

2198 2200 

2199 Значение замены должно совпадать с формой вывода инструмента. Встроенные инструменты возвращают структурированные объекты, а не простые строки. Например, `Bash` возвращает объект с полями `stdout`, `stderr`, `interrupted` и `isImage`. Для встроенных инструментов значение, которое не совпадает со схемой вывода инструмента, игнорируется и используется исходный вывод. Вывод инструмента MCP передается без проверки схемы. Удаление деталей ошибок, которые нужны Claude, может привести к тому, что он продолжит с ложным предположением.2201 Значение замены должно соответствовать форме вывода инструмента. Встроенные инструменты возвращают структурированные объекты, а не простые строки. Например, `Bash` возвращает объект с полями `stdout`, `stderr`, `interrupted` и `isImage`. Для встроенных инструментов значение, не соответствующее схеме вывода инструмента, игнорируется, и используется исходный вывод. Вывод MCP-инструментов передаётся без проверки схемы. Удаление сведений об ошибках, которые нужны Claude, может привести к тому, что он продолжит работу на основе ложного предположения.

2200</Warning>2202</Warning>

2201 2203 

2202<h4 id="annotate-a-result-for-the-auto-mode-classifier">2204<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2203 Annotate a result for the auto mode classifier2205 Аннотирование результата для классификатора авторежима

2204</h4>2206</h4>

2205 2207 

2206Верните `classifierContext` для отправки краткой заметки об результате вызова инструмента [классификатору режима auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), а не Claude. Классификатор [никогда не получает сами результаты инструментов](/docs/ru/permission-modes#how-the-classifier-evaluates-actions), поэтому это поле — поддерживаемый способ рассказать ему что-то о том, что вернул вызов, перед тем, как он проверит более поздние действия. Поле требует Claude Code v2.1.236 или позже.2208Верните `classifierContext`, чтобы отправить короткую заметку о результате вызова инструмента классификатору [авторежима](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), а не Claude. Классификатор [никогда не получает сами результаты инструментов](/docs/ru/permission-modes#how-the-classifier-evaluates-actions), поэтому это поле — поддерживаемый способ сообщить ему что-либо о том, что вернул вызов, прежде чем он проверит последующие действия. Для этого поля требуется Claude Code v2.1.236 или новее.

2207 2209 

2208Пример ниже говорит классификатору, откуда пришел вывод запроса:2210Пример ниже сообщает классификатору, откуда взялся вывод запроса:

2209 2211 

2210```json theme={null}2212```json theme={null}

2211{2213{


2216}2218}

2217```2219```

2218 2220 

2219Сколько веса классификатор дает заметке, зависит от того, где вы настроили hook:2221Какой вес классификатор придаёт заметке, зависит от того, где вы настроили хук:

2220 2222 

2221* **Hooks, настроенные в Claude Code**: для hooks из файлов параметров, plugins, skills и frontmatter агента классификатор рассматривает заметку как непроверенный, предоставленный приложением контекст. Заметка никогда не устанавливает намерение пользователя, и если она утверждает, что вы одобрили или запросили что-то, классификатор проверяет это утверждение против ваших собственных сообщений в разговоре2223* **Хуки, настроенные в Claude Code**: для хуков из файлов настроек, плагинов, скиллов и frontmatter агентов классификатор рассматривает заметку как непроверенный контекст, предоставленный приложением. Заметка никогда не устанавливает намерение пользователя, и если в ней утверждается, что вы что-то одобрили или запросили, классификатор сверяет это утверждение с вашими собственными сообщениями в диалоге

2222* **In-process callbacks Agent SDK**: когда приложение, встраивающее Claude Code, регистрирует hook как [callback TypeScript SDK](/docs/ru/agent-sdk/hooks) и возвращает заметку во время живого сеанса, классификатор может взвесить утверждение пользователя, переданное в заметке, как намерение пользователя. Такое утверждение может удовлетворить требование согласия, которое классификатор принял бы из сообщения, которое вы отправляете, но оно никогда не снимает блокировку, которую ваше собственное сообщение не могло бы снять. После возобновления сеанса Claude Code рассматривает восстановленные заметки как непроверенный контекст. Когда hooks из обеих групп аннотируют один вызов, классификатор рассматривает объединенную заметку как непроверенный контекст2224* **Внутрипроцессные колбэки Agent SDK**: когда приложение, встраивающее Claude Code, регистрирует хук как [колбэк TypeScript SDK](/docs/ru/agent-sdk/hooks) и возвращает заметку во время активной сессии, классификатор может учитывать переданное в заметке утверждение пользователя как намерение пользователя. Такое утверждение может удовлетворить требование согласия, которое классификатор принял бы из отправленного вами сообщения, но оно никогда не снимает блокировку, которую не смогло бы снять и ваше собственное сообщение. После возобновления сессии Claude Code рассматривает восстановленные заметки как непроверенный контекст. Когда хуки из обеих групп аннотируют один и тот же вызов, классификатор рассматривает объединённую заметку как непроверенную

2223 2225 

2224Claude Code применяет эти ограничения при доставке заметки:2226Claude Code применяет следующие ограничения при доставке заметки:

2225 2227 

2226* **Длина**: Claude Code ограничивает заметки для одного вызова инструмента 2000 символами и усекает остальное. Ограничение делится между каждым hook, который отвечает на этот вызов2228* **Длина**: Claude Code ограничивает заметки для одного вызова инструмента 2 000 символами и обрезает остальное. Ограничение общее для всех хуков, отвечающих на этот вызов

2227* **Только синхронные ответы**: Claude Code игнорирует поле в ответе hook, который [выполняется в фоне](#run-hooks-in-the-background), потому что этот ответ прибывает после того, как Claude Code записывает результат инструмента2229* **Только синхронные ответы**: Claude Code игнорирует это поле в ответе хука, который [выполняется в фоне](#run-hooks-in-the-background), поскольку такой ответ приходит после того, как Claude Code записывает результат инструмента

2228* **Вызовы, которые классификатор не записывает**: транскрипт классификатора опускает поиски только для чтения, такие как чтение файлов и поиски. Claude Code отбрасывает заметку, прикрепленную к одному из этих вызовов2230* **Вызовы, которые классификатор не записывает**: транскрипт классификатора не включает операции только для чтения, такие как чтение файлов и поиск. Claude Code отбрасывает заметку, прикреплённую к одному из таких вызовов

2229* **Взаимодействие с переписыванием**: когда заметка описывает вывод, который вы заменяете с помощью `updatedToolOutput`, верните оба поля в одном ответе hook. Claude Code отбрасывает заметку, если это переписывание отклонено или переписывание другого hook заменяет его. Claude Code доставляет заметку, которую вы возвращаете без переписывания, даже когда другой hook переписывает вывод2231* **Взаимодействие с перезаписью**: когда заметка описывает вывод, который вы заменяете с помощью `updatedToolOutput`, верните оба поля в одном ответе хука. Claude Code отбрасывает заметку, если эта перезапись отклонена или её заменяет перезапись другого хука. Claude Code доставляет заметку, возвращённую без перезаписи, даже когда другой хук перезаписывает вывод

2230 2232 

2231<Warning>2233<Warning>

2232 Классификатор читает содержимое, которое вы помещаете в `classifierContext`, как информацию от приложения, размещающего сеанс, поэтому не копируйте в него ненадежный вывод инструмента или текст третьих сторон. Держите заметку к краткому утверждению об этом одном вызове, такому как факт о его происхождении или утверждение пользователя об этом; не используйте поле для доставки несвязанных сообщений или потока событий.2234 Классификатор воспринимает содержимое, которое вы помещаете в `classifierContext`, как информацию от приложения, в котором размещена сессия, поэтому не копируйте в него недоверенный вывод инструментов или сторонний текст. Ограничьте заметку коротким утверждением об этом конкретном вызове, например фактом о его происхождении или утверждением пользователя о нём; не используйте это поле для доставки несвязанных сообщений или потока событий.

2233</Warning>2235</Warning>

2234 2236 

2235<h3 id="posttoolusefailure">2237<h3 id="posttoolusefailure">

2236 PostToolUseFailure2238 PostToolUseFailure

2237</h3>2239</h3>

2238 2240 

2239Запускается, когда инструмент, который начал выполняться, не удается: инструмент выбросил ошибку или инструмент MCP вернул результат ошибки. Используйте это для логирования сбоев, отправки оповещений или предоставления исправляющей обратной связи Claude.2241Запускается, когда инструмент, начавший выполнение, завершается сбоем: инструмент выбросил ошибку или MCP-инструмент вернул результат с ошибкой. Используйте его для записи сбоев в лог, отправки оповещений или передачи Claude корректирующей обратной связи.

2240 2242 

2241Совпадает с именем инструмента, те же значения, что и PreToolUse.2243Сопоставляется по имени инструмента, значения те же, что и для PreToolUse.

2242 2244 

2243<Note>2245<Note>

2244 Это событие не срабатывает для вызовов инструментов, отклоненных перед выполнением: неизвестное название инструмента, ввод, который не проходит проверку схемы или инструмента, или отказ в разрешении. Отказы в проверке возвращаются как результаты `tool_use_error` и происходят перед выполнением hooks, поэтому они не срабатывают ни `PreToolUse`, ни этим событием. Отказы в разрешении срабатывают `PreToolUse`, но не это событие; см. [PermissionDenied](#permissiondenied).2246 Это событие не срабатывает для вызовов инструментов, отклонённых до выполнения: неизвестное имя инструмента, входные данные, не прошедшие проверку схемы или специфичную для инструмента проверку, или отказ в разрешении. Отклонения при проверке возвращаются как результаты `tool_use_error` и происходят до запуска хуков, поэтому они не вызывают ни `PreToolUse`, ни `PostToolUseFailure`. Отказы в разрешении вызывают `PreToolUse`, но не это событие; см. [PermissionDenied](#permissiondenied).

2245</Note>2247</Note>

2246 2248 

2247<h4 id="posttoolusefailure-input">2249<h4 id="posttoolusefailure-input">

2248 PostToolUseFailure input2250 Входные данные PostToolUseFailure

2249</h4>2251</h4>

2250 2252 

2251Hooks PostToolUseFailure получают те же поля `tool_name` и `tool_input`, что и PostToolUse, вместе с информацией об ошибке как полями верхнего уровня. Для инструмента MCP они также получают объект [`mcp_server`](#pretooluse-input). Например, неудачная команда `npm test` может доставить:2253Хуки PostToolUseFailure получают те же поля `tool_name` и `tool_input`, что и PostToolUse, а также информацию об ошибке в виде полей верхнего уровня. Для MCP-инструмента они также получают объект [`mcp_server`](#pretooluse-input). Например, неудачная команда `npm test` может передать:

2252 2254 

2253```json theme={null}2255```json theme={null}

2254{2256{


2271 2273 

2272| Поле | Описание |2274| Поле | Описание |

2273| :- | :- |2275| :- | :- |

2274| `error` | Строка, описывающая, что пошло не так. Формат зависит от инструмента, который не удался |2276| `error` | Строка, описывающая, что пошло не так. Формат зависит от инструмента, завершившегося сбоем |

2275| `is_interrupt` | Опциональное логическое значение. True, когда сбой достиг Claude Code как прерывание, а не как ошибка, которую сообщил инструмент. Отмена выполняющегося инструмента не срабатывает этим hook; результат инструмента несет сообщение прерывания вместо этого |2277| `is_interrupt` | Необязательное логическое значение. True, когда сбой достиг Claude Code как прерывание, а не как ошибка, о которой сообщил инструмент. Отмена выполняющегося инструмента не вызывает этот хук; вместо этого результат инструмента содержит сообщение о прерывании |

2276| `duration_ms` | Опциональный. Время выполнения инструмента в миллисекундах. Исключает время, потраченное на подсказки разрешений и hooks PreToolUse |2278| `duration_ms` | Необязательное. Время выполнения инструмента в миллисекундах. Не включает время, проведённое в запросах разрешений и хуках PreToolUse |

2277 2279 

2278Строка `error` обычно является тем же текстом, который Claude получает как результат неудачного инструмента. Его формат варьируется по инструменту и сбою. Ключ вашего hook на `tool_name`, `is_interrupt` и первой строке `Exit code N`; рассматривайте остальную строку как текст отображения, а не стабильный формат.2280Строка `error` обычно совпадает с текстом, который Claude получает в качестве результата неудавшегося инструмента. Её формат зависит от инструмента и сбоя. Ориентируйте хук на `tool_name`, `is_interrupt` и первую строку `Exit code N`; остальную часть строки рассматривайте как отображаемый текст, а не как стабильный формат.

2279 2281 

2280* Для Bash и PowerShell команда, которая выполнилась и вышла, создает первую строку `Exit code N`, затем любой вывод, который команда создала, как один блок с stdout и stderr перемешанными2282* Для Bash и PowerShell команда, которая выполнилась и завершилась, даёт первую строку `Exit code N`, а затем весь вывод команды одним блоком с чередующимися stdout и stderr

2281* Полезная нагрузка также может нести сообщение об ошибке без строки кода выхода, когда Claude Code не мог запустить сам процесс оболочки2283* Данные события также могут содержать простое сообщение о сбое без строки с кодом выхода, когда Claude Code не смог запустить сам процесс оболочки

2282* Claude Code усекает длинные строки в середине вокруг маркера `... [N characters truncated] ...` и может вставлять свои собственные строки, такие как `Command timed out after 2m 0s`2284* Claude Code обрезает длинные строки посередине вокруг маркера `... [N characters truncated] ...` и может вставлять собственные строки, например `Command timed out after 2m 0s`

2283 2285 

2284<h4 id="posttoolusefailure-decision-control">2286<h4 id="posttoolusefailure-decision-control">

2285 Управление решениями PostToolUseFailure2287 Управление решениями PostToolUseFailure

2286</h4>2288</h4>

2287 2289 

2288Hooks `PostToolUseFailure` могут предоставить контекст Claude после сбоя инструмента. Помимо [полей вывода JSON](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:2290Хуки `PostToolUseFailure` могут передавать Claude контекст после сбоя инструмента. Помимо [полей вывода JSON](#json-output), доступных всем хукам, ваш скрипт хука может возвращать следующие поля, специфичные для события:

2289 2291 

2290| Поле | Описание |2292| Поле | Описание |

2291| :- | :- |2293| :- | :- |

2292| `additionalContext` | Строка, добавленная в контекст Claude рядом с ошибкой. См. [Add context for Claude](#add-context-for-claude) |2294| `additionalContext` | Строка, добавляемая в контекст Claude вместе с ошибкой. См. [Добавление контекста для Claude](#add-context-for-claude) |

2293 2295 

2294```json theme={null}2296```json theme={null}

2295{2297{


2304 PostToolBatch2306 PostToolBatch

2305</h3>2307</h3>

2306 2308 

2307Запускается один раз после того, как каждый вызов инструмента в партии разрешится, перед отправкой Claude Code следующего запроса модели. `PostToolUse` срабатывает один раз для каждого инструмента, что означает, что он срабатывает одновременно, когда Claude делает параллельные вызовы инструментов. `PostToolBatch` срабатывает ровно один раз со всей партией, поэтому это правильное место для внедрения контекста, который зависит от набора инструментов, которые выполнились, а не от любого одного инструмента. Нет matcher для этого события.2309Запускается один раз после того, как разрешились все вызовы инструментов в пакете, до того как Claude Code отправит следующий запрос модели. `PostToolUse` срабатывает один раз для каждого инструмента, то есть срабатывает параллельно, когда Claude выполняет параллельные вызовы инструментов. `PostToolBatch` срабатывает ровно один раз с полным пакетом, поэтому это подходящее место для внедрения контекста, который зависит от набора выполненных инструментов, а не от какого-то одного инструмента. Для этого события matcher не поддерживается.

2308 2310 

2309<h4 id="posttoolbatch-input">2311<h4 id="posttoolbatch-input">

2310 PostToolBatch input2312 Входные данные PostToolBatch

2311</h4>2313</h4>

2312 2314 

2313Помимо [общих полей ввода](#common-input-fields), hooks PostToolBatch получают `tool_calls`, массив, описывающий каждый вызов инструмента в партии:2315Помимо [общих входных полей](#common-input-fields), хуки PostToolBatch получают `tool_calls` — массив, описывающий каждый вызов инструмента в пакете:

2314 2316 

2315```json theme={null}2317```json theme={null}

2316{2318{


2336}2338}

2337```2339```

2338 2340 

2339`tool_response` содержит то же содержимое, которое модель получает в соответствующем блоке `tool_result`. Значение — это сериализованная строка или массив блоков контента, ровно как инструмент выдал его. Для `Read` это означает текст с префиксом номера строки, а не необработанное содержимое файла. Ответы могут быть большими, поэтому анализируйте только нужные вам поля.2341`tool_response` содержит то же содержимое, которое модель получает в соответствующем блоке `tool_result`. Значение — сериализованная строка или массив блоков содержимого, в точности как их выдал инструмент. Для `Read` это означает текст с префиксами номеров строк, а не необработанное содержимое файла. Ответы могут быть большими, поэтому разбирайте только нужные поля.

2340 2342 

2341<Note>2343<Note>

2342 Форма `tool_response` отличается от `PostToolUse`. `PostToolUse` передает структурированный объект `Output` инструмента, такой как `{filePath: "...", type: "create"}` для `Write`; `PostToolBatch` передает сериализованное содержимое `tool_result`, которое видит модель.2344 Форма `tool_response` отличается от формы в `PostToolUse`. `PostToolUse` передаёт структурированный объект `Output` инструмента, например `{filePath: "...", type: "create"}` для `Write`; `PostToolBatch` передаёт сериализованное содержимое `tool_result`, которое видит модель.

2343</Note>2345</Note>

2344 2346 

2345<h4 id="posttoolbatch-decision-control">2347<h4 id="posttoolbatch-decision-control">

2346 Управление решениями PostToolBatch2348 Управление решениями PostToolBatch

2347</h4>2349</h4>

2348 2350 

2349Hooks `PostToolBatch` могут внедрить контекст для Claude. Помимо [полей вывода JSON](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:2351Хуки `PostToolBatch` могут внедрять контекст для Claude. Помимо [полей вывода JSON](#json-output), доступных всем хукам, ваш скрипт хука может возвращать следующие поля, специфичные для события:

2350 2352 

2351| Поле | Описание |2353| Поле | Описание |

2352| :- | :- |2354| :- | :- |

2353| `additionalContext` | Строка контекста, внедренная один раз перед следующим вызовом модели. См. [Add context for Claude](#add-context-for-claude) для деталей доставки, что в нее поместить и как возобновленные сеансы обрабатывают прошлые значения |2355| `additionalContext` | Строка контекста, внедряемая один раз перед следующим вызовом модели. Подробности доставки, что в неё помещать и как возобновлённые сессии обрабатывают прошлые значения, см. в разделе [Добавление контекста для Claude](#add-context-for-claude) |

2354 2356 

2355```json theme={null}2357```json theme={null}

2356{2358{


2361}2363}

2362```2364```

2363 2365 

2364Возврат `decision: "block"` или `continue: false` останавливает агентский цикл перед следующим вызовом модели. Сообщение блокировки поступает из JSON `reason` или `stopReason`, или из stderr при выходе 2. Вы видите его как предупреждение в транскрипте, и оно остается в разговоре, поэтому Claude видит его, когда разговор продолжается.2366Возврат `decision: "block"` или `continue: false` останавливает агентный цикл перед следующим вызовом модели. Сообщение о блокировке берётся из JSON-поля `reason` или `stopReason` либо из stderr при коде выхода 2. Вы видите его как предупреждение в транскрипте, и оно остаётся в диалоге, поэтому Claude видит его, когда диалог продолжается.

2365 2367 

2366<h3 id="permissiondenied">2368<h3 id="permissiondenied">

2367 PermissionDenied2369 PermissionDenied

2368</h3>2370</h3>

2369 2371 

2370Запускается, когда [режим auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) отказывает вызову инструмента, включая когда он отказывает без вердикта классификатора, потому что [проверка безопасности, отдельная от режима auto, отказала в запросе классификатора](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action) или его ответ не был проанализирован. Этот hook срабатывает только в режиме auto: он не запускается, когда вы вручную отказываете диалогу разрешений, когда hook `PreToolUse` блокирует вызов или когда совпадает правило `deny`. Используйте его для логирования отказов, корректировки конфигурации или сообщения модели, что она может повторить вызов инструмента.2372Запускается, когда [авторежим](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) отклоняет вызов инструмента, в том числе когда он отклоняет вызов без вердикта классификатора, потому что [проверка безопасности, отдельная от авторежима, отклонила собственный запрос классификатора](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action) или его ответ не удалось разобрать. Этот хук срабатывает только в авторежиме: он не запускается, когда вы вручную отклоняете диалоговое окно разрешения, когда хук `PreToolUse` блокирует вызов или когда срабатывает правило `deny`. Используйте его для записи отказов в лог, корректировки конфигурации или сообщения модели, что она может повторить попытку вызова инструмента.

2371 2373 

2372Совпадает с именем инструмента, те же значения, что и PreToolUse.2374Сопоставляется по имени инструмента, значения те же, что и для PreToolUse.

2373 2375 

2374<h4 id="permissiondenied-input">2376<h4 id="permissiondenied-input">

2375 PermissionDenied input2377 Входные данные PermissionDenied

2376</h4>2378</h4>

2377 2379 

2378Помимо [общих полей ввода](#common-input-fields), hooks PermissionDenied получают `tool_name`, `tool_input`, `tool_use_id` и `reason`. Для инструмента MCP они также получают объект [`mcp_server`](#pretooluse-input).2380Помимо [общих входных полей](#common-input-fields), хуки PermissionDenied получают `tool_name`, `tool_input`, `tool_use_id` и `reason`. Для MCP-инструмента они также получают объект [`mcp_server`](#pretooluse-input).

2379 2381 

2380```json theme={null}2382```json theme={null}

2381{2383{


2396 2398 

2397| Поле | Описание |2399| Поле | Описание |

2398| :- | :- |2400| :- | :- |

2399| `reason` | Причина отказа. Для вердикта классификатора в большинстве сеансов он называет совпадающее правило в квадратных скобках, такое как `[Data Exfiltration]`; см. [Review denials](/docs/ru/auto-mode-config#review-denials) для других форм. Для [отказа без вердикта](#permissiondenied-decision-control) он начинается с `Auto mode could not evaluate this action and is blocking it for safety`. Для отказа, потому что модель классификатора была недоступна, это фиксированный текст `Classifier unavailable` |2401| `reason` | Причина отказа. Для вердикта классификатора в большинстве сессий она называет сработавшее правило в квадратных скобках, например `[Data Exfiltration]`; другие формы см. в разделе [Просмотр отказов](/docs/ru/auto-mode-config#review-denials). Для [отказа без вердикта](#permissiondenied-decision-control) она начинается с `Auto mode could not evaluate this action and is blocking it for safety`. Для отказа из-за недоступности модели классификатора это фиксированный текст `Classifier unavailable` |

2400 2402 

2401<h4 id="permissiondenied-decision-control">2403<h4 id="permissiondenied-decision-control">

2402 Управление решениями PermissionDenied2404 Управление решениями PermissionDenied

2403</h4>2405</h4>

2404 2406 

2405Hooks PermissionDenied могут сказать модели, что она может повторить отклоненный вызов инструмента. Верните объект JSON с `hookSpecificOutput.retry`, установленным на `true`:2407Хуки PermissionDenied могут сообщить модели, что она может повторить попытку отклонённого вызова инструмента. Верните JSON-объект с `hookSpecificOutput.retry`, равным `true`:

2406 2408 

2407```json theme={null}2409```json theme={null}

2408{2410{


2413}2415}

2414```2416```

2415 2417 

2416Когда `retry` имеет значение `true`, Claude Code добавляет сообщение в разговор, говорящее модели, что она может повторить вызов инструмента. Claude Code не отменяет сам отказ. Если ваш hook не возвращает JSON или возвращает `retry: false`, отказ остается и модель получает исходное сообщение отказа.2418Когда `retry` равно `true`, Claude Code добавляет в диалог сообщение, сообщающее модели, что она может повторить попытку вызова инструмента. Сам отказ Claude Code не отменяет. Если ваш хук не возвращает JSON или возвращает `retry: false`, отказ остаётся в силе, и модель получает исходное сообщение об отклонении.

2417 2419 

2418Claude Code игнорирует `retry: true`, когда классификатор создал [отсутствие вердикта на действие](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action): его ответ не был проанализирован или проверка безопасности, отдельная от режима auto, отказала в запросе классификатора. Для этих отказов Claude Code уже говорит модели в сообщении отказа, повторить ли позже или продолжить.2420Claude Code игнорирует `retry: true`, когда классификатор [не вынес вердикта по действию](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action): его ответ не удалось разобрать, или проверка безопасности, отдельная от авторежима, отклонила собственный запрос классификатора. Для таких отказов Claude Code уже сообщает модели в сообщении об отклонении, следует ли повторить попытку позже или двигаться дальше.

2419 2421 

2420<h3 id="notification">2422<h3 id="notification">

2421 Notification2423 Notification

2422</h3>2424</h3>

2423 2425 

2424Запускается, когда Claude Code отправляет уведомления. Совпадает с типом уведомления. Опустите matcher для запуска hooks для всех типов уведомлений.2426Запускается, когда Claude Code отправляет уведомления. Сопоставляется по типу уведомления. Опустите matcher, чтобы запускать хуки для всех типов уведомлений.

2425 2427 

2426Вы получаете эти события hook даже с отключенными уведомлениями рабочего стола: параметр `preferredNotifChannel`, включая `notifications_disabled`, изменяет только то, как вас оповещают, а не срабатывает ли ваш hook.2428Вы получаете эти события хуков даже при отключённых уведомлениях рабочего стола: настройка `preferredNotifChannel`, включая `notifications_disabled`, меняет только способ оповещения, но не то, запускается ли ваш хук.

2427 2429 

2428| Matcher | Когда срабатывает |2430| Matcher | Когда срабатывает |

2429| :- | :- |2431| :- | :- |

2430| `permission_prompt` | Claude нуждается в вашем разрешении на использование инструмента или [сетевого запроса](/docs/ru/sandboxing#network-isolation) изолированной команды, и подсказка ждала около шести секунд |2432| `permission_prompt` | Claude нужно, чтобы вы подтвердили использование инструмента или [сетевой запрос](/docs/ru/sandboxing#network-isolation) команды в песочнице, и запрос ожидает около шести секунд |

2431| `idle_prompt` | Claude закончил отвечать около 60 секунд назад и вы не печатали с тех пор |2433| `idle_prompt` | Claude закончил отвечать около 60 секунд назад, и с тех пор вы ничего не вводили |

2432| `auth_success` | Аутентификация завершена |2434| `auth_success` | Аутентификация завершена |

2433| `elicitation_dialog` | Сервер MCP открывает форму запроса и вы не печатали около шести секунд |2435| `elicitation_dialog` | MCP-сервер открывает форму запроса данных, и вы ничего не вводили около шести секунд |

2434| `elicitation_url_dialog` | Сервер MCP просит вас открыть URL браузера и вы не печатали около шести секунд |2436| `elicitation_url_dialog` | MCP-сервер просит вас открыть URL в браузере, и вы ничего не вводили около шести секунд |

2435| `elicitation_complete` | Сервер MCP сообщает, что [URL-режим запроса](#elicitation-input) завершен |2437| `elicitation_complete` | MCP-сервер сообщает, что [запрос данных в режиме URL](#elicitation-input) завершён |

2436| `elicitation_response` | Ответ на запрос MCP отправляется обратно на сервер |2438| `elicitation_response` | Ответ на запрос данных MCP отправляется обратно на сервер |

2437| `agent_needs_input` | Фоновый сеанс начинает ждать вашего ввода, пока [agent view](/docs/ru/agent-view) открыт в терминале. Также срабатывает, когда сеанс терминала показывает вам [вопрос настройки терминала товарища команды агентов](/docs/ru/agent-teams#choose-a-display-mode) или уведомление режима auto о [расходах на запрос классификатора](/docs/ru/auto-mode-classifier-billing) и вы не печатали около шести секунд |2439| `agent_needs_input` | Фоновая сессия начинает ожидать вашего ввода, пока в терминале открыт [вид агентов](/docs/ru/agent-view). Также срабатывает, когда терминальная сессия показывает вам [вопрос участника команды агентов о настройке терминала](/docs/ru/agent-teams#choose-a-display-mode) или уведомление авторежима о [плате за запросы классификатора](/docs/ru/auto-mode-classifier-billing), и вы ничего не вводили около шести секунд |

2438| `agent_completed` | Фоновый сеанс завершается или не удается. Срабатывает только, пока [agent view](/docs/ru/agent-view) открыт в терминале |2440| `agent_completed` | Фоновая сессия завершается или завершается сбоем. Срабатывает, только пока в терминале открыт [вид агентов](/docs/ru/agent-view) |

2439| `quota_auto_resume_fired` | Claude Code продолжает вашу задачу после того, как лимит использования claude.ai приостановил его: при сбросе или раньше, когда что-то, что вы делаете в Claude Code во время ожидания, такое как добавление кредитов использования, обновление плана или переключение моделей, снова делает использование доступным, с [исключением параметра модели](/docs/ru/interactive-mode#wait-for-a-usage-limit-to-reset) |2441| `quota_auto_resume_fired` | Claude Code продолжает вашу задачу после того, как лимит использования claude.ai приостановил её: в момент сброса или раньше, когда что-то, что вы делаете в Claude Code во время ожидания, например добавление кредитов использования, повышение тарифного плана или смена модели, снова делает использование доступным, с [исключением для настройки модели](/docs/ru/interactive-mode#wait-for-a-usage-limit-to-reset) |

2440| `quota_auto_resume_stale` | Лимит использования claude.ai сбросился, пока ваш компьютер спал более чем около 30 минут. Claude Code ждет, пока вы нажмете `Enter`, вместо продолжения. После более короткого сна он продолжает и срабатывает `quota_auto_resume_fired` вместо этого |2442| `quota_auto_resume_stale` | Лимит использования claude.ai сбросился, пока ваш компьютер находился в спящем режиме более 30 минут. Claude Code ждёт, пока вы нажмёте `Enter`, вместо того чтобы продолжить. После более короткого сна он продолжает работу и вместо этого вызывает `quota_auto_resume_fired` |

2441| `quota_auto_resume_disabled` | Claude Code заканчивает свое ожидание лимита использования claude.ai без продолжения вашей задачи: [`autoContinueAtUsageLimit`](/docs/ru/settings-reference#autocontinueatusagelimit) отключен или сброс переместился более чем на 24 часа во время ожидания, которое Claude Code запустил сам, продолженная задача продолжала попадать на лимит или продолжение было заблокировано перед достижением модели. Не срабатывает, когда вы нажимаете `Esc` или `Ctrl+C` или выбираете **Don't continue automatically** |2443| `quota_auto_resume_disabled` | Claude Code завершает ожидание лимита использования claude.ai, не продолжая вашу задачу: [`autoContinueAtUsageLimit`](/docs/ru/settings-reference#autocontinueatusagelimit) отключена или сброс сместился более чем на 24 часа во время ожидания, которое Claude Code начал самостоятельно, продолженная задача продолжала упираться в лимит, или продолжение было заблокировано до того, как достигло модели. Не срабатывает, когда вы нажимаете `Esc` или `Ctrl+C` либо выбираете **Don't continue automatically** |

2442 2444 

2443Типы `quota_auto_resume_fired`, `quota_auto_resume_stale` и `quota_auto_resume_disabled` требуют Claude Code v2.1.234 или позже.2445Для типов `quota_auto_resume_fired`, `quota_auto_resume_stale` и `quota_auto_resume_disabled` требуется Claude Code v2.1.234 или новее.

2444 2446 

2445В сеансах терминала `permission_prompt` для [сетевого запроса](/docs/ru/sandboxing#network-isolation) изолированной команды требует Claude Code v2.1.246 или позже.2447В терминальных сессиях для `permission_prompt` при сетевом запросе команды в песочнице требуется Claude Code v2.1.246 или новее.

2446 2448 

2447`agent_needs_input` для вопроса настройки терминала товарища требует Claude Code v2.1.248 или позже.2449Для `agent_needs_input` при вопросе участника команды о настройке терминала требуется Claude Code v2.1.248 или новее.

2448 2450 

2449<Note>2451<Note>

2450 Типы `permission_prompt`, `idle_prompt`, `elicitation_dialog` и `elicitation_url_dialog` делят свое время с уведомлениями рабочего стола, поэтому в сеансах терминала вы видите их только, когда вы кажетесь отсутствующим от терминала:2452 Типы `permission_prompt`, `idle_prompt`, `elicitation_dialog` и `elicitation_url_dialog` используют те же тайминги, что и уведомления рабочего стола, поэтому в терминальных сессиях вы видите их, только когда, судя по всему, отошли от терминала:

2451 2453 

2452 * Ожидайте `permission_prompt` один раз, когда вы не печатали около шести секунд. Таймер начинается, когда появляется подсказка разрешения, и каждый нажатие клавиши откладывает его. Чтобы запустить hook немедленно, когда Claude просит разрешение на использование инструмента, используйте [PermissionRequest](#permissionrequest) вместо этого.2454 * Ожидайте `permission_prompt`, когда вы ничего не вводили около шести секунд. Таймер запускается при появлении запроса разрешения, и каждое нажатие клавиши откладывает его. Чтобы запускать хук сразу, когда Claude запрашивает разрешение на использование инструмента, используйте вместо этого [PermissionRequest](#permissionrequest).

2453 * Ожидайте `idle_prompt` около 60 секунд после завершения Claude ответа и только, если вы не печатали с тех пор. Claude Code не отправляет `idle_prompt`, пока ждет сброса лимита использования claude.ai. Когда ожидание заканчивается само по себе, один из типов `quota_auto_resume_*` срабатывает вместо этого.2455 * Ожидайте `idle_prompt` примерно через 60 секунд после того, как Claude закончит отвечать, и только если с тех пор вы ничего не вводили и ни один фоновый агент, например фоновый [субагент](/docs/ru/sub-agents), ещё не работает. Claude Code не отправляет `idle_prompt`, пока ожидает сброса лимита использования claude.ai. Когда ожидание заканчивается само по себе, вместо этого срабатывает один из типов `quota_auto_resume_*`.

2454 * Ожидайте `elicitation_dialog` для формы запроса или `elicitation_url_dialog` для запроса URL браузера один раз, когда вы не печатали около шести секунд. Оба делят один шестисекундный шлюз с `permission_prompt`: таймер начинается, когда появляется диалог, и каждый нажатие клавиши откладывает его.2456 * Ожидайте `elicitation_dialog` для формы запроса данных или `elicitation_url_dialog` для запроса URL в браузере, когда вы ничего не вводили около шести секунд. Оба используют тот же шестисекундный порог, что и `permission_prompt`: таймер запускается при появлении диалогового окна, и каждое нажатие клавиши откладывает его.

2455 2457 

2456 Запрос разрешения или запрос, который прибывает, пока другой диалог находится на экране, сохраняет один шестисекундный шлюз, рассчитанный с момента прибытия запроса. Его уведомление может достичь вас, пока запрос все еще ждет позади открытого диалога.2458 Запрос разрешения или запрос данных, поступивший, пока на экране открыто другое диалоговое окно, сохраняет тот же шестисекундный порог, отсчитываемый с момента поступления запроса. Уведомление о нём может дойти до вас, пока запрос всё ещё ожидает за открытым диалоговым окном.

2457</Note>2459</Note>

2458 2460 

2459Claude Code рассчитывает `permission_prompt` по-другому в сеансах, где он отправляет запросы разрешений на callback `canUseTool` Agent SDK, что является тем, как Claude Desktop и расширение VS Code размещают Claude Code:2461Claude Code иначе рассчитывает время `permission_prompt` в сессиях, где он отправляет запросы разрешений в [колбэк `canUseTool`](/docs/ru/agent-sdk/user-input) Agent SDK — именно так Claude Desktop и расширение VS Code размещают Claude Code:

2460 2462 

2461* Ожидайте `permission_prompt` около шести секунд после того, как Claude просит разрешение. Claude Code не откладывает его, пока вы печатаете.2463* Ожидайте `permission_prompt` примерно через шесть секунд после того, как Claude запросит разрешение. Claude Code не откладывает его, пока вы вводите текст.

2462* Если вы или hook [PermissionRequest](#permissionrequest) ответите раньше, Claude Code не запускает `permission_prompt`.2464* Если вы или хук [PermissionRequest](#permissionrequest) ответите раньше, Claude Code не запускает `permission_prompt`.

2463* Установите [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/ru/env-vars) на `1`, чтобы отключить `permission_prompt` в этих сеансах.2465* Установите [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/ru/env-vars) в `1`, чтобы отключить `permission_prompt` в таких сессиях.

2464 2466 

2465До версии 2.1.233 `permission_prompt` не срабатывал в этих сеансах.2467До v2.1.233 `permission_prompt` в таких сессиях не срабатывал.

2466 2468 

2467Используйте отдельные matchers для запуска разных обработчиков в зависимости от типа уведомления. Эта конфигурация запускает скрипт оповещения, специфичный для разрешения, когда Claude нуждается в одобрении разрешения, и другое уведомление, когда Claude был неактивен:2469Используйте отдельные matcher, чтобы запускать разные обработчики в зависимости от типа уведомления. Эта конфигурация запускает скрипт оповещения о разрешениях, когда Claude нужно подтверждение разрешения, и другое уведомление, когда Claude простаивает:

2468 2470 

2469```json theme={null}2471```json theme={null}

2470{2472{


2494```2496```

2495 2497 

2496<h4 id="notification-input">2498<h4 id="notification-input">

2497 Notification input2499 Входные данные Notification

2498</h4>2500</h4>

2499 2501 

2500Помимо [общих полей ввода](#common-input-fields), hooks Notification получают `message` с текстом уведомления, опциональный `title` и `notification_type`, указывающий, какой тип срабатывает.2502Помимо [общих входных полей](#common-input-fields), хуки Notification получают `message` с текстом уведомления, необязательное `title` и `notification_type`, указывающее, какой тип сработал.

2501 2503 

2502```json theme={null}2504```json theme={null}

2503{2505{


2511}2513}

2512```2514```

2513 2515 

2514Hooks Notification не могут блокировать или изменять уведомления. Claude Code отбрасывает их поля `systemMessage` и `continue`, но все еще выдает [`terminalSequence`](#emit-terminal-notifications), на которое полагается пример уведомления рабочего стола. Hooks Notification предназначены для побочных эффектов, таких как пересылка уведомления во внешний сервис.2516Хуки Notification не могут блокировать или изменять уведомления. Claude Code отбрасывает их поля `systemMessage` и `continue`, но по-прежнему выводит [`terminalSequence`](#emit-terminal-notifications), на чём основан пример уведомления рабочего стола. Хуки Notification предназначены для побочных эффектов, например пересылки уведомления во внешний сервис.

2515 2517 

2516<h3 id="subagentstart">2518<h3 id="subagentstart">

2517 SubagentStart2519 SubagentStart

2518</h3>2520</h3>

2519 2521 

2520Запускается, когда Claude порождает подагента с инструментом Agent, когда Claude [возобновляет подагента](/docs/ru/sub-agents#resume-subagents) и каждый раз, когда товарищ [команды агентов](/docs/ru/agent-teams) в процессе обрабатывает новое сообщение. Поддерживает matchers для фильтрации по имени типа агента. Для встроенных агентов это имя агента, такое как `general-purpose`, `Explore` или `Plan`. Для [пользовательских подагентов](/docs/ru/sub-agents) это поле `name` из frontmatter агента, а не имя файла.2522Запускается, когда Claude создаёт субагента с помощью инструмента Agent, когда Claude [возобновляет субагента](/docs/ru/sub-agents#resume-subagents), и каждый раз, когда внутрипроцессный участник [команды агентов](/docs/ru/agent-teams) обрабатывает новое сообщение. Поддерживает matcher для фильтрации по имени типа агента. Для встроенных агентов это имя агента, например `general-purpose`, `Explore` или `Plan`. Для [пользовательских субагентов](/docs/ru/sub-agents) это поле `name` из frontmatter агента, а не имя файла.

2521 2523 

2522Для подагентов, поставляемых [plugin](/docs/ru/plugins/overview), тип агента — это идентификатор с областью plugin, такой как `my-plugin:reviewer`, а не голое имя frontmatter. Двоеточие помещает имя с областью plugin на путь регулярного выражения, поэтому якорьте matcher с `^` и `$` для точного совпадения: `^my-plugin:reviewer$`.2524Для субагентов, поставляемых [плагином](/docs/ru/plugins/overview), тип агента — это идентификатор с областью плагина, например `my-plugin:reviewer`, а не просто имя из frontmatter. Двоеточие переводит имя с областью плагина на путь регулярных выражений, поэтому для точного совпадения закрепите matcher с помощью `^` и `$`: `^my-plugin:reviewer$`.

2523 2525 

2524<h4 id="subagentstart-input">2526<h4 id="subagentstart-input">

2525 SubagentStart input2527 Входные данные SubagentStart

2526</h4>2528</h4>

2527 2529 

2528Помимо [общих полей ввода](#common-input-fields), hooks SubagentStart получают `agent_id` с уникальным идентификатором подагента и `agent_type` с именем агента, который matcher фильтрует.2530Помимо [общих входных полей](#common-input-fields), хуки SubagentStart получают `agent_id` с уникальным идентификатором субагента и `agent_type` с именем агента, по которому фильтрует matcher.

2529 2531 

2530```json theme={null}2532```json theme={null}

2531{2533{


2538}2540}

2539```2541```

2540 2542 

2541Hooks SubagentStart не могут блокировать создание подагента, но они могут внедрить контекст в подагента. Помимо [полей вывода JSON](#json-output), доступных всем hooks, вы можете вернуть:2543Хуки SubagentStart не могут блокировать создание субагента, но могут внедрять в него контекст. Помимо [полей вывода JSON](#json-output), доступных всем хукам, вы можете вернуть:

2542 2544 

2543| Поле | Описание |2545| Поле | Описание |

2544| :- | :- |2546| :- | :- |

2545| `additionalContext` | Строка, добавленная в контекст подагента в начале его разговора, перед его первой подсказкой. См. [Add context for Claude](#add-context-for-claude) |2547| `additionalContext` | Строка, добавляемая в контекст субагента в начале его диалога, перед первым промптом. См. [Добавление контекста для Claude](#add-context-for-claude) |

2546 2548 

2547```json theme={null}2549```json theme={null}

2548{2550{


2553}2555}

2554```2556```

2555 2557 

2556Когда hook запускается снова для того же подагента, Claude Code внедряет возвращенный контекст только, когда контекст подагента уже не содержит копию из более раннего запуска. Копия, внедренная при запуске, остается на месте, оставляя [кэш подсказок](/docs/ru/prompt-caching#subagents-and-the-cache) подагента нетронутым. После [автоматического сжатия](/docs/ru/sub-agents#auto-compaction) отбрасывает эту копию, Claude Code внедряет контекст следующего запуска снова.2558Когда хук снова запускается для того же субагента, Claude Code внедряет возвращённый контекст, только если контекст субагента ещё не содержит копию из предыдущего запуска. Копия, внедрённая при запуске, остаётся на месте, сохраняя [кэш промптов](/docs/ru/prompt-caching#subagents-and-the-cache) субагента нетронутым. После того как [автосжатие](/docs/ru/sub-agents#auto-compaction) отбрасывает эту копию, Claude Code снова внедряет контекст следующего запуска.

2557 2559 

2558<h3 id="subagentstop">2560<h3 id="subagentstop">

2559 SubagentStop2561 SubagentStop

2560</h3>2562</h3>

2561 2563 

2562Запускается, когда подагент Claude Code закончил отвечать. Совпадает с типом агента, те же значения, что и SubagentStart.2564Запускается, когда субагент Claude Code закончил отвечать. Сопоставляется по типу агента, значения те же, что и для SubagentStart.

2563 2565 

2564<h4 id="subagentstop-input">2566<h4 id="subagentstop-input">

2565 SubagentStop input2567 Входные данные SubagentStop

2566</h4>2568</h4>

2567 2569 

2568Помимо [общих полей ввода](#common-input-fields), hooks SubagentStop получают `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` и `last_assistant_message`. Поле `agent_type` — это значение, используемое для фильтрации matcher. `transcript_path` — это транскрипт основного сеанса, в то время как `agent_transcript_path` — это собственный транскрипт подагента, хранящийся в вложенной папке `subagents/`. Поле `last_assistant_message` содержит текстовое содержимое финального ответа подагента, поэтому hooks могут получить доступ к нему без анализа файла транскрипта.2570Помимо [общих входных полей](#common-input-fields), хуки SubagentStop получают `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` и `last_assistant_message`. Поле `agent_type` — это значение, используемое для фильтрации matcher. `transcript_path` — это транскрипт основной сессии, тогда как `agent_transcript_path` — собственный транскрипт субагента, хранящийся во вложенной папке `subagents/`. Поле `last_assistant_message` содержит текстовое содержимое последнего ответа субагента, поэтому хуки могут получить к нему доступ без разбора файла транскрипта.

2569 2571 

2570Не каждое событие SubagentStop поступает от подагента, который Claude порождает. Claude Code также запускает внутренних агентов для некоторых своих собственных функций, таких как [предложения подсказок](/docs/ru/interactive-mode#prompt-suggestions) и [вопросы в сторону `/btw`](/docs/ru/interactive-mode#side-questions-with-%2Fbtw), и SubagentStop срабатывает, когда один из них завершается. Для этих событий `agent_type` — это имя агента, который запускает сам сеанс, такой как один, установленный с [`--agent`](/docs/ru/cli-reference#cli-flags) или параметром [`agent`](/docs/ru/settings-reference#agent), и пустая строка, когда сеанс запускается без одного.2572Не каждое событие SubagentStop исходит от субагента, созданного Claude. Claude Code также запускает внутренних агентов для некоторых собственных функций, таких как [предложения промптов](/docs/ru/interactive-mode#prompt-suggestions) и [побочные вопросы `/btw`](/docs/ru/interactive-mode#side-questions-with-%2Fbtw), и SubagentStop срабатывает, когда завершается и один из них. Для таких событий `agent_type` — это имя агента, от имени которого работает сама сессия, например заданное с помощью [`--agent`](/docs/ru/cli-reference#cli-flags) или [настройки `agent`](/docs/ru/settings-reference#agent), и пустая строка, когда сессия работает без него.

2571 2573 

2572`matcher`, который называет типы агентов, не совпадает с пустым `agent_type`. Hook, чей matcher опущен, `""` или `"*"`, или является регулярным выражением, которое совпадает с пустой строкой, запускается для событий с пустым `agent_type` тоже.2574`matcher`, называющий типы агентов, не совпадает с пустым `agent_type`. Хук, у которого matcher опущен, равен `""` или `"*"` либо является регулярным выражением, совпадающим с пустой строкой, запускается и для событий с пустым `agent_type`.

2573 2575 

2574На Claude Code v2.1.271 или позже подагент, который выполняется с инструментом [`SubagentHandback`](/docs/ru/tools-reference), доставляет свой отчет через этот инструмент перед остановкой. Поле `last_assistant_message` затем содержит закрывающий текст подагента, если есть, который не является доставленным отчетом. Отчет — это ввод `message` этого вызова, который hook `PreToolUse` или `PostToolUse`, соответствующий `SubagentHandback`, получает как `tool_input.message`.2576В Claude Code v2.1.271 или новее субагент, работающий с инструментом [`SubagentHandback`](/docs/ru/tools-reference), доставляет свой отчёт через этот инструмент перед остановкой. Тогда поле `last_assistant_message` содержит заключительный текст субагента, если он есть, который не является доставленным отчётом. Отчёт — это входное значение `message` этого вызова, которое хук `PreToolUse` или `PostToolUse`, сопоставленный с `SubagentHandback`, получает как `tool_input.message`.

2575 2577 

2576Hooks SubagentStop также получают массивы `background_tasks` и `session_crons`, описанные в [Stop input](#stop-input). Оба массива ограничены родительским сеансом, а не подагентом.2578Хуки SubagentStop также получают массивы `background_tasks` и `session_crons`, описанные в разделе [Входные данные Stop](#stop-input). Оба массива относятся к родительской сессии, а не к субагенту.

2577 2579 

2578```json theme={null}2580```json theme={null}

2579{2581{


2592}2594}

2593```2595```

2594 2596 

2595Hooks SubagentStop используют тот же формат управления решениями, что и [hooks Stop](#stop-decision-control), включая `hookSpecificOutput.additionalContext` с `hookEventName`, установленным на `"SubagentStop"`, для обратной связи без ошибок, которая держит подагента работающим. Возврат `decision: "block"` с `reason` держит подагента работающим и доставляет `reason` подагенту как его следующую инструкцию. Hook, который блокирует выходом 2, доставляет его сообщение stderr так же. Чтобы внедрить контекст в родительский сеанс после возврата подагента, используйте hook [`PostToolUse`](#posttooluse) на инструменте `Agent` вместо этого.2597Хуки SubagentStop используют тот же формат управления решениями, что и [хуки Stop](#stop-decision-control), включая `hookSpecificOutput.additionalContext` с `hookEventName`, равным `"SubagentStop"`, для обратной связи без ошибки, которая продолжает работу субагента. Возврат `decision: "block"` с `reason` продолжает работу субагента и доставляет `reason` субагенту в качестве следующей инструкции. Хук, который блокирует с кодом выхода 2, доставляет своё сообщение stderr тем же способом. Чтобы внедрить контекст в родительскую сессию после возврата субагента, используйте вместо этого хук [`PostToolUse`](#posttooluse) для инструмента `Agent`.

2596 2598 

2597<h3 id="taskcreated">2599<h3 id="taskcreated">

2598 TaskCreated2600 TaskCreated

2599</h3>2601</h3>

2600 2602 

2601Запускается, когда задача создается через инструмент `TaskCreate`. Используйте это для обеспечения соглашений об именовании, требования описаний задач или предотвращения создания определенных задач. В [сеансе без инструментов Task](/docs/ru/tools-reference#task-tool-availability) это событие не срабатывает.2603Запускается, когда задача создаётся с помощью инструмента `TaskCreate`. Используйте его для соблюдения соглашений об именовании, обязательного указания описаний задач или предотвращения создания определённых задач. В [сессии без инструментов Task](/docs/ru/tools-reference#task-tool-availability) это событие не срабатывает.

2602 2604 

2603Hooks TaskCreated не поддерживают matchers и срабатывают при каждом возникновении.2605Хуки TaskCreated не поддерживают matcher и срабатывают при каждом возникновении события.

2604 2606 

2605<h4 id="taskcreated-input">2607<h4 id="taskcreated-input">

2606 TaskCreated input2608 Входные данные TaskCreated

2607</h4>2609</h4>

2608 2610 

2609Помимо [общих полей ввода](#common-input-fields), hooks TaskCreated получают `task_id`, `task_subject` и опционально `task_description`, `teammate_name` и `team_name`.2611Помимо [общих входных полей](#common-input-fields), хуки TaskCreated получают `task_id`, `task_subject` и, необязательно, `task_description`, `teammate_name` и `team_name`.

2610 2612 

2611```json theme={null}2613```json theme={null}

2612{2614{


2625| Поле | Описание |2627| Поле | Описание |

2626| :- | :- |2628| :- | :- |

2627| `task_id` | Идентификатор создаваемой задачи |2629| `task_id` | Идентификатор создаваемой задачи |

2628| `task_subject` | Название задачи |2630| `task_subject` | Заголовок задачи |

2629| `task_description` | Подробное описание задачи. Может отсутствовать |2631| `task_description` | Подробное описание задачи. Может отсутствовать |

2630| `teammate_name` | Имя товарища, создающего задачу. Может отсутствовать |2632| `teammate_name` | Имя участника команды, создающего задачу. Может отсутствовать |

2631| `team_name` | Устарело. Название команды, полученное из сеанса; будет удалено в будущем выпуске |2633| `team_name` | Устаревшее. Имя команды, производное от сессии; будет удалено в будущем выпуске |

2632 2634 

2633<h4 id="taskcreated-decision-control">2635<h4 id="taskcreated-decision-control">

2634 Управление решениями TaskCreated2636 Управление решениями TaskCreated

2635</h4>2637</h4>

2636 2638 

2637Hook TaskCreated может заблокировать создание двумя способами. В любом случае Claude Code удаляет задачу и возвращает ваше сообщение Claude как ошибку инструмента. Claude Code игнорирует `continue: false` из этого события и Claude продолжает работать.2639Хук TaskCreated может заблокировать создание двумя способами. В любом случае Claude Code удаляет задачу и возвращает ваше сообщение Claude в качестве ошибки инструмента. Claude Code игнорирует `continue: false` от этого события, и Claude продолжает работу.

2638 2640 

2639* **Код выхода 2**: Claude Code возвращает текст stderr как сообщение.2641* **Код выхода 2**: Claude Code возвращает текст stderr в качестве сообщения.

2640* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code возвращает `reason` как сообщение.2642* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code возвращает `reason` в качестве сообщения.

2641 2643 

2642Этот пример блокирует задачи, чьи названия не следуют требуемому формату:2644Этот пример блокирует задачи, заголовки которых не соответствуют требуемому формату:

2643 2645 

2644```bash theme={null}2646```bash theme={null}

2645#!/bin/bash2647#!/bin/bash


2658 TaskCompleted2660 TaskCompleted

2659</h3>2661</h3>

2660 2662 

2661Запускается, когда задача отмечается как завершенная. Это срабатывает в двух ситуациях: когда любой агент явно отмечает задачу как завершенную через инструмент TaskUpdate или когда товарищ [команды агентов](/docs/ru/agent-teams) завершает свой ход с выполняющимися задачами. Используйте это для обеспечения критериев завершения, таких как прохождение тестов или проверок lint перед закрытием задачи.2663Запускается, когда задача помечается как выполненная. Это происходит в двух ситуациях: когда любой агент явно помечает задачу как выполненную с помощью инструмента TaskUpdate или когда участник [команды агентов](/docs/ru/agent-teams) завершает свой ход с задачами в процессе выполнения. Используйте его для соблюдения критериев завершения, таких как прохождение тестов или проверок линтера, прежде чем задачу можно будет закрыть.

2662 2664 

2663Hooks TaskCompleted не поддерживают matchers и срабатывают при каждом возникновении.2665Хуки TaskCompleted не поддерживают matcher и срабатывают при каждом возникновении события.

2664 2666 

2665<h4 id="taskcompleted-input">2667<h4 id="taskcompleted-input">

2666 TaskCompleted input2668 Входные данные TaskCompleted

2667</h4>2669</h4>

2668 2670 

2669Помимо [общих полей ввода](#common-input-fields), hooks TaskCompleted получают `task_id`, `task_subject` и опционально `task_description`, `teammate_name` и `team_name`.2671Помимо [общих входных полей](#common-input-fields), хуки TaskCompleted получают `task_id`, `task_subject` и, необязательно, `task_description`, `teammate_name` и `team_name`.

2670 2672 

2671```json theme={null}2673```json theme={null}

2672{2674{


2686| Поле | Описание |2688| Поле | Описание |

2687| :- | :- |2689| :- | :- |

2688| `task_id` | Идентификатор завершаемой задачи |2690| `task_id` | Идентификатор завершаемой задачи |

2689| `task_subject` | Название задачи |2691| `task_subject` | Заголовок задачи |

2690| `task_description` | Подробное описание задачи. Может отсутствовать |2692| `task_description` | Подробное описание задачи. Может отсутствовать |

2691| `teammate_name` | Имя товарища, завершающего задачу. Может отсутствовать |2693| `teammate_name` | Имя участника команды, завершающего задачу. Может отсутствовать |

2692| `team_name` | Устарело. Название команды, полученное из сеанса; будет удалено в будущем выпуске |2694| `team_name` | Устаревшее. Имя команды, производное от сессии; будет удалено в будущем выпуске |

2693 2695 

2694<h4 id="taskcompleted-decision-control">2696<h4 id="taskcompleted-decision-control">

2695 Управление решениями TaskCompleted2697 Управление решениями TaskCompleted

2696</h4>2698</h4>

2697 2699 

2698Hooks TaskCompleted поддерживают два способа управления завершением задачи:2700Хуки TaskCompleted поддерживают два способа управления завершением задачи:

2699 2701 

2700* **Код выхода 2**: задача не отмечается как завершенная и сообщение stderr передается обратно модели как обратная связь.2702* **Код выхода 2**: задача не помечается как выполненная, а сообщение stderr передаётся модели в качестве обратной связи.

2701* **JSON `{"continue": false, "stopReason": "..."}`**: когда событие запустил товарищ, завершающий свой ход, полностью останавливает товарища, совпадая с поведением hook `Stop`. `stopReason` показывается пользователю. Когда событие запустил инструмент `TaskUpdate`, Claude Code игнорирует `continue: false`; код выхода 2 все еще блокирует завершение.2703* **JSON `{"continue": false, "stopReason": "..."}`**: когда событие вызвано завершением хода участника команды, полностью останавливает участника команды, аналогично поведению хука `Stop`. `stopReason` показывается пользователю. Когда событие вызвано инструментом `TaskUpdate`, Claude Code игнорирует `continue: false`; код выхода 2 по-прежнему блокирует завершение.

2702 2704 

2703Этот пример запускает тесты и блокирует завершение задачи, если они не удаются:2705Этот пример запускает тесты и блокирует завершение задачи, если они не проходят:

2704 2706 

2705```bash theme={null}2707```bash theme={null}

2706#!/bin/bash2708#!/bin/bash


2720 Stop2722 Stop

2721</h3>2723</h3>

2722 2724 

2723Запускается, когда основной агент Claude Code закончил отвечать. Не запускается, если остановка произошла из-за прерывания пользователем. Ошибки API запускают [StopFailure](#stopfailure) вместо этого.2725Запускается, когда основной агент Claude Code закончил отвечать. Не запускается, если

2726остановка произошла из-за прерывания пользователем. При ошибках API вместо этого

2727срабатывает [StopFailure](#stopfailure).

2724 2728 

2725<Tip>2729<Tip>

2726 Команда [`/goal`](/docs/ru/goal) — это встроенный ярлык для hook Stop с областью сеанса на основе подсказки. Используйте его, когда вы хотите, чтобы Claude продолжал работать над условием без написания конфигурации hook.2730 Команда [`/goal`](/docs/ru/goal) — встроенный ярлык для хука Stop на основе промпта с областью действия сессии. Используйте её, когда хотите, чтобы Claude продолжал работать над достижением условия, без написания конфигурации хука.

2727</Tip>2731</Tip>

2728 2732 

2729<h4 id="stop-input">2733<h4 id="stop-input">

2730 Stop input2734 Входные данные Stop

2731</h4>2735</h4>

2732 2736 

2733Помимо [общих полей ввода](#common-input-fields), hooks Stop получают `stop_hook_active`, `last_assistant_message`, `background_tasks` и `session_crons`. Поле `stop_hook_active` имеет значение `true`, когда Claude Code уже продолжает в результате hook stop. Проверьте это значение или обработайте транскрипт, чтобы избежать блокировки на условии, которое никогда не разрешится. Claude Code применяет ограничение на 8 последовательных продолжений: после того, как hooks stop продолжили ход восемь раз подряд, Claude Code переопределяет следующий блок и заканчивает ход. Чтобы поднять ограничение, установите [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ru/env-vars).2737Помимо [общих входных полей](#common-input-fields), хуки Stop получают `stop_hook_active`, `last_assistant_message`, `background_tasks` и `session_crons`. Поле `stop_hook_active` равно `true`, когда Claude Code уже продолжает работу в результате хука остановки. Проверяйте это значение или обрабатывайте транскрипт, чтобы избежать блокировки по условию, которое никогда не разрешится. Claude Code применяет ограничение в 8 последовательных продолжений: после того как хуки остановки продолжили ход восемь раз подряд, Claude Code переопределяет следующую блокировку и завершает ход. Чтобы повысить ограничение, задайте [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ru/env-vars).

2734 2738 

2735Поле `last_assistant_message` содержит текстовое содержимое финального ответа Claude, поэтому hooks могут получить доступ к нему без анализа файла транскрипта. Для hooks, которые действуют на только что завершенный ход, такие как hooks чтения вслух или уведомления, используйте это поле, а не читайте `transcript_path`: файл транскрипта не гарантирует включение финального сообщения в момент Stop на всех версиях.2739Поле `last_assistant_message` содержит текстовое содержимое последнего ответа Claude, поэтому хуки могут получить к нему доступ без разбора файла транскрипта. Для хуков, которые действуют по только что завершённому ходу, например хуков чтения вслух или уведомлений, используйте это поле, а не чтение `transcript_path`: не во всех версиях гарантируется, что файл транскрипта содержит последнее сообщение в момент Stop.

2736 2740 

2737Массивы `background_tasks` и `session_crons` позволяют hooks различать "сеанс завершен" от "сеанс приостановлен в ожидании фоновой работы для его пробуждения". Оба массива присутствуют, когда реестр задач доступен и пусты, когда ничего не выполняется или не запланировано.2741Массивы `background_tasks` и `session_crons` позволяют хукам отличать «сессия завершена» от «сессия приостановлена в ожидании, пока фоновая работа снова её разбудит». Оба массива присутствуют, когда реестр задач доступен, и пусты, когда ничего не выполняется и не запланировано.

2738 2742 

2739Каждая запись в `background_tasks` описывает одну выполняющуюся задачу и использует эти поля:2743Каждая запись в `background_tasks` описывает одну выполняющуюся задачу и использует следующие поля:

2740 2744 

2741| Поле | Описание |2745| Поле | Описание |

2742| :- | :- |2746| :- | :- |

2743| `id` | Идентификатор задачи |2747| `id` | Идентификатор задачи |

2744| `type` | Дружественный ярлык типа задачи, такой как `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` или `MCP task`. Каждый ярлык определяет, какая функция Claude Code создала задачу. Возвращается к необработанному дискриминанту для неизвестных типов |2748| `type` | Понятная метка типа задачи, например `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` или `MCP task`. Каждая метка указывает, какая функция Claude Code создала задачу. Для нераспознанных типов используется необработанный дискриминант |

2745| `status` | Текущий статус задачи |2749| `status` | Текущий статус задачи |

2746| `description` | Описание в свободной форме, ограниченное 1000 символами с маркером `… [+N chars]` в строке при обрезании |2750| `description` | Произвольное текстовое описание, ограниченное 1000 символами, с маркером `… [+N chars]` внутри строки при обрезке |

2747| `command` | Командная строка оболочки, ограниченная 1000 символами. Присутствует только для задач `shell` |2751| `command` | Командная строка оболочки, ограниченная 1000 символами. Присутствует только для задач `shell` |

2748| `agent_type` | Имя типа подагента. Присутствует только для задач `subagent` |2752| `agent_type` | Имя типа субагента. Присутствует только для задач `subagent` |

2749| `server` | Имя сервера MCP. Присутствует только для задач `monitor` и `MCP task` |2753| `server` | Имя MCP-сервера. Присутствует только для задач `monitor` и `MCP task` |

2750| `tool` | Имя инструмента MCP. Присутствует только для задач `monitor` и `MCP task` |2754| `tool` | Имя MCP-инструмента. Присутствует только для задач `monitor` и `MCP task` |

2751| `name` | Имя workflow. Присутствует только для задач `workflow` |2755| `name` | Имя workflow. Присутствует только для задач `workflow` |

2752 2756 

2753Каждая запись в `session_crons` описывает одно запланированное пробуждение с областью сеанса, полученное из `CronCreate`, `ScheduleWakeup` и `/loop`:2757Каждая запись в `session_crons` описывает одно запланированное пробуждение с областью действия сессии, полученное из `CronCreate`, `ScheduleWakeup` и `/loop`:

2754 2758 

2755| Поле | Описание |2759| Поле | Описание |

2756| :- | :- |2760| :- | :- |

2757| `id` | Идентификатор задачи cron |2761| `id` | Идентификатор cron-задачи |

2758| `schedule` | Выражение cron, например `0 9 * * 1-5` |2762| `schedule` | Cron-выражение, например `0 9 * * 1-5` |

2759| `recurring` | `false` для одноразовых пробуждений, чье расписание кодирует одно время срабатывания, `true` для задач, которые повторно срабатывают при каждом совпадении |2763| `recurring` | `false` для однократных пробуждений, расписание которых задаёт одно время срабатывания, `true` для задач, которые срабатывают повторно при каждом совпадении |

2760| `prompt` | Подсказка, отправленная при срабатывании cron, ограниченная 1000 символами с тем же маркером `… [+N chars]` |2764| `prompt` | Промпт, отправляемый при срабатывании cron, ограниченный 1000 символами с тем же маркером `… [+N chars]` |

2761 2765 

2762Этот пример показывает ввод Stop с одной выполняющейся задачей оболочки и одним повторяющимся cron:2766Этот пример показывает входные данные Stop с одной выполняющейся задачей оболочки и одним повторяющимся cron:

2763 2767 

2764```json theme={null}2768```json theme={null}

2765{2769{


2794 Управление решениями Stop2798 Управление решениями Stop

2795</h4>2799</h4>

2796 2800 

2797Hooks `Stop` и `SubagentStop` могут управлять тем, продолжает ли Claude. Помимо [полей вывода JSON](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:2801Хуки `Stop` и `SubagentStop` могут управлять тем, продолжает ли Claude работу. Помимо [полей вывода JSON](#json-output), доступных всем хукам, ваш скрипт хука может возвращать следующие поля, специфичные для события:

2798 2802 

2799| Поле | Описание |2803| Поле | Описание |

2800| :- | :- |2804| :- | :- |

2801| `decision` | `"block"` предотвращает остановку Claude. Опустите, чтобы позволить Claude остановиться |2805| `decision` | `"block"` не даёт Claude остановиться. Опустите, чтобы разрешить Claude остановиться |

2802| `reason` | Требуется, когда `decision` имеет значение `"block"`. Говорит Claude, почему он должен продолжить |2806| `reason` | Обязательно, когда `decision` равно `"block"`. Сообщает Claude, почему он должен продолжить |

2803| `hookSpecificOutput.additionalContext` | Обратная связь без ошибок для Claude. Разговор продолжается, чтобы Claude мог действовать на ней, но в отличие от `decision: "block"`, она показывается в транскрипте как обратная связь hook, а не ошибка hook |2807| `hookSpecificOutput.additionalContext` | Обратная связь для Claude без ошибки. Диалог продолжается, чтобы Claude мог действовать на её основе, но, в отличие от `decision: "block"`, она отображается в транскрипте как обратная связь хука, а не как ошибка хука |

2804 2808 

2805Hook, который блокирует выходом 2, маршрутизируется так же, как `reason`: Claude получает сообщение stderr как объяснение того, почему он должен продолжить.2809Хук, который блокирует с кодом выхода 2, обрабатывается так же, как `reason`: Claude получает сообщение stderr в качестве объяснения, почему он должен продолжить.

2806 2810 

2807```json theme={null}2811```json theme={null}

2808{2812{


2811}2815}

2812```2816```

2813 2817 

2814Используйте `additionalContext`, когда hook работает как задумано и дает Claude руководство, такое как "запустить набор тестов перед завершением". Это держит разговор идущим через те же защиты цикла, что и `decision: "block"`, а именно ввод `stop_hook_active` и ограничение на 8 последовательных продолжений, но транскрипт помечает его как `Stop hook feedback` и уведомление об ошибке hook не показывается:2818Используйте `additionalContext`, когда хук работает как задумано и даёт Claude указания, например «запусти набор тестов перед завершением». Он продолжает диалог с теми же защитами от зацикливания, что и `decision: "block"`, а именно входным полем `stop_hook_active` и ограничением в 8 последовательных продолжений, но транскрипт помечает его как `Stop hook feedback`, и уведомление об ошибке хука не показывается:

2815 2819 

2816```json theme={null}2820```json theme={null}

2817{2821{


2826 StopFailure2830 StopFailure

2827</h3>2831</h3>

2828 2832 

2829Запускается вместо [Stop](#stop), когда ход заканчивается из-за ошибки API. Claude Code игнорирует вывод и код выхода hook, кроме [`terminalSequence`](#emit-terminal-notifications). Используйте это для логирования сбоев, отправки оповещений или принятия действий восстановления, когда Claude не может завершить ответ из-за ограничений скорости, проблем аутентификации или других ошибок API.2833Запускается вместо [Stop](#stop), когда ход завершается из-за ошибки API. Claude Code игнорирует вывод и код выхода хука, за исключением [`terminalSequence`](#emit-terminal-notifications). Используйте его для записи сбоев в лог, отправки оповещений или выполнения действий по восстановлению, когда Claude не может завершить ответ из-за ограничений частоты запросов, проблем с аутентификацией или других ошибок API.

2830 2834 

2831<h4 id="stopfailure-input">2835<h4 id="stopfailure-input">

2832 StopFailure input2836 Входные данные StopFailure

2833</h4>2837</h4>

2834 2838 

2835Помимо [общих полей ввода](#common-input-fields), hooks StopFailure получают `error`, опциональный `error_details` и опциональный `last_assistant_message`. Поле `error` определяет тип ошибки и используется для фильтрации matcher.2839Помимо [общих входных полей](#common-input-fields), хуки StopFailure получают `error`, необязательное `error_details` и необязательное `last_assistant_message`. Поле `error` определяет тип ошибки и используется для фильтрации matcher.

2836 2840 

2837| Поле | Описание |2841| Поле | Описание |

2838| :- | :- |2842| :- | :- |

2839| `error` | Тип ошибки: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` или `unknown` |2843| `error` | Тип ошибки: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` или `unknown` |

2840| `error_details` | Дополнительные детали об ошибке, когда доступны |2844| `error_details` | Дополнительные сведения об ошибке, если они доступны |

2841| `last_assistant_message` | Отображаемый текст ошибки, показанный в разговоре. В отличие от `Stop` и `SubagentStop`, где это поле содержит разговорный вывод Claude, для `StopFailure` оно содержит строку ошибки API, такую как `"API Error: Rate limit reached"` |2845| `last_assistant_message` | Отображаемый текст ошибки, показанный в диалоге. В отличие от `Stop` и `SubagentStop`, где это поле содержит разговорный вывод Claude, для `StopFailure` оно содержит саму строку ошибки API, например `"API Error: Rate limit reached"` |

2842 2846 

2843```json theme={null}2847```json theme={null}

2844{2848{


2852}2856}

2853```2857```

2854 2858 

2855Hooks StopFailure не имеют управления решениями. Они запускаются только в целях уведомления и логирования.2859Хуки StopFailure не имеют управления решениями. Они запускаются только для уведомлений и логирования.

2856 2860 

2857<h3 id="teammateidle">2861<h3 id="teammateidle">

2858 TeammateIdle2862 TeammateIdle

2859</h3>2863</h3>

2860 2864 

2861Запускается, когда товарищ [команды агентов](/docs/ru/agent-teams) собирается перейти в режим ожидания после завершения своего хода. Используйте это для обеспечения шлюзов качества перед остановкой товарища, такие как требование прохождения проверок lint или проверка существования выходных файлов.2865Запускается, когда участник [команды агентов](/docs/ru/agent-teams) собирается перейти в режим простоя после завершения своего хода. Используйте его для применения контроля качества до того, как участник команды прекратит работу, например требуя прохождения проверок линтера или проверяя наличие выходных файлов.

2862 2866 

2863Hooks TeammateIdle не поддерживают matchers и срабатывают при каждом возникновении.2867Хуки TeammateIdle не поддерживают matcher и срабатывают при каждом возникновении события.

2864 2868 

2865<h4 id="teammateidle-input">2869<h4 id="teammateidle-input">

2866 TeammateIdle input2870 Входные данные TeammateIdle

2867</h4>2871</h4>

2868 2872 

2869Помимо [общих полей ввода](#common-input-fields), hooks TeammateIdle получают `teammate_name` и `team_name`.2873Помимо [общих входных полей](#common-input-fields), хуки TeammateIdle получают `teammate_name` и `team_name`.

2870 2874 

2871```json theme={null}2875```json theme={null}

2872{2876{


2882 2886 

2883| Поле | Описание |2887| Поле | Описание |

2884| :- | :- |2888| :- | :- |

2885| `teammate_name` | Имя товарища, который собирается перейти в режим ожидания |2889| `teammate_name` | Имя участника команды, который собирается перейти в режим простоя |

2886| `team_name` | Устарело. Название команды, полученное из сеанса; будет удалено в будущем выпуске |2890| `team_name` | Устаревшее. Имя команды, производное от сессии; будет удалено в будущем выпуске |

2887 2891 

2888<h4 id="teammateidle-decision-control">2892<h4 id="teammateidle-decision-control">

2889 Управление решениями TeammateIdle2893 Управление решениями TeammateIdle

2890</h4>2894</h4>

2891 2895 

2892Hooks TeammateIdle поддерживают два способа управления поведением товарища:2896Хуки TeammateIdle поддерживают два способа управления поведением участника команды:

2893 2897 

2894* **Код выхода 2**: товарищ получает сообщение stderr как обратную связь и продолжает работать вместо перехода в режим ожидания.2898* **Код выхода 2**: участник команды получает сообщение stderr в качестве обратной связи и продолжает работу вместо перехода в режим простоя.

2895* **JSON `{"continue": false, "stopReason": "..."}`**: полностью останавливает товарища, совпадая с поведением hook `Stop`. `stopReason` показывается пользователю.2899* **JSON `{"continue": false, "stopReason": "..."}`**: полностью останавливает участника команды, аналогично поведению хука `Stop`. `stopReason` показывается пользователю.

2896 2900 

2897Этот пример проверяет, что артефакт сборки существует перед разрешением товарищу перейти в режим ожидания:2901Этот пример проверяет наличие артефакта сборки, прежде чем разрешить участнику команды перейти в режим простоя:

2898 2902 

2899```bash theme={null}2903```bash theme={null}

2900#!/bin/bash2904#!/bin/bash


2911 ConfigChange2915 ConfigChange

2912</h3>2916</h3>

2913 2917 

2914Запускается, когда файл конфигурации изменяется во время сеанса. Используйте это для аудита изменений параметров, обеспечения политик безопасности или блокировки несанкционированных изменений файлов конфигурации.2918Запускается, когда файл конфигурации изменяется во время сессии. Используйте его для аудита изменений настроек, применения политик безопасности или блокировки несанкционированных изменений файлов конфигурации.

2915 2919 

2916Claude Code запускает hooks ConfigChange, когда файл параметров, файл управляемой политики или файл skill изменяется. Для управляемой политики он запускает их только, когда `managed-settings.json` или файл в `managed-settings.d/` изменяется. Он применяет [параметры, управляемые сервером](/docs/ru/server-managed-settings) и изменения в macOS управляемые предпочтения или политику реестра Windows без запуска их. На WSL с [`wslInheritsWindowsSettings`](/docs/ru/settings-reference#wslinheritswindowssettings) он также применяет измененный файл управляемых параметров Windows на его опросе политики без запуска их.2920Claude Code запускает хуки ConfigChange, когда изменяется файл настроек, файл управляемой политики или файл скилла. Для управляемой политики он запускает их, только когда изменяется `managed-settings.json` или файл в `managed-settings.d/`. [Настройки, управляемые сервером](/docs/ru/server-managed-settings), и изменения управляемых настроек macOS или политики реестра Windows он применяет без запуска хуков. В WSL с [`wslInheritsWindowsSettings`](/docs/ru/settings-reference#wslinheritswindowssettings) он также применяет изменённый файл управляемых настроек на стороне Windows при опросе политики, не запуская хуки.

2917 2921 

2918Matcher фильтрует по источнику конфигурации:2922Matcher фильтрует по источнику конфигурации:

2919 2923 

2920| Matcher | Когда срабатывает |2924| Matcher | Когда срабатывает |

2921| :- | :- |2925| :- | :- |

2922| `user_settings` | `~/.claude/settings.json` изменяется |2926| `user_settings` | Изменяется `~/.claude/settings.json` |

2923| `project_settings` | `.claude/settings.json` изменяется |2927| `project_settings` | Изменяется `.claude/settings.json` |

2924| `local_settings` | `.claude/settings.local.json` изменяется |2928| `local_settings` | Изменяется `.claude/settings.local.json` |

2925| `policy_settings` | `managed-settings.json` или файл в `managed-settings.d/` изменяется |2929| `policy_settings` | Изменяется `managed-settings.json` или файл в `managed-settings.d/` |

2926| `skills` | Файл skill в `.claude/skills/` изменяется |2930| `skills` | Изменяется файл скилла в `.claude/skills/` |

2927 2931 

2928Этот пример логирует все изменения конфигурации для аудита безопасности:2932Этот пример записывает в лог все изменения конфигурации для аудита безопасности:

2929 2933 

2930```json theme={null}2934```json theme={null}

2931{2935{


2946```2950```

2947 2951 

2948<h4 id="configchange-input">2952<h4 id="configchange-input">

2949 ConfigChange input2953 Входные данные ConfigChange

2950</h4>2954</h4>

2951 2955 

2952Помимо [общих полей ввода](#common-input-fields), hooks ConfigChange получают `source` и опционально `file_path`. Поле `source` указывает, какой тип конфигурации изменился, и `file_path` предоставляет путь к конкретному файлу, который был изменен.2956Помимо [общих входных полей](#common-input-fields), хуки ConfigChange получают `source` и, необязательно, `file_path`. Поле `source` указывает, какой тип конфигурации изменился, а `file_path` содержит путь к конкретному изменённому файлу.

2953 2957 

2954```json theme={null}2958```json theme={null}

2955{2959{


2966 Управление решениями ConfigChange2970 Управление решениями ConfigChange

2967</h4>2971</h4>

2968 2972 

2969Hooks ConfigChange могут блокировать изменения конфигурации от вступления в силу. Используйте код выхода 2 или JSON `decision` для предотвращения изменения. При блокировке новые параметры не применяются к работающему сеансу.2973Хуки ConfigChange могут блокировать вступление изменений конфигурации в силу. Используйте код выхода 2 или JSON-поле `decision`, чтобы предотвратить изменение. При блокировке новые настройки не применяются к работающей сессии.

2970 2974 

2971| Поле | Описание |2975| Поле | Описание |

2972| :- | :- |2976| :- | :- |

2973| `decision` | `"block"` предотвращает применение изменения конфигурации. Опустите, чтобы позволить изменению |2977| `decision` | `"block"` предотвращает применение изменения конфигурации. Опустите, чтобы разрешить изменение |

2974| `reason` | Принято, но никогда не показано |2978| `reason` | Принимается, но никогда не показывается |

2975 2979 

2976```json theme={null}2980```json theme={null}

2977{2981{


2980}2984}

2981```2985```

2982 2986 

2983Изменения `policy_settings` не могут быть заблокированы. Hooks все еще срабатывают для источников `policy_settings`, когда файл управляемых параметров на машине изменяется, поэтому вы можете использовать их для логирования этих редактирований, но любое решение блокировки игнорируется. Это гарантирует, что параметры, управляемые предприятием, всегда вступают в силу. Claude Code не запускает hooks `ConfigChange`, когда прибывают [параметры, управляемые сервером](/docs/ru/server-managed-settings) или обновляются.2987Изменения `policy_settings` нельзя заблокировать. Хуки по-прежнему срабатывают для источников `policy_settings`, когда изменяется файл управляемых настроек на компьютере, поэтому вы можете использовать их для записи этих правок в лог, но любое решение о блокировке игнорируется. Это гарантирует, что настройки, управляемые организацией, всегда вступают в силу. Claude Code не запускает хуки `ConfigChange`, когда [настройки, управляемые сервером](/docs/ru/server-managed-settings), поступают или обновляются.

2984 2988 

2985Claude Code действует на решение блокировки из вывода JSON hook ConfigChange и отбрасывает `systemMessage` и `continue`. Заблокированное изменение не выводит никакого сообщения вам или Claude, блокируете ли вы с `reason` или с stderr при выходе 2. Claude Code только записывает строку в debug log.2989Claude Code учитывает решение о блокировке из JSON-вывода хука ConfigChange и отбрасывает `systemMessage` и `continue`. Заблокированное изменение не выводит никакого сообщения ни вам, ни Claude, независимо от того, блокируете ли вы с помощью `reason` или через stderr с кодом выхода 2. Claude Code лишь записывает строку в лог отладки.

2986 2990 

2987<h3 id="cwdchanged">2991<h3 id="cwdchanged">

2988 CwdChanged2992 CwdChanged

2989</h3>2993</h3>

2990 2994 

2991Запускается, когда команда оболочки в основном разговоре изменяет рабочую директорию, например когда Claude выполняет команду `cd`. Используйте это для реакции на изменения директории: перезагрузка переменных окружения, активация цепочек инструментов, специфичных для проекта, или автоматический запуск скриптов настройки. Пары с [FileChanged](#filechanged) для инструментов, таких как [direnv](https://direnv.net/), которые управляют окружением для каждой директории.2995Запускается, когда shell-команда в основном диалоге изменяет рабочий каталог, например когда Claude выполняет команду `cd`. Используйте его для реакции на смену каталога: перезагрузки переменных окружения, активации инструментальных цепочек проекта или автоматического запуска скриптов настройки. Работает в паре с [FileChanged](#filechanged) для таких инструментов, как [direnv](https://direnv.net/), которые управляют окружением для каждого каталога.

2992 2996 

2993Hooks CwdChanged имеют доступ к [`CLAUDE_ENV_FILE`](#persist-environment-variables). Переменные, записанные в этот файл, сохраняются в последующих командах Bash до следующего события CwdChanged, когда Claude Code их очищает.2997Хуки CwdChanged имеют доступ к [`CLAUDE_ENV_FILE`](#persist-environment-variables). Переменные, записанные в этот файл, сохраняются для последующих команд Bash до следующего события CwdChanged, когда Claude Code их очищает.

2994 2998 

2995CwdChanged не поддерживает matchers и срабатывает при каждом возникновении.2999CwdChanged не поддерживает matcher и срабатывает при каждом возникновении события.

2996 3000 

2997<h4 id="cwdchanged-input">3001<h4 id="cwdchanged-input">

2998 CwdChanged input3002 Входные данные CwdChanged

2999</h4>3003</h4>

3000 3004 

3001Помимо [общих полей ввода](#common-input-fields), hooks CwdChanged получают `old_cwd` и `new_cwd`.3005Помимо [общих входных полей](#common-input-fields), хуки CwdChanged получают `old_cwd` и `new_cwd`.

3002 3006 

3003```json theme={null}3007```json theme={null}

3004{3008{


3012```3016```

3013 3017 

3014<h4 id="cwdchanged-output">3018<h4 id="cwdchanged-output">

3015 CwdChanged output3019 Вывод CwdChanged

3016</h4>3020</h4>

3017 3021 

3018Помимо [полей вывода JSON](#json-output), доступных всем hooks, hooks CwdChanged могут вернуть `watchPaths` для динамической установки того, какие пути файлов [FileChanged](#filechanged) наблюдает:3022Помимо [полей вывода JSON](#json-output), доступных всем хукам, хуки CwdChanged могут возвращать `watchPaths`, чтобы динамически задавать, за какими путями файлов следит [FileChanged](#filechanged):

3019 3023 

3020| Поле | Описание |3024| Поле | Описание |

3021| :- | :- |3025| :- | :- |

3022| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список наблюдения. Пути из конфигурации вашего `matcher` всегда наблюдаются. Возврат пустого массива очищает динамический список, что типично при входе в новую директорию |3026| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список наблюдения. Пути из вашей конфигурации `matcher` отслеживаются всегда. Возврат пустого массива очищает динамический список, что типично при входе в новый каталог |

3023 3027 

3024Hooks CwdChanged не имеют управления решениями. Они не могут блокировать изменение директории.3028Хуки CwdChanged не имеют управления решениями. Они не могут заблокировать смену каталога.

3025 3029 

3026Claude Code читает `watchPaths` и `systemMessage` из их вывода JSON и отбрасывает `continue`. В интерактивных сеансах он показывает `systemMessage` как краткое уведомление терминала. Сообщение не достигает потока сообщений SDK.3030Claude Code считывает `watchPaths` и `systemMessage` из их JSON-вывода и отбрасывает `continue`. В интерактивных сессиях он показывает `systemMessage` как краткое уведомление в терминале. Сообщение не попадает в поток сообщений SDK.

3027 3031 

3028<h3 id="directoryadded">3032<h3 id="directoryadded">

3029 DirectoryAdded3033 DirectoryAdded

3030</h3>3034</h3>

3031 3035 

3032Запускается после добавления рабочей директории во время сеанса с командой `/add-dir` или после добавления клиентом SDK с запросом управления `register_repo_root`. Используйте это для подготовки вновь добавленного репозитория, например, установки его зависимостей.3036Запускается после того, как вы добавляете рабочий каталог в середине сессии командой `/add-dir` или после того, как клиент SDK добавляет его управляющим запросом `register_repo_root`. Используйте его для подготовки только что добавленного репозитория, например для установки его зависимостей.

3033 3037 

3034Claude Code не срабатывает это событие, когда:3038Claude Code не вызывает это событие, когда:

3035 3039 

3036* Вы передаете директорию с флагом запуска `--add-dir`; [SessionStart](#sessionstart) охватывает эти директории3040* Вы передаёте каталог с помощью флага запуска `--add-dir`; такие каталоги охватывает [SessionStart](#sessionstart)

3037* Вы добавляете директорию на вкладку Workspace `/permissions`3041* Вы добавляете каталог на вкладке Workspace в `/permissions`

3038* Вы добавляете директорию, которая уже является рабочей директорией или находится внутри одной3042* Вы добавляете каталог, который уже является рабочим каталогом или находится внутри него

3039 3043 

3040Claude Code срабатывает DirectoryAdded после обновления состояния sandbox и разрешений, поэтому изолированные инструменты уже видят новую директорию, когда запускается ваш hook. Команды hook сами выполняются без изоляции.3044Claude Code вызывает DirectoryAdded после обновления состояния песочницы и разрешений, поэтому инструменты в песочнице уже видят новый каталог, когда запускается ваш хук. Сами команды хуков выполняются вне песочницы.

3041 3045 

3042Claude Code не ждет hook: добавление завершается немедленно, и hook выполняется в фоне с тайм-аутом по умолчанию 600 секунд.3046Claude Code не ждёт хук: добавление завершается немедленно, а хук выполняется в фоне со стандартным таймаутом 600 секунд.

3043 3047 

3044Matcher фильтрует по тому, как была добавлена директория:3048Matcher фильтрует по способу добавления каталога:

3045 3049 

3046| Matcher | Когда срабатывает |3050| Matcher | Когда срабатывает |

3047| :- | :- |3051| :- | :- |

3048| `slash_command` | Вы добавляете директорию с `/add-dir` |3052| `slash_command` | Вы добавляете каталог с помощью `/add-dir` |

3049| `register_repo_root` | Клиент SDK добавляет директорию с запросом управления `register_repo_root` |3053| `register_repo_root` | Клиент SDK добавляет каталог управляющим запросом `register_repo_root` |

3050 3054 

3051<h4 id="directoryadded-input">3055<h4 id="directoryadded-input">

3052 DirectoryAdded input3056 Входные данные DirectoryAdded

3053</h4>3057</h4>

3054 3058 

3055Помимо [общих полей ввода](#common-input-fields), hooks DirectoryAdded получают `directory` и `source`.3059Помимо [общих входных полей](#common-input-fields), хуки DirectoryAdded получают `directory` и `source`.

3056 3060 

3057| Поле | Описание |3061| Поле | Описание |

3058| :- | :- |3062| :- | :- |

3059| `directory` | Абсолютный путь директории, которая была добавлена |3063| `directory` | Абсолютный путь к добавленному каталогу |

3060| `source` | Как была добавлена директория, `"slash_command"` для `/add-dir` или `"register_repo_root"` для запроса управления SDK |3064| `source` | Способ добавления каталога: `"slash_command"` для `/add-dir` или `"register_repo_root"` для управляющего запроса SDK |

3061 3065 

3062```json theme={null}3066```json theme={null}

3063{3067{


3070}3074}

3071```3075```

3072 3076 

3073Hooks DirectoryAdded не имеют управления решениями. Они не могут блокировать добавление, которое уже завершилось, когда выполняется hook. Claude Code отбрасывает поле `continue` из их вывода JSON и выводит остальное по-разному в зависимости от источника:3077Хуки DirectoryAdded не имеют управления решениями. Они не могут заблокировать добавление, которое уже завершено к моменту запуска хука. Claude Code отбрасывает поле `continue` из их JSON-вывода, а остальное обрабатывает по-разному в зависимости от источника:

3074 3078 

3075* `slash_command`: Claude Code доставляет `systemMessage` hook Claude как контекст на следующем ходе разговора, а не показывает вам. Количество неудачных hooks появляется в транскрипте. Полный вывод сбоя идет в debug log3079* `slash_command`: Claude Code доставляет `systemMessage` хука Claude в качестве контекста на следующем ходе диалога, а не показывает его вам. Количество неудавшихся хуков отображается в транскрипте. Полный вывод сбоев записывается в лог отладки

3076* `register_repo_root`: Claude Code пишет вывод `systemMessage` и вывод сбоя только в debug log3080* `register_repo_root`: Claude Code записывает вывод `systemMessage` и вывод сбоев только в лог отладки

3077 3081 

3078<h3 id="filechanged">3082<h3 id="filechanged">

3079 FileChanged3083 FileChanged

3080</h3>3084</h3>

3081 3085 

3082Запускается, когда наблюдаемый файл изменяется на диске. Claude Code обнаруживает изменения с помощью наблюдателя файловой системы, а не путем проверки вызовов инструментов, поэтому он запускает hook независимо от того, что изменило файл: вызов инструмента `Edit` или `Write`, скрипт, который Claude запускает с `Bash`, или процесс вне Claude Code полностью. Обычное использование — перезагрузка переменных окружения, когда изменяются файлы конфигурации проекта.3086Запускается, когда отслеживаемый файл изменяется на диске. Claude Code обнаруживает изменения с помощью наблюдателя файловой системы, а не путём анализа вызовов инструментов, поэтому он запускает хук независимо от того, что изменило файл: вызов инструмента `Edit` или `Write`, скрипт, который Claude запускает через `Bash`, или процесс полностью вне Claude Code. Типичное применение — перезагрузка переменных окружения при изменении файлов конфигурации проекта.

3083 3087 

3084`matcher` для этого события служит двум целям:3088`matcher` для этого события выполняет две роли:

3085 3089 

3086* **Построение списка наблюдения**: значение разделяется на `|` и каждый сегмент регистрируется как буквальное имя файла в рабочей директории, поэтому `".envrc|.env"` наблюдает ровно эти два файла. Шаблоны regex не полезны здесь: значение, такое как `^\.env`, наблюдало бы файл буквально названный `^\.env`.3090* **Построение списка наблюдения**: значение разбивается по `|`, и каждый сегмент регистрируется как буквальное имя файла в рабочем каталоге, поэтому `".envrc|.env"` отслеживает ровно эти два файла. Шаблоны регулярных выражений здесь бесполезны: значение вроде `^\.env` будет отслеживать файл с буквальным именем `^\.env`.

3087* **Фильтрация, какие hooks запускаются**: когда наблюдаемый файл изменяется, то же значение фильтрует, какие группы hook запускаются, используя стандартные [правила matcher](#matcher-patterns) против базового имени измененного файла.3091* **Фильтрация запускаемых хуков**: когда отслеживаемый файл изменяется, то же значение фильтрует, какие группы хуков запускаются, по стандартным [правилам matcher](#matcher-patterns) применительно к базовому имени изменённого файла.

3088 3092 

3089Этот пример нормализует окончания строк в `data.csv` после любого изменения, включая команду `Bash` или внешний скрипт, переписывающий файл:3093Этот пример нормализует окончания строк в `data.csv` после любого изменения, включая перезапись файла командой `Bash` или внешним скриптом:

3090 3094 

3091```json theme={null}3095```json theme={null}

3092{3096{


3106}3110}

3107```3111```

3108 3112 

3109Hook читает абсолютный путь измененного файла из поля `file_path` [JSON ввода](#filechanged-input) из stdin. Его охрана `grep` тестирует то же самое, что `perl` удаляет, CR в конце строки, поэтому запуск после нормализации выходит без касания файла. Более слабая охрана зацикливается навсегда, потому что `perl -i` переписывает файл, даже когда он ничего не заменяет, и Claude Code запускает hook снова после каждой переписи. Сохраните этот скрипт в `/path/to/normalize-line-endings.sh` и сделайте его исполняемым:3113Хук считывает абсолютный путь изменённого файла из поля `file_path` [входных данных JSON](#filechanged-input) в stdin. Его защитная проверка `grep` ищет то же, что удаляет `perl`, — CR в конце строки, поэтому запуск после нормализации завершается, не трогая файл. Менее строгая проверка приводит к бесконечному циклу, потому что `perl -i` перезаписывает файл, даже если ничего не заменяет, а Claude Code снова запускает хук после каждой перезаписи. Сохраните этот скрипт по пути `/path/to/normalize-line-endings.sh` и сделайте его исполняемым:

3110 3114 

3111```bash theme={null}3115```bash theme={null}

3112#!/bin/bash3116#!/bin/bash


3116fi3120fi

3117```3121```

3118 3122 

3119Чтобы подтвердить, что hook работает, попросите Claude добавить строку CRLF в `data.csv` с командой `Bash`. Claude Code запускает hook и файл заканчивается с окончаниями LF.3123Чтобы убедиться, что хук работает, попросите Claude добавить строку с CRLF в `data.csv` с помощью команды `Bash`. Claude Code запускает хук, и в итоге файл получает окончания строк LF.

3120 3124 

3121Чтобы наблюдать файлы, которые вы не можете назвать заранее, верните [`watchPaths`](#filechanged-output) из hook для динамического обновления списка наблюдения. Claude Code запускает наблюдатель только, когда что-то называет файл для наблюдения, поэтому посейте список с группой FileChanged, чей matcher называет по крайней мере один файл, или с hook [SessionStart](#sessionstart-decision-control) или [CwdChanged](#cwdchanged), который возвращает `watchPaths`. Matcher все еще фильтрует, какие группы hook запускаются, когда наблюдаемый файл изменяется, поэтому дайте группе, которая обрабатывает динамические пути, опущенный matcher, который совпадает с каждым наблюдаемым файлом и ничего не добавляет в список наблюдения. Matcher `"*"` также совпадает с каждым файлом, но Claude Code регистрирует его в списке наблюдения, как любое другое значение, как буквальный файл с именем `*`.3125Чтобы отслеживать файлы, которые нельзя назвать заранее, возвращайте [`watchPaths`](#filechanged-output) из хука для динамического обновления списка наблюдения. Claude Code запускает наблюдатель, только когда что-то указывает файл для наблюдения, поэтому заполните список группой FileChanged, matcher которой называет хотя бы один файл, или хуком [SessionStart](#sessionstart-decision-control) либо [CwdChanged](#cwdchanged), возвращающим `watchPaths`. Matcher по-прежнему фильтрует, какие группы хуков запускаются при изменении отслеживаемого файла, поэтому для группы, обрабатывающей динамические пути, опустите matcher — тогда он совпадает с каждым отслеживаемым файлом и ничего не добавляет в список наблюдения. Matcher `"*"` тоже совпадает с каждым файлом, но Claude Code регистрирует его в списке наблюдения как любое другое значение — как буквальный файл с именем `*`.

3122 3126 

3123Hooks FileChanged имеют доступ к [`CLAUDE_ENV_FILE`](#persist-environment-variables). Переменные, записанные в этот файл, сохраняются в последующих командах Bash до следующего события [CwdChanged](#cwdchanged), когда Claude Code их очищает.3127Хуки FileChanged имеют доступ к [`CLAUDE_ENV_FILE`](#persist-environment-variables). Переменные, записанные в этот файл, сохраняются для последующих команд Bash до следующего события [CwdChanged](#cwdchanged), когда Claude Code их очищает.

3124 3128 

3125<h4 id="filechanged-input">3129<h4 id="filechanged-input">

3126 FileChanged input3130 Входные данные FileChanged

3127</h4>3131</h4>

3128 3132 

3129Помимо [общих полей ввода](#common-input-fields), hooks FileChanged получают `file_path` и `event`.3133Помимо [общих входных полей](#common-input-fields), хуки FileChanged получают `file_path` и `event`.

3130 3134 

3131| Поле | Описание |3135| Поле | Описание |

3132| :- | :- |3136| :- | :- |

3133| `file_path` | Абсолютный путь к файлу, который изменился |3137| `file_path` | Абсолютный путь к изменённому файлу |

3134| `event` | Что произошло: `"change"` для измененного файла, `"add"` для созданного файла или `"unlink"` для удаленного файла |3138| `event` | Что произошло: `"change"` для изменённого файла, `"add"` для созданного файла или `"unlink"` для удалённого файла |

3135 3139 

3136```json theme={null}3140```json theme={null}

3137{3141{


3145```3149```

3146 3150 

3147<h4 id="filechanged-output">3151<h4 id="filechanged-output">

3148 FileChanged output3152 Вывод FileChanged

3149</h4>3153</h4>

3150 3154 

3151Помимо [полей вывода JSON](#json-output), доступных всем hooks, hooks FileChanged могут вернуть `watchPaths` для динамического обновления того, какие пути файлов наблюдаются:3155Помимо [полей вывода JSON](#json-output), доступных всем хукам, хуки FileChanged могут возвращать `watchPaths`, чтобы динамически обновлять отслеживаемые пути файлов:

3152 3156 

3153| Поле | Описание |3157| Поле | Описание |

3154| :- | :- |3158| :- | :- |

3155| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список наблюдения. Пути из конфигурации вашего `matcher` всегда наблюдаются. Используйте это, когда ваш скрипт hook обнаруживает дополнительные файлы для наблюдения на основе измененного файла |3159| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список наблюдения. Пути из вашей конфигурации `matcher` отслеживаются всегда. Используйте это, когда ваш скрипт хука обнаруживает дополнительные файлы для наблюдения на основе изменённого файла |

3156 3160 

3157Hooks FileChanged не имеют управления решениями. Они не могут блокировать изменение файла от возникновения.3161Хуки FileChanged не имеют управления решениями. Они не могут предотвратить изменение файла.

3158 3162 

3159Claude Code читает `watchPaths` и `systemMessage` из их вывода JSON и отбрасывает `continue`. В интерактивных сеансах он показывает `systemMessage` как краткое уведомление терминала. Сообщение не достигает потока сообщений SDK.3163Claude Code считывает `watchPaths` и `systemMessage` из их JSON-вывода и отбрасывает `continue`. В интерактивных сессиях он показывает `systemMessage` как краткое уведомление в терминале. Сообщение не попадает в поток сообщений SDK.

3160 3164 

3161<h3 id="worktreecreate">3165<h3 id="worktreecreate">

3162 WorktreeCreate3166 WorktreeCreate

3163</h3>3167</h3>

3164 3168 

3165Запускается, когда создается worktree, будь то из `claude --worktree`, из [подагента, использующего `isolation: "worktree"`](/docs/ru/sub-agents#choose-the-subagent-scope) или для [фонового сеанса](/docs/ru/agent-view#how-file-edits-are-isolated), который Claude Code изолирует в своем собственном worktree. По умолчанию Claude Code создает изолированную рабочую копию с `git worktree`. Настройка hook WorktreeCreate заменяет это поведение git по умолчанию, позволяя вам использовать другую систему контроля версий, такую как SVN, Perforce или Mercurial.3169Запускается при создании worktree — будь то из `claude --worktree`, из [субагента, использующего `isolation: "worktree"`](/docs/ru/sub-agents#choose-the-subagent-scope), или для [фоновой сессии](/docs/ru/agent-view#how-file-edits-are-isolated), которую Claude Code изолирует в собственном worktree. По умолчанию Claude Code создаёт изолированную рабочую копию с помощью `git worktree`. Настройка хука WorktreeCreate заменяет это стандартное поведение Git, позволяя использовать другую систему контроля версий, например SVN, Perforce или Mercurial.

3166 3170 

3167Поскольку hook заменяет поведение по умолчанию полностью, [`.worktreeinclude`](/docs/ru/worktrees#copy-gitignored-files-into-worktrees) не обрабатывается. Если вам нужно скопировать локальные файлы конфигурации, такие как `.env`, в новый worktree, сделайте это внутри вашего скрипта hook.3171Поскольку хук полностью заменяет стандартное поведение, [`.worktreeinclude`](/docs/ru/worktrees#copy-gitignored-files-into-worktrees) не обрабатывается. Если вам нужно скопировать локальные файлы конфигурации, например `.env`, в новый worktree, сделайте это в своём скрипте хука.

3168 3172 

3169Hook должен вернуть путь к созданной директории worktree. Claude Code использует этот путь как рабочую директорию для изолированного сеанса. См. [WorktreeCreate output](#worktreecreate-output) для того, как каждый тип hook возвращает путь.3173Хук должен вернуть путь к созданному каталогу worktree. Claude Code использует этот путь как рабочий каталог для изолированной сессии. О том, как каждый тип хука возвращает путь, см. в разделе [Вывод WorktreeCreate](#worktreecreate-output).

3170 3174 

3171Claude Code действует на успех hook и возвращенный путь и отбрасывает `systemMessage` и `continue`.3175Claude Code учитывает успешность хука и возвращённый путь и отбрасывает `systemMessage` и `continue`.

3172 3176 

3173Этот пример создает рабочую копию SVN и выводит путь для использования Claude Code. Замените URL репозитория на свой собственный:3177Этот пример создаёт рабочую копию SVN и выводит путь для использования Claude Code. Замените URL репозитория на свой:

3174 3178 

3175```json theme={null}3179```json theme={null}

3176{3180{


3189}3193}

3190```3194```

3191 3195 

3192Hook читает `name` worktree из JSON ввода на stdin, проверяет свежую копию в новую директорию и выводит путь директории. `echo` на последней строке — это то, что Claude Code читает как путь worktree. Перенаправьте любой другой вывод в stderr, чтобы он не мешал пути.3196Хук считывает `name` worktree из входных данных JSON в stdin, извлекает свежую копию в новый каталог и выводит путь к каталогу. `echo` в последней строке — это то, что Claude Code считывает как путь к worktree. Перенаправляйте любой другой вывод в stderr, чтобы он не мешал пути.

3193 3197 

3194<h4 id="worktreecreate-input">3198<h4 id="worktreecreate-input">

3195 WorktreeCreate input3199 Входные данные WorktreeCreate

3196</h4>3200</h4>

3197 3201 

3198Помимо [общих полей ввода](#common-input-fields), hooks WorktreeCreate получают поле `name`. Это идентификатор slug для нового worktree, либо указанный пользователем, либо автоматически сгенерированный, например `bold-oak-a3f2`.3202Помимо [общих входных полей](#common-input-fields), хуки WorktreeCreate получают поле `name`. Это идентификатор-слаг для нового worktree, заданный пользователем или сгенерированный автоматически, например `bold-oak-a3f2`.

3199 3203 

3200```json theme={null}3204```json theme={null}

3201{3205{


3208```3212```

3209 3213 

3210<h4 id="worktreecreate-output">3214<h4 id="worktreecreate-output">

3211 WorktreeCreate output3215 Вывод WorktreeCreate

3212</h4>3216</h4>

3213 3217 

3214Hooks WorktreeCreate не используют стандартную модель решения разрешить/заблокировать. Вместо этого успех или сбой hook определяет результат. Hook должен вернуть путь к созданной директории worktree:3218Хуки WorktreeCreate не используют стандартную модель решений allow/block. Вместо этого результат определяется успехом или неудачей хука. Хук должен вернуть путь к созданному каталогу worktree:

3215 3219 

3216* **Hooks команды** (`type: "command"`): выведите путь как последнюю непустую строку stdout. Claude Code удаляет коды ANSI перед чтением этой строки, поэтому баннеры запуска оболочки, выведенные перед вашим `echo`, игнорируются. Перенаправьте любой другой вывод hook в stderr.3220* **Командные хуки** (`type: "command"`): выведите путь последней непустой строкой stdout. Claude Code удаляет escape-последовательности ANSI перед чтением этой строки, поэтому баннеры запуска оболочки, выведенные до вашего `echo`, игнорируются. Перенаправляйте любой другой вывод хука в stderr.

3217* **HTTP hooks** (`type: "http"`): верните `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` в теле ответа.3221* **HTTP-хуки** (`type: "http"`): верните `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` в теле ответа.

3218 3222 

3219Если hook не удается или не создает путь, создание worktree не удается с ошибкой.3223Если хук завершается с ошибкой или не возвращает путь, создание worktree завершается ошибкой.

3220 3224 

3221Claude Code разрешает относительный путь против директории, в которой выполнялся hook, свернув любые сегменты `.` или `..` в нем. Если результирующий путь не является директорией, которую Claude Code может ввести, сеанс выводит ошибку, называющую путь, и выходит с кодом 1.3225Claude Code разрешает относительный путь относительно каталога, в котором выполнялся хук, сворачивая все сегменты `.` или `..` в нём. Если полученный путь не является каталогом, в который Claude Code может перейти, сессия выводит ошибку с указанием пути и завершается с кодом 1.

3222 3226 

3223Claude Code отказывает абсолютному пути, который содержит сегменты `.` или `..`, и любому пути, который проходит через символическую ссылку ниже корня репозитория, потому что символическая ссылка, зафиксированная в репозитории, может перенаправить worktree вне его. Ошибка называет отклоненный компонент. Верните нормализованный путь, который не проходит через символическую ссылку внутри репозитория. До версии 2.1.216 создание worktree следовало пути hook без этого скрининга.3227Claude Code отклоняет абсолютный путь, содержащий сегменты `.` или `..`, а также любой путь, проходящий через символическую ссылку ниже корня репозитория, поскольку символическая ссылка, закоммиченная в репозиторий, могла бы перенаправить worktree за его пределы. В ошибке указывается отклонённый компонент. Возвращайте нормализованный путь, который не проходит через символическую ссылку внутри репозитория. До v2.1.216 создание worktree следовало по пути хука без этой проверки.

3224 3228 

3225<h3 id="worktreeremove">3229<h3 id="worktreeremove">

3226 WorktreeRemove3230 WorktreeRemove

3227</h3>3231</h3>

3228 3232 

3229Запускается, когда worktree удаляется. Это парный hook очистки для [WorktreeCreate](#worktreecreate). Событие срабатывает, когда:3233Выполняется при удалении worktree. Это парный хук очистки для [WorktreeCreate](#worktreecreate). Событие срабатывает, когда:

3230 3234 

3231* вы выходите из сеанса `--worktree` и выбираете его удаление3235* вы выходите из сессии `--worktree` и выбираете её удаление

3232* подагент с `isolation: "worktree"` завершается3236* завершается субагент с `isolation: "worktree"`

3233* вы удаляете [фоновый сеанс](/docs/ru/agent-view#what-deleting-a-session-removes), чей worktree создал hook3237* вы удаляете [фоновую сессию](/docs/ru/agent-view#what-deleting-a-session-removes), worktree которой создал хук

3234 3238 

3235Для git-based worktrees Claude Code обрабатывает очистку автоматически с `git worktree remove`. Если вы настроили hook WorktreeCreate, свяжите его с hook WorktreeRemove для управления очисткой worktrees, которые он создает:3239Для worktree на основе git Claude Code выполняет очистку автоматически с помощью `git worktree remove`. Если вы настроили хук WorktreeCreate, добавьте к нему хук WorktreeRemove, чтобы управлять очисткой создаваемых им worktree:

3236 3240 

3237* **Нет hook WorktreeRemove**: когда вы выходите из сеанса `--worktree` и выбираете удаление, Claude Code возвращается к `git worktree remove --force` на пути, который вернул ваш hook WorktreeCreate, поэтому worktree, который git узнает, удаляется. Worktree, который git не узнает, например тот, который ваш hook создал с системой контроля версий, отличной от git, остается на диске. Для того, что удаление [фонового сеанса](/docs/ru/agent-view#what-deleting-a-session-removes) делает с hook-созданным worktree, см. правила удаления agent view.3241* **Нет хука WorktreeRemove**: когда вы выходите из сессии `--worktree` и выбираете удаление, Claude Code использует как резервный вариант `git worktree remove --force` для пути, который вернул ваш хук WorktreeCreate, поэтому worktree, который распознаёт git, удаляется. Worktree, который git не распознаёт, например созданный вашим хуком с помощью системы контроля версий, отличной от git, остаётся на диске. О том, что происходит с созданным хуком worktree при удалении [фоновой сессии](/docs/ru/agent-view#what-deleting-a-session-removes), см. правила удаления в agent view.

3238* **Hook выходит 0**: worktree считается удаленным. Claude Code ничего больше не читает из hook, поэтому убедитесь, что ваш hook удалил директорию.3242* **Хук завершается с кодом 0**: worktree считается удалённым. Claude Code больше ничего не читает из хука, поэтому убедитесь, что ваш хук удалил каталог.

3239* **Hook выходит не-нулевой**: удаление не удается, если директория в `worktree_path` все еще существует после этого, и worktree остается на диске без fallback git. Hook, который удалил директорию перед выходом не-нулевой, считается удаленным. Для того, как сбой сообщается, см. [WorktreeRemove input](#worktreeremove-input).3243* **Хук завершается с ненулевым кодом**: удаление завершается ошибкой, если каталог по пути `worktree_path` после этого всё ещё существует, и worktree остаётся на диске без резервного варианта через git. Хук, удаливший каталог перед завершением с ненулевым кодом, считается выполнившим удаление. О том, как сообщается об ошибке, см. [Входные данные WorktreeRemove](#worktreeremove-input).

3240 3244 

3241Claude Code никогда не удаляет ветку, принадлежащую hook-созданному worktree, потому что он знает только путь, который вернул ваш hook WorktreeCreate. Если ваш hook WorktreeCreate создает ветку, удалите ее в вашем hook WorktreeRemove.3245Claude Code никогда не удаляет ветку, принадлежащую созданному хуком worktree, поскольку ему известен только путь, который вернул ваш хук WorktreeCreate. Если ваш хук WorktreeCreate создаёт ветку, удаляйте её в хуке WorktreeRemove.

3242 3246 

3243Claude Code отбрасывает [поля вывода JSON](#json-output) hook WorktreeRemove, такие как `systemMessage` и `continue`.3247Claude Code отбрасывает [поля JSON-вывода](#json-output) хука WorktreeRemove, такие как `systemMessage` и `continue`.

3244 3248 

3245Для удаления фонового сеанса Claude Code проверяет сохраненный путь worktree перед запуском hook и отказывает пути, который является символической ссылкой или проходит через одну ниже корня репозитория. Hook запускается для worktree, который все еще содержит файлы, только когда вы подтверждаете удаление в [agent view](/docs/ru/agent-view#what-deleting-a-session-removes); для такого worktree [`claude rm`](/docs/ru/agent-view#manage-sessions-from-the-shell) сохраняет сеанс и worktree вместо этого. До версии 2.1.216 hook запускался на сохраненном пути без этих проверок.3249При удалении фоновой сессии Claude Code проверяет сохранённый путь worktree перед запуском хука и отклоняет путь, который является символической ссылкой или проходит через неё ниже корня репозитория. Для worktree, который всё ещё содержит файлы, хук выполняется только тогда, когда вы подтверждаете удаление в [agent view](/docs/ru/agent-view#what-deleting-a-session-removes); для такого worktree [`claude rm`](/docs/ru/agent-view#manage-sessions-from-the-shell) вместо этого сохраняет сессию и worktree. До v2.1.216 хук выполнялся для сохранённого пути без этих проверок.

3246 3250 

3247Claude Code передает путь, возвращенный WorktreeCreate, как `worktree_path` в ввод hook. Этот пример читает этот путь и удаляет директорию:3251Claude Code передаёт путь, возвращённый WorktreeCreate, как `worktree_path` во входных данных хука. Этот пример считывает этот путь и удаляет каталог:

3248 3252 

3249```json theme={null}3253```json theme={null}

3250{3254{


3264```3268```

3265 3269 

3266<h4 id="worktreeremove-input">3270<h4 id="worktreeremove-input">

3267 WorktreeRemove input3271 Входные данные WorktreeRemove

3268</h4>3272</h4>

3269 3273 

3270Помимо [общих полей ввода](#common-input-fields), hooks WorktreeRemove получают поле `worktree_path`, которое является абсолютным путем к удаляемому worktree.3274Помимо [общих полей входных данных](#common-input-fields), хуки WorktreeRemove получают поле `worktree_path` — абсолютный путь к удаляемому worktree.

3271 3275 

3272```json theme={null}3276```json theme={null}

3273{3277{


3279}3283}

3280```3284```

3281 3285 

3282Код выхода hook WorktreeRemove определяет результат. Когда hook выходит не-нулевой и директория в `worktree_path` все еще существует после этого, удаление не удается:3286Результат определяется кодом выхода хука WorktreeRemove. Когда хук завершается с ненулевым кодом и каталог по пути `worktree_path` после этого всё ещё существует, удаление завершается ошибкой:

3283 3287 

3284* Worktree остается на диске, и команда hook и stderr идут в [debug log](#debug-hooks).3288* Worktree остаётся на диске, а команда хука и stderr записываются в [отладочный лог](#debug-hooks).

3285* Если вы удаляли фоновый сеанс, сеанс остается тоже. Сообщение отказа в [agent view](/docs/ru/agent-view#what-deleting-a-session-removes) сообщает, как закончился hook, такой как `exited 1`, цитирует начало его stderr и говорит, удалит ли удаление сеанса снова директорию в любом случае.3289* Если вы удаляли фоновую сессию, сессия тоже сохраняется. Сообщение об отказе в [agent view](/docs/ru/agent-view#what-deleting-a-session-removes) сообщает, как завершился хук, например `exited 1`, цитирует начало его stderr и указывает, удалит ли повторное удаление сессии каталог в любом случае.

3286 3290 

3287<h3 id="precompact">3291<h3 id="precompact">

3288 PreCompact3292 PreCompact

3289</h3>3293</h3>

3290 3294 

3291Запускается перед тем, как Claude Code собирается запустить операцию compact.3295Выполняется перед тем, как Claude Code собирается выполнить операцию сжатия контекста.

3292 3296 

3293Значение matcher указывает, было ли сжатие запущено вручную или автоматически:3297Значение matcher указывает, было ли сжатие запущено вручную или автоматически:

3294 3298 

3295| Matcher | Когда срабатывает |3299| Matcher | Когда срабатывает |

3296| :- | :- |3300| :- | :- |

3297| `manual` | `/compact` |3301| `manual` | `/compact` |

3298| `auto` | Auto-compact, когда разговор достигает [окна auto-compact](/docs/ru/model-config#set-the-auto-compact-window) |3302| `auto` | Автосжатие, когда диалог достигает [окна автосжатия](/docs/ru/model-config#set-the-auto-compact-window) |

3299 3303 

3300Выйдите с кодом 2 для блокировки сжатия. Для ручного `/compact` сообщение stderr показывается пользователю. Вы также можете заблокировать, возвращая JSON с `"decision": "block"`.3304Завершитесь с кодом 2, чтобы заблокировать сжатие. Для ручного `/compact` сообщение stderr показывается пользователю. Также можно заблокировать, вернув JSON с `"decision": "block"`.

3301 3305 

3302Блокировка автоматического сжатия имеет разные эффекты в зависимости от того, когда оно срабатывает. Если сжатие было запущено проактивно перед пределом контекста, Claude Code пропускает его и разговор продолжается несжатым. Если сжатие было запущено для восстановления от ошибки лимита контекста, уже возвращенной API, основная ошибка выводится и текущий запрос не удается.3306Блокировка автоматического сжатия даёт разный эффект в зависимости от того, когда она срабатывает. Если сжатие было запущено упреждающе до достижения лимита контекста, Claude Code пропускает его, и диалог продолжается без сжатия. Если сжатие было запущено для восстановления после ошибки лимита контекста, уже возвращённой API, исходная ошибка отображается, и текущий запрос завершается неудачей.

3303 3307 

3304Claude Code отбрасывает поля `systemMessage` и `continue` hook PreCompact.3308Claude Code отбрасывает поля `systemMessage` и `continue` хука PreCompact.

3305 3309 

3306<h4 id="precompact-input">3310<h4 id="precompact-input">

3307 PreCompact input3311 Входные данные PreCompact

3308</h4>3312</h4>

3309 3313 

3310Помимо [общих полей ввода](#common-input-fields), hooks PreCompact получают `trigger` и `custom_instructions`. Для `manual`, `custom_instructions` содержит то, что пользователь передает в `/compact` и является `null`, когда они ничего не передают. Для `auto`, `custom_instructions` — это `null`.3314Помимо [общих полей входных данных](#common-input-fields), хуки PreCompact получают `trigger` и `custom_instructions`. Для `manual` поле `custom_instructions` содержит то, что пользователь передаёт в `/compact`, и равно `null`, если он ничего не передаёт. Для `auto` поле `custom_instructions` равно `null`.

3311 3315 

3312```json theme={null}3316```json theme={null}

3313{3317{


3324 PostCompact3328 PostCompact

3325</h3>3329</h3>

3326 3330 

3327Запускается после завершения Claude Code операции compact. Используйте это событие для реакции на новое сжатое состояние, например для логирования сгенерированного резюме или обновления внешнего состояния. Claude Code отбрасывает поля `systemMessage` и `continue` hook PostCompact.3331Выполняется после того, как Claude Code завершает операцию сжатия контекста. Используйте это событие, чтобы реагировать на новое сжатое состояние, например записывать в лог сгенерированную сводку или обновлять внешнее состояние. Claude Code отбрасывает поля `systemMessage` и `continue` хука PostCompact.

3328 3332 

3329Те же значения matcher применяются, как для `PreCompact`:3333Применяются те же значения matcher, что и для `PreCompact`:

3330 3334 

3331| Matcher | Когда срабатывает |3335| Matcher | Когда срабатывает |

3332| :- | :- |3336| :- | :- |

3333| `manual` | После `/compact` |3337| `manual` | После `/compact` |

3334| `auto` | После auto-compact, когда разговор достигает [окна auto-compact](/docs/ru/model-config#set-the-auto-compact-window) |3338| `auto` | После автосжатия, когда диалог достигает [окна автосжатия](/docs/ru/model-config#set-the-auto-compact-window) |

3335 3339 

3336<h4 id="postcompact-input">3340<h4 id="postcompact-input">

3337 PostCompact input3341 Входные данные PostCompact

3338</h4>3342</h4>

3339 3343 

3340Помимо [общих полей ввода](#common-input-fields), hooks PostCompact получают `trigger` и `compact_summary`. Поле `compact_summary` содержит резюме разговора, сгенерированное операцией compact.3344Помимо [общих полей входных данных](#common-input-fields), хуки PostCompact получают `trigger` и `compact_summary`. Поле `compact_summary` содержит сводку диалога, сгенерированную операцией сжатия.

3341 3345 

3342```json theme={null}3346```json theme={null}

3343{3347{


3350}3354}

3351```3355```

3352 3356 

3353Hooks PostCompact не имеют управления решениями. Они не могут влиять на результат сжатия, но могут выполнять последующие задачи.3357Хуки PostCompact не имеют управления решениями. Они не могут повлиять на результат сжатия, но могут выполнять последующие задачи.

3354 3358 

3355<h3 id="premodelswitch">3359<h3 id="premodelswitch">

3356 PreModelSwitch3360 PreModelSwitch

3357</h3>3361</h3>

3358 3362 

3359Запускается перед применением Claude Code переключения модели, которое вы или клиент запросили. Используйте это для блокировки переключения, требования подтверждения или показа того, что переключение будет стоить, перед его возникновением.3363Выполняется перед тем, как Claude Code применяет переключение модели, запрошенное вами или клиентом. Используйте его, чтобы заблокировать переключение, потребовать подтверждения или показать, во что обойдётся переключение, до того как оно произойдёт.

3360 3364 

3361PreModelSwitch требует Claude Code v2.1.251 или позже. Claude Code запускает его для этих запросов:3365PreModelSwitch требует Claude Code v2.1.251 или новее. Claude Code запускает его для следующих запросов:

3362 3366 

3363* `/model <name>` и средство выбора `/model`3367* `/model <name>` и средство выбора `/model`

3364* Средство выбора модели `Option+P` или `Alt+P`3368* Средство выбора модели `Option+P` или `Alt+P`

3365* Параметр Model в `/config`3369* Настройка Model в `/config`

3366* Включение [fast mode](/docs/ru/fast-mode), когда это изменяет модель сеанса3370* Включение [быстрого режима](/docs/ru/fast-mode), если это меняет модель сессии

3367* Запрос `set_model` или изменение модели в запросе `apply_flag_settings` от хоста [Agent SDK](/docs/ru/agent-sdk/typescript#query-object) или [Remote Control](/docs/ru/remote-control)3371* Запрос `set_model` или смена модели в запросе `apply_flag_settings` от хоста [Agent SDK](/docs/ru/agent-sdk/typescript#query-object) или [Remote Control](/docs/ru/remote-control)

3368 3372 

3369Claude Code не запускает hooks PreModelSwitch для переключений, которые он делает сам, такие как [автоматический fallback модели](/docs/ru/model-config#automatic-model-fallback) или восстановление модели при возобновлении сеанса. Эти изменения достигают [PostModelSwitch](#postmodelswitch) только.3373Claude Code не запускает хуки PreModelSwitch для переключений, которые он выполняет самостоятельно, например при [автоматическом переключении на резервную модель](/docs/ru/model-config#automatic-model-fallback) или восстановлении модели при возобновлении сессии. Такие изменения доходят только до [PostModelSwitch](#postmodelswitch).

3370 3374 

3371Claude Code сравнивает matcher против канонического имени модели, на которую сеанс переключается, игнорируя любой суффикс `[1m]`. Псевдоним, такой как `opus`, датированный ID модели и ID, специфичный для провайдера, такой как ID модели Amazon Bedrock, все совпадают с одним каноническим именем, на которое они разрешаются, поэтому `claude-opus-5` охватывает каждое написание Opus 5.3375Claude Code сравнивает matcher с каноническим именем модели, на которую переключается сессия, игнорируя суффикс `[1m]`. Псевдоним, например `opus`, идентификатор модели с датой и идентификатор конкретного провайдера, например идентификатор модели Amazon Bedrock, — все соответствуют одному каноническому имени, в которое они разрешаются, поэтому `claude-opus-5` охватывает любое написание Opus 5.

3372 3376 

3373Когда Claude Code не может определить каноническое имя для цели, например пользовательский ID модели, который знает только ваш [LLM gateway](/docs/ru/llm-gateway), он запускает каждый hook PreModelSwitch независимо от matcher. Hook, который блокирует, должен поэтому проверить `to_model` из его ввода, а не полагаться только на matcher.3377Когда Claude Code не может определить каноническое имя целевой модели, например для пользовательского идентификатора модели, известного только вашему [LLM-шлюзу](/docs/ru/llm-gateway), он запускает каждый хук PreModelSwitch независимо от matcher. Поэтому блокирующий хук должен проверять `to_model` из своих входных данных, а не полагаться только на matcher.

3374 3378 

3375Напишите matcher как точное имя, список, разделенный `|`, такой как `claude-opus-4-6|claude-opus-5`, или регулярное выражение, такое как `.*opus.*`. Этот пример использует matcher точного имени и также проверяет `to_model` из ввода hook, поэтому он отказывает переключению на Opus 4.6, выходя с кодом 2, и позволяет любой другой цели пройти:3379Записывайте matcher как точное имя, список через `|`, например `claude-opus-4-6|claude-opus-5`, или регулярное выражение, например `.*opus.*`. Этот пример использует matcher с точным именем и также проверяет `to_model` из входных данных хука, поэтому он отклоняет переключение на Opus 4.6, завершаясь с кодом 2, и пропускает любую другую целевую модель:

3376 3380 

3377<Tabs>3381<Tabs>

3378 <Tab title="macOS/Linux">3382 <Tab title="macOS/Linux">

3379 Команда проверяет `to_model` с `jq`:3383 Команда проверяет `to_model` с помощью `jq`:

3380 3384 

3381 ```json theme={null}3385 ```json theme={null}

3382 {3386 {


3398 </Tab>3402 </Tab>

3399 3403 

3400 <Tab title="Windows (PowerShell)">3404 <Tab title="Windows (PowerShell)">

3401 Зарегистрируйте hook команды, который запускает скрипт через PowerShell:3405 Зарегистрируйте командный хук, который запускает скрипт через PowerShell:

3402 3406 

3403 ```json theme={null}3407 ```json theme={null}

3404 {3408 {


3438 </Tab>3442 </Tab>

3439</Tabs>3443</Tabs>

3440 3444 

3441Чтобы подтвердить, что hook работает, запустите `/model claude-opus-4-6` из сеанса, запущенного на другой модели. Claude Code сохраняет текущую модель и сообщает, что hook PreModelSwitch заблокировал переключение, с вашим сообщением как причиной.3445Чтобы убедиться, что хук работает, выполните `/model claude-opus-4-6` из сессии, использующей другую модель. Claude Code сохраняет текущую модель и сообщает, что хук PreModelSwitch заблокировал переключение, указывая ваше сообщение в качестве причины.

3442 3446 

3443<h4 id="premodelswitch-input">3447<h4 id="premodelswitch-input">

3444 PreModelSwitch input3448 Входные данные PreModelSwitch

3445</h4>3449</h4>

3446 3450 

3447Помимо [общих полей ввода](#common-input-fields), hooks PreModelSwitch получают поля в этой таблице. Последние пять описывают, что повторная отправка разговора на новую модель стоит, поэтому hook может показать эту цифру перед переключением.3451Помимо [общих полей входных данных](#common-input-fields), хуки PreModelSwitch получают поля из этой таблицы. Последние пять описывают стоимость повторной отправки диалога новой модели, чтобы хук мог показать эту сумму до переключения.

3448 3452 

3449| Поле | Тип | Описание |3453| Поле | Тип | Описание |

3450| :- | :- | :- |3454| :- | :- | :- |

3451| `from_model` | string | ID модели, на которую переключается |3455| `from_model` | string | Идентификатор модели, с которой выполняется переключение |

3452| `to_model` | string | ID модели, на которую переключается. Matcher сравнивает против канонического имени этой модели |3456| `to_model` | string | Идентификатор модели, на которую выполняется переключение. Matcher сравнивается с каноническим именем этой модели |

3453| `requested_model` | string или `null` | Модель, которую запрос назвал: псевдоним, такой как `opus`, полный ID модели или `null`, когда запрос был для модели по умолчанию |3457| `requested_model` | string или `null` | Модель, указанная в запросе: псевдоним, например `opus`, полный идентификатор модели или `null`, если запрос был для модели по умолчанию |

3454| `source` | string | Откуда пришел запрос: `"command"` для `/model <name>`, параметра Model в `/config` или включения fast mode; `"picker"` для средства выбора модели; `"sdk"` для запроса `set_model` или изменения модели в запросе `apply_flag_settings` от хоста Agent SDK или Remote Control |3458| `source` | string | Откуда пришёл запрос: `"command"` для `/model <name>`, настройки Model в `/config` или включения быстрого режима; `"picker"` для средства выбора модели; `"sdk"` для запроса `set_model` или смены модели в запросе `apply_flag_settings` от хоста Agent SDK или Remote Control |

3455| `context_tokens` | number | Токены, которые следующий запрос повторно отправляет как его подсказка: входные, кэш-чтение, кэш-создание и выходные токены последнего ответа в основном разговоре, в сумме. `0` перед первым ответом |3459| `context_tokens` | number | Токены, которые следующий запрос повторно отправляет в качестве промпта: суммарно входные токены, токены чтения кэша, создания кэша и выходные токены последнего ответа в основном диалоге. `0` до первого ответа |

3456| `prompt_cache_warm` | boolean | Вероятно ли, что кэш подсказок текущей модели все еще теплый, означая, что переключение его теряет |3460| `prompt_cache_warm` | boolean | Вероятно ли, что кэш промптов текущей модели всё ещё прогрет, то есть переключение приведёт к его потере |

3457| `cache_ttl` | string | [Время жизни кэша подсказок](/docs/ru/prompt-caching#cache-lifetime), которое Claude Code запрашивает для этого сеанса: `"5m"` или `"1h"` |3461| `cache_ttl` | string | [Время жизни кэша промптов](/docs/ru/prompt-caching#cache-lifetime), запрашиваемое Claude Code для этой сессии: `"5m"` или `"1h"` |

3458| `estimated_cache_write_usd` | number | Предполагаемая стоимость в долларах США записи `context_tokens` в кэш подсказок на `to_model` по ставке `cache_ttl`, исключая следующий ответ. Сервер может не нуждаться в повторном кэшировании всего контекста, поэтому рассматривайте это как оценку |3462| `estimated_cache_write_usd` | number | Оценочная стоимость в долларах США записи `context_tokens` в кэш промптов на `to_model` по тарифу `cache_ttl`, без учёта следующего ответа. Серверу может не потребоваться повторно кэшировать весь контекст, поэтому рассматривайте это как оценку |

3459| `pricing` | string | Как Claude Code оценил `estimated_cache_write_usd`: `"configured"` по собственным ставкам вашей организации, когда она их настроила, `"catalog"` по цене списка или `"default"`, когда `to_model` не имеет известной цены и Claude Code предположил ставку по умолчанию |3463| `pricing` | string | Как Claude Code рассчитал `estimated_cache_write_usd`: `"configured"` — по собственным тарифам вашей организации, если она их настроила, `"catalog"` — по прейскурантной цене, или `"default"`, если для `to_model` нет известной цены и Claude Code использовал тариф по умолчанию |

3460 3464 

3461Этот пример показывает ввод для `/model opus` в сеансе, запущенном на Sonnet 5:3465Этот пример показывает входные данные для `/model opus` в сессии, использующей Sonnet 5:

3462 3466 

3463```json theme={null}3467```json theme={null}

3464{3468{


3482 Управление решениями PreModelSwitch3486 Управление решениями PreModelSwitch

3483</h4>3487</h4>

3484 3488 

3485Hooks `PreModelSwitch` могут отменить переключение, попросить пользователя подтвердить его или позволить ему продолжить. Код выхода 2 или `decision: "block"` верхнего уровня отменяет переключение.3489Хуки `PreModelSwitch` могут отменить переключение, попросить пользователя подтвердить его или разрешить его выполнение. Код выхода 2 или `decision: "block"` верхнего уровня отменяет переключение.

3486 3490 

3487Для более тонкого управления, верните `permissionDecision` и `permissionDecisionReason` в объекте `hookSpecificOutput`, как на [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` принимает `"allow"`, `"deny"` и `"ask"`. Он не принимает `"defer"`, `updatedInput` или `additionalContext`. Таблица ниже описывает оба поля:3491Для более тонкого управления возвращайте `permissionDecision` и `permissionDecisionReason` в объекте `hookSpecificOutput`, как в [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` принимает `"allow"`, `"deny"` и `"ask"`. Он не принимает `"defer"`, `updatedInput` или `additionalContext`. В таблице ниже описаны оба поля:

3488 3492 

3489| Поле | Описание |3493| Поле | Описание |

3490| :- | :- |3494| :- | :- |

3491| `permissionDecision` | `"allow"` продолжает и пропускает [подтверждение, которое Claude Code показывает, пока кэш подсказок теплый](/docs/ru/prompt-caching#switching-models). `"deny"` отменяет переключение. `"ask"` подсказывает пользователю подтвердить его |3495| `permissionDecision` | `"allow"` выполняет переключение и пропускает [подтверждение, которое Claude Code показывает, пока кэш промптов прогрет](/docs/ru/prompt-caching#switching-models). `"deny"` отменяет переключение. `"ask"` запрашивает у пользователя подтверждение |

3492| `permissionDecisionReason` | Для `"deny"`, показано пользователю как причина блокировки переключения или возвращено как ошибка для запроса `set_model`. Для `"ask"`, показано в подсказке подтверждения. Игнорируется для `"allow"` |3496| `permissionDecisionReason` | Для `"deny"` показывается пользователю как причина блокировки переключения или возвращается как ошибка для запроса `set_model`. Для `"ask"` показывается в запросе подтверждения. Игнорируется для `"allow"` |

3493 3497 

3494Только `/model` в интерактивном сеансе может показать подсказку `"ask"`. На каждой другой поверхности, включая неинтерактивный режим с флагом `-p`, `/config` и запросы `set_model`, Claude Code рассматривает `"ask"` как отказ.3498Только `/model` в интерактивной сессии может показать запрос `"ask"`. Во всех остальных интерфейсах, включая неинтерактивный режим с флагом `-p`, `/config` и запросы `set_model`, Claude Code рассматривает `"ask"` как отказ.

3495 3499 

3496Этот пример просит пользователя подтвердить и цитирует количество токенов из `context_tokens`:3500Этот пример просит пользователя подтвердить переключение и приводит количество токенов из `context_tokens`:

3497 3501 

3498```json theme={null}3502```json theme={null}

3499{3503{


3505}3509}

3506```3510```

3507 3511 

3508Когда несколько hooks PreModelSwitch возвращают разные решения, приоритет `deny` > `ask` > `allow`.3512Когда несколько хуков PreModelSwitch возвращают разные решения, приоритет таков: `deny` > `ask` > `allow`.

3509 3513 

3510Claude Code показывает пользователю любой `systemMessage`, который возвращает ваш hook, независимо от решения, поэтому hook отчета о затратах может вернуть `{"systemMessage": "..."}` и выйти 0.3514Claude Code показывает пользователю любое `systemMessage`, которое возвращает ваш хук, независимо от решения, поэтому хук для отчёта о стоимости может вернуть `{"systemMessage": "..."}` и завершиться с кодом 0.

3511 3515 

3512Hook PreModelSwitch, который не отвечает перед своим тайм-аутом, блокирует переключение. На [PreToolUse](#timeouts), в отличие от этого, hook команды с истекшим временем позволяет вызову инструмента продолжить. Тайм-аут по умолчанию для этого события составляет 30 секунд. `PreModelSwitch` запускает только hooks `command`, `http` и `mcp_tool`, поэтому стандарты `prompt` и `agent` не применяются.3516Хук PreModelSwitch, который не отвечает до истечения таймаута, блокирует переключение. В [PreToolUse](#timeouts), напротив, командный хук с истёкшим таймаутом позволяет вызову инструмента продолжиться. Таймаут по умолчанию для этого события — 30 секунд. `PreModelSwitch` запускает только хуки `command`, `http` и `mcp_tool`, поэтому значения по умолчанию для `prompt` и `agent` не применяются.

3513 3517 

3514Hook, который выходит с кодом, отличным от 0 или 2, и не выводит JSON решение, не блокирует: Claude Code показывает его stderr и применяет переключение, как описано в [Other exit codes](#other-exit-codes).3518Хук, который завершается с кодом, отличным от 0 или 2, и не выводит JSON-решения, не блокирует переключение: Claude Code показывает его stderr и применяет переключение, как описано в разделе [Другие коды выхода](#other-exit-codes).

3515 3519 

3516<h3 id="postmodelswitch">3520<h3 id="postmodelswitch">

3517 PostModelSwitch3521 PostModelSwitch

3518</h3>3522</h3>

3519 3523 

3520Запускается после изменения модели сеанса. Используйте это для предоставления руководства, специфичного для модели, без редактирования каждого CLAUDE.md, например организационной инструкции, которая применяется на определенных моделях.3524Выполняется после смены модели сессии. Используйте его, чтобы давать Claude указания, специфичные для модели, без редактирования каждого CLAUDE.md, например инструкцию для всей организации, которая применяется к определённым моделям.

3521 3525 

3522PostModelSwitch требует Claude Code v2.1.251 или позже. Он не может блокировать, потому что модель уже изменилась. Claude Code запускает hooks PostModelSwitch после любого из этих изменений:3526PostModelSwitch требует Claude Code v2.1.251 или новее. Он не может блокировать, поскольку модель уже сменилась. Claude Code запускает хуки PostModelSwitch после любого из следующих изменений:

3523 3527 

3524* Переключение, которое вы или клиент запросили3528* Переключение, запрошенное вами или клиентом

3525* [Автоматический fallback модели](/docs/ru/model-config#automatic-model-fallback), который изменяет модель сеанса3529* [Автоматическое переключение на резервную модель](/docs/ru/model-config#automatic-model-fallback), которое меняет модель сессии

3526* Параметр, такой как [`opusplan`](/docs/ru/model-config#opusplan-model-setting), входящий или выходящий из режима плана3530* Настройка, например [`opusplan`](/docs/ru/model-config#opusplan-model-setting), при входе в режим планирования или выходе из него

3527* Claude Code восстанавливает модель при возобновлении сеанса3531* Восстановление модели Claude Code при возобновлении сессии

3528 3532 

3529Claude Code не запускает hooks PostModelSwitch, когда модель из [цепочки fallback модели](/docs/ru/model-config#fallback-model-chains) служит ходу, потому что эта замена длится один ход и оставляет модель сеанса неизменной.3533Claude Code не запускает хуки PostModelSwitch, когда ход обслуживает модель из [цепочки резервных моделей](/docs/ru/model-config#fallback-model-chains), поскольку такая замена длится один ход и оставляет модель сессии неизменной.

3530 3534 

3531Matcher следует тем же правилам, что и [PreModelSwitch](#premodelswitch): Claude Code сравнивает его против канонического имени модели, на которую переключился сеанс.3535Matcher подчиняется тем же правилам, что и в [PreModelSwitch](#premodelswitch): Claude Code сравнивает его с каноническим именем модели, на которую переключилась сессия.

3532 3536 

3533Этот пример добавляет руководство, когда модель сеанса изменяется на любую модель Opus:3537Этот пример добавляет указания всякий раз, когда модель сессии меняется на любую модель Opus:

3534 3538 

3535```json theme={null}3539```json theme={null}

3536{3540{


3550}3554}

3551```3555```

3552 3556 

3553Чтобы подтвердить, что hook работает, переключитесь на модель Opus из сеанса, запущенного на другой модели, например запустите `/model opus` из сеанса Sonnet, затем попросите Claude, какое руководство у него есть о текущей модели.3557Чтобы убедиться, что хук работает, переключитесь на модель Opus из сессии, использующей другую модель, например выполните `/model opus` из сессии Sonnet, а затем спросите Claude, какие у него есть указания относительно текущей модели.

3554 3558 

3555<h4 id="postmodelswitch-input">3559<h4 id="postmodelswitch-input">

3556 PostModelSwitch input3560 Входные данные PostModelSwitch

3557</h4>3561</h4>

3558 3562 

3559Hooks PostModelSwitch получают те же поля, что и [PreModelSwitch](#premodelswitch-input), с `hook_event_name`, установленным на `"PostModelSwitch"`, и двумя дополнительными значениями `source`: `"auto"` для автоматического fallback или другого изменения, которое Claude Code сделал сам, и `"resume"` для модели, восстановленной при возобновлении сеанса.3563Хуки PostModelSwitch получают те же поля, что и [PreModelSwitch](#premodelswitch-input), при этом `hook_event_name` имеет значение `"PostModelSwitch"`, а для `source` есть ещё два значения: `"auto"` для автоматического переключения на резервную модель или другого изменения, которое Claude Code выполнил самостоятельно, и `"resume"` для модели, восстановленной при возобновлении сессии.

3560 3564 

3561`requested_model` — это `null`, когда `source` — это `"auto"`. Когда `source` — это `"resume"`, это сохраненный параметр модели, который Claude Code восстановил.3565`requested_model` равно `null`, когда `source` равно `"auto"`. Когда `source` равно `"resume"`, это сохранённая настройка модели, которую восстановил Claude Code.

3562 3566 

3563<h4 id="postmodelswitch-decision-control">3567<h4 id="postmodelswitch-decision-control">

3564 Управление решениями PostModelSwitch3568 Управление решениями PostModelSwitch

3565</h4>3569</h4>

3566 3570 

3567Claude Code берет ваш [простой текст stdout](#exit-code-0) hook при выходе 0 или `additionalContext` из вывода JSON и доставляет его Claude со следующим запросом после переключения. Помимо [полей вывода JSON](#json-output), доступных всем hooks, вы можете вернуть:3571Claude Code берёт [простой текстовый stdout](#exit-code-0) вашего хука при коде выхода 0 или `additionalContext` из JSON-вывода и передаёт его Claude со следующим запросом после переключения. Помимо [полей JSON-вывода](#json-output), доступных всем хукам, вы можете вернуть:

3568 3572 

3569| Поле | Описание |3573| Поле | Описание |

3570| :- | :- |3574| :- | :- |

3571| `additionalContext` | Строка, добавленная в контекст Claude со следующим запросом. См. [Add context for Claude](#add-context-for-claude) |3575| `additionalContext` | Строка, добавляемая в контекст Claude со следующим запросом. См. [Добавление контекста для Claude](#add-context-for-claude) |

3572 3576 

3573Если hook не завершится в течение пяти секунд после отправки следующей подсказки, Claude Code отправляет этот запрос без вывода и прикрепляет его к следующему запросу вместо этого. Если модель изменяется несколько раз перед следующим запросом, Claude Code доставляет только вывод для переключения последней цели модели.3577Если хук не завершился в течение пяти секунд после отправки следующего промпта, Claude Code отправляет этот запрос без вывода и вместо этого прикрепляет его к последующему запросу. Если модель меняется несколько раз до следующего запроса, Claude Code передаёт только вывод для целевой модели последнего переключения.

3574 3578 

3575<h3 id="sessionend">3579<h3 id="sessionend">

3576 SessionEnd3580 SessionEnd

3577</h3>3581</h3>

3578 3582 

3579Запускается, когда сеанс Claude Code заканчивается. Полезно для задач очистки, логирования статистики сеанса или сохранения состояния сеанса. Поддерживает matchers для фильтрации по причине выхода.3583Выполняется при завершении сессии Claude Code. Полезен для задач очистки, записи в лог статистики

3584сессии или сохранения состояния сессии. Поддерживает matcher для фильтрации по причине выхода.

3580 3585 

3581Поле `reason` в ввод hook указывает, почему сеанс закончился:3586Поле `reason` во входных данных хука указывает, почему завершилась сессия:

3582 3587 

3583| Причина | Описание |3588| Причина | Описание |

3584| :- | :- |3589| :- | :- |

3585| `clear` | Сеанс очищен с помощью команды `/clear` |3590| `clear` | Сессия очищена командой `/clear` |

3586| `resume` | Сеанс переключен через интерактивный `/resume` |3591| `resume` | Сессия переключена через интерактивную `/resume` |

3587| `logout` | Пользователь вышел |3592| `logout` | Пользователь вышел из системы |

3588| `prompt_input_exit` | Пользователь вышел, пока ввод подсказки был видимым |3593| `prompt_input_exit` | Пользователь вышел, когда поле ввода промпта было видимо |

3589| `other` | Другие причины выхода |3594| `other` | Другие причины выхода |

3590| `bypass_permissions_disabled` | Удалено в v2.1.234; Claude Code не отправляет его. Удалите его из ваших matchers `SessionEnd` |3595| `bypass_permissions_disabled` | Удалено в v2.1.234; Claude Code его не отправляет. Уберите его из matcher ваших `SessionEnd` |

3591 3596 

3592<h4 id="sessionend-input">3597<h4 id="sessionend-input">

3593 SessionEnd input3598 Входные данные SessionEnd

3594</h4>3599</h4>

3595 3600 

3596Помимо [общих полей ввода](#common-input-fields), hooks SessionEnd получают поле `reason`, указывающее, почему сеанс закончился. См. [таблицу причин](#sessionend) выше для всех значений.3601Помимо [общих полей входных данных](#common-input-fields), хуки SessionEnd получают поле `reason`, указывающее, почему завершилась сессия. Все значения см. в [таблице причин](#sessionend) выше.

3597 3602 

3598```json theme={null}3603```json theme={null}

3599{3604{


3605}3610}

3606```3611```

3607 3612 

3608Hooks SessionEnd не имеют управления решениями. Они не могут блокировать завершение сеанса, но могут выполнять задачи очистки. Claude Code отбрасывает их [поля вывода JSON](#json-output), такие как `systemMessage`.3613Хуки SessionEnd не имеют управления решениями. Они не могут заблокировать завершение сессии, но могут выполнять задачи очистки. Claude Code отбрасывает их [поля JSON-вывода](#json-output), такие как `systemMessage`.

3609 3614 

3610Hooks SessionEnd имеют тайм-аут по умолчанию 1.5 секунды. Он применяется, когда вы выходите, запускаете `/clear` или переключаете сеансы с интерактивным `/resume`. Вы можете дать hook больше времени двумя способами:3615Хуки SessionEnd имеют таймаут по умолчанию 1,5 секунды. Он применяется, когда вы выходите, выполняете `/clear` или переключаете сессии с помощью интерактивной `/resume`. Дать хуку больше времени можно двумя способами:

3611 3616 

3612* **Per-hook `timeout`**: установите `timeout` в конфигурации этого hook. Общий бюджет автоматически повышается, чтобы совпадать с наивысшим `timeout` per-hook в ваших файлах параметров, до 60 секунд. Если вы повышаете бюджет таким образом, hook без своего собственного `timeout` все еще сохраняет стандарт. Тайм-ауты, установленные на hooks, предоставленные plugin, не повышают бюджет.3617* **`timeout` для отдельного хука**: задайте `timeout` в конфигурации этого хука. Общий лимит времени автоматически повышается до наибольшего значения `timeout` среди хуков в ваших файлах настроек, но не более 60 секунд. Если вы повышаете лимит таким образом, хук без собственного `timeout` по-прежнему сохраняет значение по умолчанию. Таймауты, заданные для хуков из плагинов, не повышают лимит.

3613* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: установите эту переменную окружения в миллисекундах для явного переопределения бюджета. Значение, которое вы установили, также становится тайм-аутом для каждого hook без своего собственного `timeout`.3618* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: задайте эту переменную окружения в миллисекундах, чтобы явно переопределить лимит. Заданное значение также становится таймаутом для каждого хука без собственного `timeout`.

3614 3619 

3615Этот пример устанавливает бюджет на 5 секунд:3620Этот пример устанавливает лимит в 5 секунд:

3616 3621 

3617```bash theme={null}3622```bash theme={null}

3618CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3623CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

3619```3624```

3620 3625 

3621До версии 2.1.268 `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` повышал только общий бюджет, и hook без своего собственного `timeout` все еще отменялся через 1.5 секунды.3626До v2.1.268 `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` повышала только общий лимит, а хук без собственного `timeout` всё равно отменялся через 1,5 секунды.

3622 3627 

3623<h3 id="elicitation">3628<h3 id="elicitation">

3624 Elicitation3629 Elicitation

3625</h3>3630</h3>

3626 3631 

3627Запускается, когда сервер MCP запрашивает ввод пользователя во время задачи. По умолчанию Claude Code показывает интерактивный диалог для ответа пользователя. Hooks могут перехватить этот запрос и ответить программно, полностью пропустив диалог.3632Выполняется, когда MCP-сервер запрашивает ввод пользователя во время выполнения задачи. По умолчанию Claude Code показывает интерактивное диалоговое окно для ответа пользователя. Хуки могут перехватить этот запрос и ответить программно, полностью пропустив диалоговое окно.

3628 3633 

3629Поле matcher совпадает с именем сервера MCP.3634Поле matcher сопоставляется с именем MCP-сервера.

3630 3635 

3631<h4 id="elicitation-input">3636<h4 id="elicitation-input">

3632 Elicitation input3637 Входные данные Elicitation

3633</h4>3638</h4>

3634 3639 

3635Помимо [общих полей ввода](#common-input-fields), hooks Elicitation получают `mcp_server_name`, `message` и опциональные поля `mode`, `url`, `elicitation_id` и `requested_schema`.3640Помимо [общих полей входных данных](#common-input-fields), хуки Elicitation получают поля `mcp_server_name`, `message` и необязательные поля `mode`, `url`, `elicitation_id` и `requested_schema`.

3636 3641 

3637Для режима формы elicitation, наиболее распространенный случай:3642Для elicitation в режиме формы, наиболее распространённого случая:

3638 3643 

3639```json theme={null}3644```json theme={null}

3640{3645{


3654}3659}

3655```3660```

3656 3661 

3657Для URL-режима elicitation, используемого для аутентификации на основе браузера:3662Для elicitation в режиме URL, используемого для аутентификации через браузер:

3658 3663 

3659```json theme={null}3664```json theme={null}

3660{3665{


3670```3675```

3671 3676 

3672<h4 id="elicitation-output">3677<h4 id="elicitation-output">

3673 Elicitation output3678 Вывод Elicitation

3674</h4>3679</h4>

3675 3680 

3676Чтобы ответить программно без показа диалога, верните объект JSON с `hookSpecificOutput`:3681Чтобы ответить программно без показа диалогового окна, верните JSON-объект с `hookSpecificOutput`:

3677 3682 

3678```json theme={null}3683```json theme={null}

3679{3684{


3689 3694 

3690| Поле | Значения | Описание |3695| Поле | Значения | Описание |

3691| :- | :- | :- |3696| :- | :- | :- |

3692| `action` | `accept`, `decline`, `cancel` | Принять ли, отклонить или отменить запрос |3697| `action` | `accept`, `decline`, `cancel` | Принять, отклонить или отменить запрос |

3693| `content` | object | Значения полей формы для отправки. Используется только, когда `action` — это `accept` |3698| `content` | object | Значения полей формы для отправки. Используется только когда `action` равно `accept` |

3694 3699 

3695Код выхода 2 отклоняет elicitation. Claude Code не показывает ваше сообщение stderr нигде.3700Код выхода 2 отклоняет elicitation. Claude Code нигде не показывает ваше сообщение stderr.

3696 3701 

3697Claude Code действует на `hookSpecificOutput` из вывода JSON hook Elicitation и отбрасывает `systemMessage` и `continue`.3702Claude Code использует `hookSpecificOutput` из JSON-вывода хука Elicitation и отбрасывает `systemMessage` и `continue`.

3698 3703 

3699<h3 id="elicitationresult">3704<h3 id="elicitationresult">

3700 ElicitationResult3705 ElicitationResult

3701</h3>3706</h3>

3702 3707 

3703Запускается после того, как пользователь отвечает на запрос MCP elicitation. Hooks могут наблюдать, изменять или блокировать ответ перед его отправкой обратно на сервер MCP.3708Выполняется после того, как пользователь отвечает на elicitation MCP. Хуки могут наблюдать, изменять или блокировать ответ до его отправки обратно MCP-серверу.

3704 3709 

3705Поле matcher совпадает с именем сервера MCP.3710Поле matcher сопоставляется с именем MCP-сервера.

3706 3711 

3707<h4 id="elicitationresult-input">3712<h4 id="elicitationresult-input">

3708 ElicitationResult input3713 Входные данные ElicitationResult

3709</h4>3714</h4>

3710 3715 

3711Помимо [общих полей ввода](#common-input-fields), hooks ElicitationResult получают `mcp_server_name`, `action` и опциональные поля `mode`, `elicitation_id` и `content`.3716Помимо [общих полей входных данных](#common-input-fields), хуки ElicitationResult получают поля `mcp_server_name`, `action` и необязательные поля `mode`, `elicitation_id` и `content`.

3712 3717 

3713```json theme={null}3718```json theme={null}

3714{3719{


3725```3730```

3726 3731 

3727<h4 id="elicitationresult-output">3732<h4 id="elicitationresult-output">

3728 ElicitationResult output3733 Вывод ElicitationResult

3729</h4>3734</h4>

3730 3735 

3731Чтобы переопределить ответ пользователя, верните объект JSON с `hookSpecificOutput`:3736Чтобы переопределить ответ пользователя, верните JSON-объект с `hookSpecificOutput`:

3732 3737 

3733```json theme={null}3738```json theme={null}

3734{3739{


3743| Поле | Значения | Описание |3748| Поле | Значения | Описание |

3744| :- | :- | :- |3749| :- | :- | :- |

3745| `action` | `accept`, `decline`, `cancel` | Переопределяет действие пользователя |3750| `action` | `accept`, `decline`, `cancel` | Переопределяет действие пользователя |

3746| `content` | object | Переопределяет значения полей формы. Имеет смысл только, когда `action` — это `accept` |3751| `content` | object | Переопределяет значения полей формы. Имеет смысл только когда `action` равно `accept` |

3747 3752 

3748Код выхода 2 блокирует ответ, изменяя эффективное действие на `decline`. Claude Code не показывает ваше сообщение stderr нигде.3753Код выхода 2 блокирует ответ, меняя фактическое действие на `decline`. Claude Code нигде не показывает ваше сообщение stderr.

3749 3754 

3750Claude Code действует на `hookSpecificOutput` из вывода JSON hook ElicitationResult и отбрасывает `systemMessage` и `continue`.3755Claude Code использует `hookSpecificOutput` из JSON-вывода хука ElicitationResult и отбрасывает `systemMessage` и `continue`.

3751 3756 

3752<h2 id="prompt-based-hooks">3757<h2 id="prompt-based-hooks">

3753 Prompt-based hooks3758 Prompt-based hooks

keybindings.md +27 −1

Details

68| `EffortSlider` | Ползунок усилий, открытый с помощью `/effort` |68| `EffortSlider` | Ползунок усилий, открытый с помощью `/effort` |

69| `Select` | Универсальные компоненты выбора/списка |69| `Select` | Универсальные компоненты выбора/списка |

70| `Plugin` | Диалог плагина (обзор, обнаружение, управление) |70| `Plugin` | Диалог плагина (обзор, обнаружение, управление) |

71| `Pane` | Панель, отрисованная [модом](/docs/ru/plugins/mods/interface#know-which-keys-your-mod-can-receive), находится в фокусе клавиатуры |

72| `PaneField` | Поле ввода или список выбора на панели мода находится в фокусе клавиатуры |

71| `Agents` | [Представление агента](/docs/ru/agent-view) (`claude agents`) |73| `Agents` | [Представление агента](/docs/ru/agent-view) (`claude agents`) |

72| `Scroll` | Прокрутка разговора и выделение текста в полноэкранном режиме |74| `Scroll` | Прокрутка разговора и выделение текста в полноэкранном режиме |

73 75 


596 598 

597Это также работает для привязок аккордов. Отмена привязки каждого аккорда, который использует префикс, освобождает этот префикс для использования в качестве привязки с одной клавишей. Аккорд в любом активном контексте сохраняет свой префикс зарезервированным, поэтому вы должны отменить привязку каждого аккорда в контексте, который его определяет.599Это также работает для привязок аккордов. Отмена привязки каждого аккорда, который использует префикс, освобождает этот префикс для использования в качестве привязки с одной клавишей. Аккорд в любом активном контексте сохраняет свой префикс зарезервированным, поэтому вы должны отменить привязку каждого аккорда в контексте, который его определяет.

598 600 

599Claude Code привязывает эти аккорды по умолчанию на префиксе `ctrl+x`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s` и `ctrl+x tab` в `Chat`, `ctrl+x ctrl+b` в `Task` и `ctrl+x b` в `DiffPanel`. Аккорд `ctrl+x enter` требует версии v2.1.247 или более поздней, `ctrl+x b`, `ctrl+x ctrl+a` и `ctrl+x tab` требуют версии v2.1.260 или более поздней, и `ctrl+x ctrl+s` требует версии v2.1.275 или более поздней.601Claude Code привязывает следующие аккорды по умолчанию на префиксе `ctrl+x`, по контекстам:

602 

603* `Chat`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s` и `ctrl+x tab`

604* `Task`: `ctrl+x ctrl+b`

605* `DiffPanel`: `ctrl+x b`

606* `Pane`: `ctrl+x left`, `ctrl+x right`, `ctrl+x up`, `ctrl+x down` и `ctrl+x x`

607* `PaneField`: `ctrl+x x`

608 

609Аккорд `ctrl+x enter` требует версии v2.1.247 или более поздней, `ctrl+x b`, `ctrl+x ctrl+a` и `ctrl+x tab` требуют версии v2.1.260 или более поздней, и `ctrl+x ctrl+s` требует версии v2.1.275 или более поздней.

600 610 

601Чтобы вернуть `ctrl+x` как привязку с одной клавишей, отмените привязку всех из них:611Чтобы вернуть `ctrl+x` как привязку с одной клавишей, отмените привязку всех из них:

602 612 


615 "ctrl+x b": null625 "ctrl+x b": null

616 }626 }

617 },627 },

628 {

629 "context": "Pane",

630 "bindings": {

631 "ctrl+x left": null,

632 "ctrl+x right": null,

633 "ctrl+x up": null,

634 "ctrl+x down": null,

635 "ctrl+x x": null

636 }

637 },

638 {

639 "context": "PaneField",

640 "bindings": {

641 "ctrl+x x": null

642 }

643 },

618 {644 {

619 "context": "Chat",645 "context": "Chat",

620 "bindings": {646 "bindings": {

Details

245| [Управление контекстом](https://platform.claude.com/docs/en/build-with-claude/context-editing) | Бета-заголовок управления контекстом связан с полем тела `context_management` | Ошибка `400` с сообщением `Extra inputs are not permitted`. Часто встречается, когда шлюз принимает запросы в формате Anthropic, но пересылает их на Amazon Bedrock | Пересылайте оба, или [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |245| [Управление контекстом](https://platform.claude.com/docs/en/build-with-claude/context-editing) | Бета-заголовок управления контекстом связан с полем тела `context_management` | Ошибка `400` с сообщением `Extra inputs are not permitted`. Часто встречается, когда шлюз принимает запросы в формате Anthropic, но пересылает их на Amazon Bedrock | Пересылайте оба, или [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

246| [Расширенный контекст](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) и [чередующееся мышление](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Только бета-заголовки, нет поля тела | Молча недоступно, когда заголовок удален; вышестоящий сервер никогда не видит запрос возможности | Пересылайте `anthropic-beta` без изменений |246| [Расширенный контекст](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) и [чередующееся мышление](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Только бета-заголовки, нет поля тела | Молча недоступно, когда заголовок удален; вышестоящий сервер никогда не видит запрос возможности | Пересылайте `anthropic-beta` без изменений |

247| Бета [поля инструментов](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | Связанные с инструментами бета-заголовки связаны с полями схемы инструментов, такими как `strict` и `defer_loading` | Ошибка `400`, указывающая на неизвестное поле схемы инструмента, когда тело проходит без своего заголовка | Пересылайте оба, или [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |247| Бета [поля инструментов](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | Связанные с инструментами бета-заголовки связаны с полями схемы инструментов, такими как `strict` и `defer_loading` | Ошибка `400`, указывающая на неизвестное поле схемы инструмента, когда тело проходит без своего заголовка | Пересылайте оба, или [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

248| [Усилие](https://platform.claude.com/docs/en/build-with-claude/effort) и [структурированные выходные данные](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | Поле тела `output_config` содержит настройки усилия, формата структурированного вывода и бюджета задачи; каждая связана с собственным бета-заголовком | Ошибка `400`, указывающая на `output_config`, часто `Extra inputs are not permitted`, на вышестоящих серверах Amazon Bedrock и Google Cloud's Agent Platform | Пересылайте поле и его заголовки вместе или попросите разработчиков установить [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), что удаляет настройки формата и бюджета задачи, но не усилия |248| [Усилие](https://platform.claude.com/docs/en/build-with-claude/effort) и [структурированные выходные данные](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | Поле тела `output_config` содержит настройки усилия, формата структурированного вывода и бюджета задачи; каждая связана с собственным бета-заголовком | Ошибка `400`, указывающая на `output_config`, часто `Extra inputs are not permitted`, на вышестоящих серверах Amazon Bedrock и Google Cloud's Agent Platform | Пересылайте поле и его заголовки вместе или попросите разработчиков установить [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), что удаляет настройки формата и бюджета задачи, но не усилия. Чтобы удалить только формат, они могут вместо этого установить [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/ru/env-vars), для чего требуется v2.1.288 или более поздняя версия |

249| [Кэширование подсказок](/docs/ru/prompt-caching) | Нет бета-связи. Claude Code прикрепляет маркеры `cache_control` к блокам `system` и записям `messages`, включая записи `role: "system"`, добавленные в середину разговора | Нет ошибки: разговор выставляется как некэшированный ввод на каждом ходу, видимый как высокие `input_tokens` с небольшой или отсутствующей активностью кэша в `usage` | Пересылайте `cache_control` без изменений везде, где он появляется, и не преобразуйте блочную форму `system` или содержимое сообщения в простые строки |249| [Кэширование подсказок](/docs/ru/prompt-caching) | Нет бета-связи. Claude Code прикрепляет маркеры `cache_control` к блокам `system` и записям `messages`, включая записи `role: "system"`, добавленные в середину разговора | Нет ошибки: разговор выставляется как некэшированный ввод на каждом ходу, видимый как высокие `input_tokens` с небольшой или отсутствующей активностью кэша в `usage` | Пересылайте `cache_control` без изменений везде, где он появляется, и не преобразуйте блочную форму `system` или содержимое сообщения в простые строки |

250| [Подсчет токенов](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Нет бета-связи; использует конечную точку `count_tokens` | Нет ошибки: Claude Code возвращается к оценке на основе символов, поэтому `/context` показывает приблизительные подсчеты | Предоставьте конечную точку для точного подсчета токенов |250| [Подсчет токенов](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Нет бета-связи; использует конечную точку `count_tokens` | Нет ошибки: Claude Code возвращается к оценке на основе символов, поэтому `/context` показывает приблизительные подсчеты | Предоставьте конечную точку для точного подсчета токенов |

251 251 


362Обнаруженный ID не получает свою собственную строку, когда он совпадает со строкой, уже находящейся в средстве выбора:362Обнаруженный ID не получает свою собственную строку, когда он совпадает со строкой, уже находящейся в средстве выбора:

363 363 

364* Одинаковый ID: обнаруженный ID точно совпадает с ID существующей строки, или оба ID являются написаниями одной и той же версии [Fable](/docs/ru/model-config#work-with-fable).364* Одинаковый ID: обнаруженный ID точно совпадает с ID существующей строки, или оба ID являются написаниями одной и той же версии [Fable](/docs/ru/model-config#work-with-fable).

365* Та же модель, что и встроенный псевдоним: когда обнаруженный явный ID называет модель, на которую встроенный псевдоним в настоящее время разрешается, средство выбора показывает только строку псевдонима. Например, пока `sonnet` разрешается в `claude-sonnet-5-5`, обнаруженный `claude-sonnet-5-5` объединяется в строку `sonnet`, и обнаруженный `claude-sonnet-5` все еще получает свою собственную строку. До версии v2.1.197 Claude Code не объединял эти ID во встроенные строки, поэтому ID, на который разрешался псевдоним, также получал свою собственную строку "From gateway".365* Та же модель, что и встроенный псевдоним: когда обнаруженный явный ID называет модель, в которую встроенный псевдоним в настоящее время разрешается, средство выбора показывает только строку псевдонима. Например, пока `sonnet` разрешается в `claude-sonnet-5-5`, обнаруженный `claude-sonnet-5-5` объединяется в строку `sonnet`, а обнаруженный `claude-sonnet-5` всё ещё получает свою собственную строку.

366 366 

367Результаты кешируются в `~/.claude/cache/gateway-models.json` или `%USERPROFILE%\.claude\cache\gateway-models.json` на Windows и обновляются при каждом запуске. Если вы установили [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars), кеш находится в этом каталоге вместо этого. Если запрос не выполняется или gateway не реализует `/v1/models`, средство выбора возвращается к кешированному списку из предыдущего запуска или к встроенному списку моделей. Если ваш gateway обслуживает модели Claude под псевдонимами, которые не совпадают с фильтром обнаружения, разработчики могут добавить эти псевдонимы вручную с помощью переменных [конфигурации модели](/docs/ru/model-config).367Результаты кешируются в `~/.claude/cache/gateway-models.json` или `%USERPROFILE%\.claude\cache\gateway-models.json` на Windows и обновляются при каждом запуске. Если вы установили [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars), кеш находится в этом каталоге вместо этого. Если запрос не выполняется или gateway не реализует `/v1/models`, средство выбора возвращается к кешированному списку из предыдущего запуска или к встроенному списку моделей. Если ваш gateway обслуживает модели Claude под псевдонимами, которые не совпадают с фильтром обнаружения, разработчики могут добавить эти псевдонимы вручную с помощью переменных [конфигурации модели](/docs/ru/model-config).

368 368 

mcp.md +13 −13

Details

371 371 

372В v2 Claude Code также:372В v2 Claude Code также:

373 373 

374* Спрашивает HTTP-серверы, поддерживают ли они более новую ревизию, и использует её с теми, которые поддерживают. Он также спрашивает серверы коннекторов claude.ai в сессиях, где получает флаги функций. Чтобы он спрашивал stdio-серверы или серверы коннекторов в каждой сессии, установите [`MCP_PROTOCOL_NEGOTIATION`](/docs/ru/env-vars) в `auto`. Ко всем остальным серверам он подключается так же, как v1.374* Спрашивает HTTP-серверы, поддерживают ли они более новую ревизию, и использует её с теми, которые поддерживают. В сессиях, где он получает флаги функций, он также спрашивает серверы коннекторов claude.ai, а в Claude Code v2.1.285 или новее — stdio-серверы, по мере того как Anthropic развёртывает это изменение. Чтобы он спрашивал серверы коннекторов и stdio-серверы в каждой сессии, установите [`MCP_PROTOCOL_NEGOTIATION`](/docs/ru/env-vars) в `auto`. Ко всем остальным серверам он подключается так же, как v1.

375* Получает уведомления `list_changed` от серверов на более новой ревизии через [поток, который держит открытым](#notification-streams-on-the-v2-runtime).375* Получает уведомления `list_changed` от серверов на более новой ревизии через [поток, который держит открытым](#notification-streams-on-the-v2-runtime).

376* Не регистрирует сервер [канала](#push-messages-with-channels), который подключается на более новой ревизии, потому что эта ревизия не может передавать сообщения канала.376* Не регистрирует сервер [канала](#push-messages-with-channels), который подключается на более новой ревизии, потому что эта ревизия не может передавать сообщения канала.

377* Прерывает [вход через MCP OAuth](#authenticate-with-remote-mcp-servers), если ответ авторизации указывает неожиданного издателя.377* Прерывает [вход через MCP OAuth](#authenticate-with-remote-mcp-servers), если ответ авторизации указывает неожиданного издателя.


456 456 

457MCP-сервер также может отправлять сообщения прямо в вашу сессию, чтобы Claude мог реагировать на внешние события, такие как результаты CI, оповещения мониторинга или сообщения чата. Чтобы включить это, ваш сервер объявляет возможность `claude/channel`, а вы включаете его флагом `--channels` при запуске. См. [Каналы](/docs/ru/channels), чтобы использовать официально поддерживаемый канал, или [Справочник по каналам](/docs/ru/channels-reference), чтобы создать собственный.457MCP-сервер также может отправлять сообщения прямо в вашу сессию, чтобы Claude мог реагировать на внешние события, такие как результаты CI, оповещения мониторинга или сообщения чата. Чтобы включить это, ваш сервер объявляет возможность `claude/channel`, а вы включаете его флагом `--channels` при запуске. См. [Каналы](/docs/ru/channels), чтобы использовать официально поддерживаемый канал, или [Справочник по каналам](/docs/ru/channels-reference), чтобы создать собственный.

458 458 

459В [среде выполнения v2](#mcp-client-runtimes), если вы установите [`MCP_PROTOCOL_NEGOTIATION`](/docs/ru/env-vars) в `auto` и сервер канала согласует ревизию протокола MCP 2026-07-28, он не сможет доставлять сообщения канала, поэтому Claude Code не регистрирует его как канал. Если оставить переменную неустановленной или установить её в `legacy`, stdio-серверы останутся на более раннем рукопожатии.459В [среде выполнения v2](#mcp-client-runtimes) сервер канала, который согласует ревизию протокола MCP 2026-07-28, не может доставлять сообщения канала, поэтому Claude Code не регистрирует его как канал. Сервер канала, который не поддерживает эту ревизию, подключается по более раннему рукопожатию и регистрируется как прежде.

460 

461Claude Code запрашивает эту ревизию у stdio-серверов, когда вы устанавливаете [`MCP_PROTOCOL_NEGOTIATION`](/docs/ru/env-vars) в `auto`. Anthropic также включает это по умолчанию для Claude Code v2.1.285 или новее в сессиях, где Claude Code [получает флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). Чтобы оставить stdio-сервер канала на более раннем рукопожатии, установите `MCP_PROTOCOL_NEGOTIATION` в `legacy`, что оставляет на нём все серверы.

460 462 

461<Tip>463<Tip>

462 Советы:464 Советы:


1478[Обработка комбинатора корневого уровня](#tool-input-schemas-with-a-root-level-combinator) отделена и сохраняет свое собственное поведение, когда получение флагов отключено или флаги никогда не поступали.1480[Обработка комбинатора корневого уровня](#tool-input-schemas-with-a-root-level-combinator) отделена и сохраняет свое собственное поведение, когда получение флагов отключено или флаги никогда не поступали.

1479 1481 

1480<h2 id="require-approval-for-a-specific-tool">1482<h2 id="require-approval-for-a-specific-tool">

1481 Требование одобрения для конкретного инструмента1483 Требование подтверждения для конкретного инструмента

1482</h2>1484</h2>

1483 1485 

1484Если вы создаёте MCP сервер, вы можете отметить инструмент как требующий явного одобрения при каждом вызове, установив `_meta["anthropic/requiresUserInteraction"]` в значение `true` в записи инструмента в ответе `tools/list`. Значение должно быть логическим значением JSON `true`; любое другое значение игнорируется.1486Если вы создаёте MCP-сервер, вы можете отметить инструмент как требующий явного подтверждения при каждом вызове, установив `_meta["anthropic/requiresUserInteraction"]` в значение `true` в записи инструмента в ответе `tools/list`. Значение должно быть логическим значением JSON `true`; любое другое значение игнорируется.

1485 1487 

1486Claude Code показывает запрос разрешения этого инструмента при каждом вызове, даже в режимах разрешений `acceptEdits`, `auto` и `bypassPermissions` [режимы разрешений](/docs/ru/permissions#permission-modes), и не предлагает опцию "не спрашивать снова" для него. [Правила разрешения](/docs/ru/permissions#permission-rule-syntax), которые соответствуют инструменту, также не пропускают запрос. В режиме `dontAsk`, который никогда не запрашивает, Claude Code отклоняет вызов вместо этого.1488Claude Code показывает запрос разрешения этого инструмента при каждом вызове, даже в [режимах разрешений](/docs/ru/permissions#permission-modes) `acceptEdits`, `auto` и `bypassPermissions`, и не предлагает для него опцию «не спрашивать снова». [Правила разрешений](/docs/ru/permissions#permission-rule-syntax), которые соответствуют инструменту, также не позволяют пропустить запрос. В режиме `dontAsk`, который никогда не выводит запросы, Claude Code вместо этого отклоняет вызов.

1487 1489 

1488Запрос должен достичь человека. В неинтерактивном режиме с [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags), результат `allow` из инструмента запроса разрешения для отмеченного инструмента преобразуется в отклонение с сообщением `MCP tool requires user interaction; not supported via --permission-prompt-tool`. Обратный вызов [`canUseTool`](/docs/ru/agent-sdk/permissions) Agent SDK получает эти вызовы и может их одобрить, потому что ваше приложение SDK должно показывать их пользователю.1490Запрос должен дойти до человека. В неинтерактивном режиме с [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) результат `allow` из инструмента запроса разрешения для отмеченного инструмента преобразуется в отклонение с сообщением `MCP tool requires user interaction; not supported via --permission-prompt-tool`. Обратный вызов [`canUseTool`](/docs/ru/agent-sdk/permissions) Agent SDK получает эти вызовы и может их подтвердить, потому что ваше приложение SDK должно показывать их пользователю.

1489 1491 

1490Используйте это для инструментов, чей запрос разрешения сам по себе является целью, например шаг согласия или предоставления доступа, где автоматическое одобрение означало бы, что ни один человек никогда не согласился. Другие инструменты с того же сервера сохраняют своё обычное поведение разрешений.1492Используйте это для инструментов, чей запрос разрешения сам по себе является целью, например шаг согласия или предоставления доступа, где автоматическое подтверждение означало бы, что ни один человек так и не дал согласия. Другие инструменты с того же сервера сохраняют своё обычное поведение разрешений.

1491 1493 

1492Следующая запись `tools/list` отмечает один инструмент как всегда требующий одобрения.1494Следующая запись `tools/list` отмечает один инструмент как всегда требующий подтверждения.

1493 1495 

1494```json theme={null}1496```json theme={null}

1495{1497{


1501}1503}

1502```1504```

1503 1505 

1504Аннотация `anthropic/requiresUserInteraction` требует Claude Code v2.1.199 или более поздней версии. Более ранние версии игнорируют её и применяют стандартный поток разрешений.1506Некоторые интерфейсы, такие как [Remote Control](/docs/ru/remote-control) и приложения, созданные на основе [Agent SDK](/docs/ru/agent-sdk/overview), обычно позволяют вам подтверждать вызовы инструментов одним касанием. Для инструмента, отмеченного этой аннотацией, Claude Code скрывает действие одного касания и вместо этого показывает полный запрос разрешения инструмента, поэтому подтверждение по-прежнему исходит от человека, отвечающего на запрос, а не от касания.

1505 

1506Некоторые поверхности, такие как [Remote Control](/docs/ru/remote-control) и приложения, созданные на основе [Agent SDK](/docs/ru/agent-sdk/overview), обычно позволяют вам одобрять вызовы инструментов одним касанием. Для инструмента, отмеченного этой аннотацией, Claude Code скрывает действие одного касания и вместо этого показывает полный запрос разрешения инструмента, поэтому одобрение по-прежнему исходит от человека, отвечающего на запрос, а не от касания.

1507 1507 

1508Claude Code скрывает одобрение одним касанием таким же образом для любого запроса разрешения, который только диалог терминала может полностью отобразить, например того, который содержит предупреждение безопасности или опцию всегда разрешить, которую удалённая поверхность не может показать. Вы отвечаете на этот запрос в диалоге терминала, а не из Remote Control. Требует Claude Code v2.1.214 или более поздней версии.1508Claude Code таким же образом скрывает подтверждение одним касанием для любого запроса разрешения, который может полностью отобразить только диалог терминала, например запроса, содержащего предупреждение безопасности или опцию «всегда разрешать», которую удалённый интерфейс не может показать. Вы отвечаете на такой запрос в диалоге терминала, а не из Remote Control. Требуется Claude Code v2.1.214 или более поздней версии.

1509 1509 

1510<h2 id="respond-to-mcp-elicitation-requests">1510<h2 id="respond-to-mcp-elicitation-requests">

1511 Ответ на запросы elicitation MCP1511 Ответ на запросы elicitation MCP


1516Серверы могут запрашивать ввод двумя способами:1516Серверы могут запрашивать ввод двумя способами:

1517 1517 

1518* **Режим формы**: Claude Code показывает диалог с полями формы, определенными сервером (например, запрос имени пользователя и пароля). Заполните поля и отправьте.1518* **Режим формы**: Claude Code показывает диалог с полями формы, определенными сервером (например, запрос имени пользователя и пароля). Заполните поля и отправьте.

1519* **Режим URL**: Claude Code спрашивает, открыть ли ссылку в вашем браузере, и открывает её при вашем согласии. Серверы используют этот режим для потока, который завершается вне терминала, например для входа в систему.1519* **Режим URL**: Claude Code спрашивает, открыть ли ссылку в вашем браузере. Серверы используют этот режим для потока, который завершается вне терминала, например для входа в систему.

1520 1520 

1521В режиме URL Claude Code передает URL в качестве аргумента командной строки обработчику URL вашей системы и ограничивает длину этого аргумента. Когда URL, после экранирования для командной строки, превышает это ограничение, вы можете только отклонить запрос. Каждый символ, который требует экранирования, такой как `%` или `&`, считается четыре раза в сторону ограничения: сам символ плюс три символа экранирования. URL без них достигает ограничения примерно на 8000 символов. URL, построенный в основном из процентных экранирований, где каждый третий символ — это `%`, достигает его примерно на 4000.1521В режиме URL Claude Code передает URL в качестве аргумента командной строки обработчику URL вашей системы и ограничивает длину этого аргумента. Когда URL, после экранирования для командной строки, превышает это ограничение, вы можете только отклонить запрос. Каждый символ, который требует экранирования, такой как `%` или `&`, считается четыре раза в сторону ограничения: сам символ плюс три символа экранирования. URL без них достигает ограничения примерно на 8000 символов. URL, построенный в основном из процентных экранирований, где каждый третий символ — это `%`, достигает его примерно на 4000.

1522 1522 

model-config.md +4 −3

Details

794 794 

795<span id="context-window-behind-a-gateway" />795<span id="context-window-behind-a-gateway" />

796 796 

797Если вы установите `ANTHROPIC_BASE_URL` на [LLM gateway](/docs/ru/llm-gateway) или другой прокси, Claude Code дает каждой модели, которую он распознает, то же окно контекста, которое модель имеет на Anthropic API. Fable 5.1, Fable 5, Sonnet 5 и позже, и Opus 4.7 и позже получают окно 1M без варианта `[1m]` для выбора, и модель, которая достигает 1M только через свой вариант `[1m]`, такая как Opus 4.6, работает на 200K без него. Claude Code не может обнаружить более низкий предел, который шлюз или сервер позади него применяет. Если ваш шлюз отклоняет запросы выше 200K токенов, запустите [`/autocompact 200k`](#set-the-auto-compact-window), чтобы сеансы компактировались на этой границе.797Если вы установите `ANTHROPIC_BASE_URL` на [LLM-шлюз](/docs/ru/llm-gateway) или другой прокси, Claude Code даёт каждой распознанной модели то же контекстное окно, что и на Anthropic API. Fable 5.1, Fable 5, Sonnet 5 и новее, а также Opus 4.7 и новее получают окно 1M без необходимости выбирать вариант `[1m]`, а модель, которая получает 1M только через свой вариант `[1m]`, например Opus 4.6, без него работает с 200K. Claude Code не может обнаружить более низкий предел, установленный шлюзом или сервером за ним. Если ваш шлюз отклоняет запросы свыше 200K токенов, установите [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/ru/env-vars) в окружении, из которого запускается Claude Code, чтобы сессии на всех моделях [сжимались на этой границе](#set-the-auto-compact-window).

798 798 

799Чтобы отключить контекст 1M, установите `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code удаляет варианты модели 1M из средства выбора модели. На моделях с собственным окном 1M, таких как Sonnet 5 и модели Fable, он также рассматривает модель как имеющую окно контекста 200K:799Чтобы отключить контекст 1M, установите `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code удаляет варианты модели 1M из средства выбора модели. На моделях с собственным окном 1M, таких как Sonnet 5 и модели Fable, он также рассматривает модель как имеющую окно контекста 200K:

800 800 


840 Установка окна auto-compact840 Установка окна auto-compact

841</h3>841</h3>

842 842 

843Вы можете установить окно auto-compact в трёх местах:843Задать окно автосжатия можно в следующих местах:

844 844 

845* **Для этого сеанса и последующих**: выполните `/autocompact` с значением, например `/autocompact 500k`. Claude Code сохраняет его в ваши пользовательские параметры как [`autoCompactWindow`](/docs/ru/settings-reference#autocompactwindow) и применяет к текущему сеансу; если область параметров с более высоким приоритетом [settings scope](/docs/ru/settings#settings-precedence), такая как управляемые параметры, устанавливает этот ключ, команда сохраняет ваше значение, но сеанс сохраняет окно этой области, и команда об этом сообщает. Выполните `/autocompact auto`, чтобы вернуться к окну, оптимизированному для вашей модели.845* **Для текущей модели, в этой сессии и последующих**: выполните `/autocompact` со значением, например `/autocompact 500k`. Claude Code сохраняет его в ваших пользовательских настройках для текущей модели в [`modelSettings`](/docs/ru/settings-reference#modelsettings) и применяет к текущей сессии. Если [область действия настроек](/docs/ru/settings#settings-precedence) с более высоким приоритетом, например управляемые настройки, задаёт собственное окно для этой модели или для всех моделей, команда сохраняет ваше значение, но сессия использует окно этой области действия, и команда сообщает об этом. Выполните `/autocompact auto`, чтобы вернуться к окну, оптимизированному для вашей модели. До версии v2.1.288 команда сохраняла одно окно для всех моделей в виде ключа верхнего уровня `autoCompactWindow`.

846* **Для всех моделей**: задайте [`autoCompactWindow`](/docs/ru/settings-reference#autocompactwindow) в файле настроек, например `"autoCompactWindow": 200000` в `~/.claude/settings.json`. Окно, сохранённое для модели с помощью `/autocompact`, имеет приоритет над этим ключом в том же файле для этой модели.

846* **Для одного запуска**: передайте [`--autocompact`](/docs/ru/cli-reference#cli-flags) при запуске Claude Code. Флаг переопределяет ваш сохранённый параметр для этого запуска без его изменения, и `claude --autocompact auto` запускает сеанс с оптимизированным окном, даже если ваш сохранённый параметр имеет значение. В отличие от `/autocompact`, флаг не переопределяется областью параметров с более высоким приоритетом, такой как управляемые параметры.847* **Для одного запуска**: передайте [`--autocompact`](/docs/ru/cli-reference#cli-flags) при запуске Claude Code. Флаг переопределяет ваш сохранённый параметр для этого запуска без его изменения, и `claude --autocompact auto` запускает сеанс с оптимизированным окном, даже если ваш сохранённый параметр имеет значение. В отличие от `/autocompact`, флаг не переопределяется областью параметров с более высоким приоритетом, такой как управляемые параметры.

847* **В скриптах и облачных окружениях**: установите [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ru/env-vars). Пока она установлена, она имеет приоритет над командой, флагом и параметром, и `/autocompact` сообщает об переопределении вместо изменения окна.848* **В скриптах и облачных окружениях**: установите [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ru/env-vars). Пока она установлена, она имеет приоритет над командой, флагом и параметром, и `/autocompact` сообщает об переопределении вместо изменения окна.

848 849 

Details

578 578 

579Если вы установите режим `dontAsk`, Claude Code автоматически отклоняет каждый вызов инструмента, который иначе требовал бы запроса. Claude по-прежнему выполняет действия, которые не требуют одобрения в режиме Manual, такие как чтение файлов в ваших рабочих каталогах и [команды Bash только для чтения](/docs/ru/permissions#read-only-commands), а также действия, соответствующие вашим правилам `permissions.allow`, и вызовы, одобренные [hook PreToolUse](/docs/ru/permissions#extend-permissions-with-hooks). Используйте этот режим для конвейеров CI или ограниченных сред, где вы предварительно определяете, что Claude может делать; сеанс никогда не ждёт ввода. Строка состояния показывает `⏵⏵ don't ask on`, пока этот режим активен.579Если вы установите режим `dontAsk`, Claude Code автоматически отклоняет каждый вызов инструмента, который иначе требовал бы запроса. Claude по-прежнему выполняет действия, которые не требуют одобрения в режиме Manual, такие как чтение файлов в ваших рабочих каталогах и [команды Bash только для чтения](/docs/ru/permissions#read-only-commands), а также действия, соответствующие вашим правилам `permissions.allow`, и вызовы, одобренные [hook PreToolUse](/docs/ru/permissions#extend-permissions-with-hooks). Используйте этот режим для конвейеров CI или ограниченных сред, где вы предварительно определяете, что Claude может делать; сеанс никогда не ждёт ввода. Строка состояния показывает `⏵⏵ don't ask on`, пока этот режим активен.

580 580 

581Claude Code отклоняет вызовы, соответствующие вашим явным [правилам `ask`](/docs/ru/permissions#manage-permissions), а не запрашивает их. Он также отклоняет встроенный инструмент `AskUserQuestion` даже если ваши правила разрешения совпадают, и делает то же самое с инструментами соединителя [ваша организация установила на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools) в сеансах, где это параметр достигает Claude Code. Он отклоняет инструменты MCP, отмеченные [`_meta["anthropic/requiresUserInteraction"]`](/docs/ru/mcp#require-approval-for-a-specific-tool) таким же образом, потому что их карточка одобрения требует ответа, который этот режим никогда не собирает; это требует Claude Code версии 2.1.199 или позже.581Claude Code отклоняет вызовы, соответствующие вашим явным [правилам `ask`](/docs/ru/permissions#manage-permissions), а не запрашивает их. Он также отклоняет встроенный инструмент `AskUserQuestion`, даже если ваши правила разрешения совпадают с ним, и делает то же самое с инструментами коннекторов, для которых [ваша организация установила `ask`](/docs/ru/mcp#organization-controls-on-connector-tools), в сессиях, где эта настройка доходит до Claude Code. Он таким же образом отклоняет инструменты MCP, отмеченные [`_meta["anthropic/requiresUserInteraction"]`](/docs/ru/mcp#require-approval-for-a-specific-tool), потому что их карточка подтверждения требует ответа, который этот режим никогда не собирает.

582 582 

583Удаления `rm` и `rmdir`, нацеленные на [критический путь](#critical-paths), такие как `rm -rf /` и `rm -rf ~`, отклоняются даже когда правило разрешения совпадает с ними или hook `PreToolUse` их одобряет.583Удаления `rm` и `rmdir`, нацеленные на [критический путь](#critical-paths), такие как `rm -rf /` и `rm -rf ~`, отклоняются даже когда правило разрешения совпадает с ними или hook `PreToolUse` их одобряет.

584 584 

Details

371| `workspaceFolder` | No | Путь папки рабочего пространства для сервера |371| `workspaceFolder` | No | Путь папки рабочего пространства для сервера |

372| `startupTimeout` | No | Миллисекунды для ожидания запуска, положительное целое число |372| `startupTimeout` | No | Миллисекунды для ожидания запуска, положительное целое число |

373| `shutdownTimeout` | No | Миллисекунды для ожидания корректного завершения, положительное целое число. Когда истекает время ожидания, Claude Code завершает процесс сервера. Если не установлено, время ожидания не применяется |373| `shutdownTimeout` | No | Миллисекунды для ожидания корректного завершения, положительное целое число. Когда истекает время ожидания, Claude Code завершает процесс сервера. Если не установлено, время ожидания не применяется |

374| `requestTimeout` | No | Миллисекунды для ожидания ответа сервера на запрос, положительное целое число. По умолчанию `60000`, поэтому запрос, на который сервер так и не ответил, завершается ошибкой через 60 секунд. Требуется версия v2.1.288 или новее |

374| `restartOnCrash` | No | Перезапускать ли сервер после сбоя. По умолчанию `true`. Установите `false`, чтобы оставить упавший сервер остановленным вместо перезапуска |375| `restartOnCrash` | No | Перезапускать ли сервер после сбоя. По умолчанию `true`. Установите `false`, чтобы оставить упавший сервер остановленным вместо перезапуска |

375| `maxRestarts` | No | Попытки перезапуска перед отказом, ноль или больше |376| `maxRestarts` | No | Попытки перезапуска перед отказом, ноль или больше |

376| `diagnostics` | No | Отправлять ли диагностику в контекст после редактирования. По умолчанию `true` |377| `diagnostics` | No | Отправлять ли диагностику в контекст после редактирования. По умолчанию `true` |

Details

63 63 

64| Поле | Тип | Описание |64| Поле | Тип | Описание |

65| :- | :- | :- |65| :- | :- | :- |

66| `name` | string | Идентификатор Marketplace: буквы, цифры, `.`, `_` и `-`, начинающиеся с буквы или цифры, и без `..`. Он образует часть после `@` каждого [идентификатора плагина](/docs/ru/plugins/loading#find-where-a-plugin-came-from), установленного из marketplace, поэтому `claude plugin validate` отклоняет другие имена. См. [Зарезервированные имена](#reserved-names) |66| `name` | string | Идентификатор маркетплейса: буквы, цифры, `.`, `_` и `-`, начинается с буквы или цифры, без `..`. `claude plugin validate` отклоняет любое другое имя, потому что Claude Code не может устанавливать плагины из маркетплейса с таким именем. Пользователи вводят это имя после `@` в [идентификаторе плагина](/docs/ru/plugins/loading#find-where-a-plugin-came-from), например `my-plugin@my-marketplace`, при установке плагина. См. [Зарезервированные имена](#reserved-names) |

67| `owner` | object | Информация о разработчике. `name` обязателен; `email` и `url` опциональны |67| `owner` | object | Информация о разработчике. `name` обязателен; `email` и `url` опциональны |

68| `plugins` | array | [Записи плагинов](#plugin-entries). Каждая запись проверяется отдельно, поэтому одна неверная запись не приводит к отказу marketplace |68| `plugins` | array | [Записи плагинов](#plugin-entries). Каждая запись проверяется отдельно, поэтому одна неверная запись не приводит к отказу marketplace |

69| `$schema` | string | URL JSON Schema для автодополнения редактора. Игнорируется при загрузке |69| `$schema` | string | URL JSON Schema для автодополнения редактора. Игнорируется при загрузке |

Details

377 Поделитесь своим модом377 Поделитесь своим модом

378</h2>378</h2>

379 379 

380Мод — это плагин, поэтому вы версионируете его в манифесте, и люди устанавливают и обновляют его с помощью команд `/plugin`. Чтобы дать его другим людям, [добавьте его на маркетплейс](/docs/ru/plugins/publish).380Мод — это плагин, поэтому вы версионируете его в манифесте, и люди устанавливают и обновляют его с помощью команд `/plugin`. Способ распространения зависит от того, для кого он предназначен:

381 

382* **Несколько человек**: отправьте им каталог плагина или его `.zip`-архив. См. [Поделиться плагином без маркетплейса](/docs/ru/plugins/publish#share-a-plugin-without-a-marketplace)

383* **Ваша команда**: добавьте его в [собственный маркетплейс](/docs/ru/plugins/publish#publish-through-your-own-marketplace), например в приватный репозиторий с отдельным каталогом для каждого плагина. Чтобы добавить этот маркетплейс для всех, кто работает в репозитории, [зарегистрируйте его в настройках репозитория](/docs/ru/plugins/host-marketplace#register-the-marketplace-for-everyone-in-a-repository)

384* **Вся ваша организация**: администратор может [установить моды вашей организации](/docs/ru/plugins/mods/admin#install-your-organizations-mods) через управляемые настройки

385* **Кто угодно**: сделайте репозиторий вашего маркетплейса публичным или [отправьте плагин в каталог Anthropic](/docs/ru/plugins/publish#submit-to-anthropics-directory)

381 386 

382Перед этим проверьте `name` плагина: `claude plugin validate` не проходит имя, которое [выглядит как одно из собственных Anthropic](/docs/ru/plugins/manifest-reference#name), например то, которое начинается с `claude-`. События и методы могут изменяться между выпусками, поэтому ваш README — это место, где нужно сказать, какую версию Claude Code вы тестировали.387Перед этим проверьте `name` плагина: `claude plugin validate` не проходит имя, которое [выглядит как одно из собственных Anthropic](/docs/ru/plugins/manifest-reference#name), например то, которое начинается с `claude-`. События и методы могут изменяться между выпусками, поэтому ваш README — это место, где нужно сказать, какую версию Claude Code вы тестировали.

383 388 

Details

531| Up и Down | Перемещаются между элементами управления, пока ваше рисование подходит. Когда панель или полоса имеет больше строк, чем может показать, они прокручивают ее. |531| Up и Down | Перемещаются между элементами управления, пока ваше рисование подходит. Когда панель или полоса имеет больше строк, чем может показать, они прокручивают ее. |

532| Enter | Нажимает сфокусированный `Button`, отправляет сфокусированный `Input` или выбирает в `Select` |532| Enter | Нажимает сфокусированный `Button`, отправляет сфокусированный `Input` или выбирает в `Select` |

533| Горячая клавиша кнопки | Нажимает эту кнопку. Пока `Input` имеет фокус, каждая печатаемая клавиша идет в поле. |533| Горячая клавиша кнопки | Нажимает эту кнопку. Пока `Input` имеет фокус, каждая печатаемая клавиша идет в поле. |

534| Page Up, Page Down, Home и End | Прокручивают вашу панель или полосу, когда в ней больше строк, чем она может показать |

535| Ctrl+X, затем клавиша со стрелкой | Изменяет размер вашей панели. Left или Up дают ей больше места, а Right или Down возвращают место обратно. |

536| Ctrl+X, затем X | Закрывает вашу панель, даже пока одно из ее полей имеет фокус |

534| Esc | Возвращает фокус клавиатуры в промпт. С `closeOnEscape: true`, он также закрывает панель. |537| Esc | Возвращает фокус клавиатуры в промпт. С `closeOnEscape: true`, он также закрывает панель. |

535 538 

536Мод не может привязать Tab или клавиши со стрелками к чему-либо еще, поэтому игра управляется с помощью `w`, `a`, `s` и `d`.539Мод не может привязать Tab или клавиши со стрелками к чему-либо еще, поэтому игра управляется с помощью `w`, `a`, `s` и `d`.

Details

63| :- | :- | :- |63| :- | :- | :- |

64| [`tool.call`](/docs/ru/plugins/mods/events#guard-or-change-a-tool-call) | Инструмент вот-вот запустится | `next(e)`, `{ deny: reason }` или `{ result }` |64| [`tool.call`](/docs/ru/plugins/mods/events#guard-or-change-a-tool-call) | Инструмент вот-вот запустится | `next(e)`, `{ deny: reason }` или `{ result }` |

65| [`tool.check`](/docs/ru/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code решает, может ли вызов инструмента выполниться, после хуков `tool.call` и `PreToolUse`. `next(e)` разрешается в решение, к которому пришли правила, режим разрешений и эти хуки. | `{ decision }`, то есть `allow`, `ask` или `deny` |65| [`tool.check`](/docs/ru/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code решает, может ли вызов инструмента выполниться, после хуков `tool.call` и `PreToolUse`. `next(e)` разрешается в решение, к которому пришли правила, режим разрешений и эти хуки. | `{ decision }`, то есть `allow`, `ask` или `deny` |

66| `tool.describe` | Один раз для каждого инструмента, когда его описание впервые отправляется Claude | `{ description }` |66| `tool.describe` | Один раз для каждого инструмента, когда его описание впервые отправляется Claude | `{ description }`, при необходимости с `isDeferred`, равным `true`, чтобы поместить инструмент за [поиск инструментов](/docs/ru/mcp#scale-with-mcp-tool-search), или `false`, чтобы загрузить его сразу |

67 67 

68<h3 id="prompts-and-what-claude-reads">68<h3 id="prompts-and-what-claude-reads">

69 Промпты и то, что читает Claude69 Промпты и то, что читает Claude

plugins/publish.md +26 −11

Details

145 Отправить в справочник Anthropic145 Отправить в справочник Anthropic

146</h2>146</h2>

147 147 

148Справочник Anthropic — это каталог, который люди просматривают на claude.ai и в Cowork для добавления плагинов и коннекторов. Одно объявление там достигает людей на claude.ai, в Cowork и в Claude Code. Вы отправляете из портала разработчика на [claude.ai/directory/manage](https://claude.ai/directory/manage); [Подготовка к проверке](https://claude.com/docs/directory/publish#prepare-for-review) на claude.com описывает, что происходит с каждой версией перед её публикацией.148[Справочник Anthropic](https://claude.ai/directory) — это каталог, который люди просматривают на claude.ai и в Cowork для добавления плагинов и коннекторов. Одно объявление там достигает людей на claude.ai, в Cowork и в Claude Code. Вы отправляете из портала разработчика на [claude.ai/directory/manage](https://claude.ai/directory/manage), а раздел [Отправить плагин](https://claude.com/docs/plugins/submit#submit-a-plugin) на claude.com проведёт вас по порталу.

149 149 

150Отправка требует платный план claude.ai. На Pro и Max вы отправляете со своего собственного аккаунта. На Team и Enterprise владелец может отправлять, а на Enterprise владелец также может предоставить разрешение **Directory** другим членам через пользовательскую роль в разделе **Organization settings > Roles**. См. [Подтвердите, что вы можете отправлять в справочник](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).150Официальный маркетплейс Anthropic, `claude-plugins-official`, не принимает отправки через портал справочника. Если вы работаете с контактом партнёра Anthropic, попросите у них информацию об объявлении в официальном маркетплейсе.

151 151 

152Этапы отправки, проверки, которые должна пройти каждая версия, и что происходит после публикации, задокументированы на claude.com, потому что они одинаковы независимо от того, на какой поверхности находятся ваши пользователи:152Чтобы отправить плагин:

153 153 

154* [Опубликовать в справочнике](https://claude.com/docs/directory/publish#before-you-submit-to-the-directory): что вы можете отправить и кто может это отправить154<Steps>

155* [Отправить плагин](https://claude.com/docs/plugins/submit#submit-a-plugin): этапы портала и [обновление опубликованного плагина](https://claude.com/docs/plugins/submit#update-a-published-plugin)155 <Step title="Убедитесь, что вы можете отправлять">

156* [Контрольный список перед отправкой плагина](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit): проверки для запуска и исправления перед отправкой156 Отправка требует платный план claude.ai. На Pro и Max вы отправляете со своего собственного аккаунта. На Team и Enterprise владелец может отправлять, а на Enterprise владелец также может предоставить разрешение **Directory** другим членам через пользовательскую роль в разделе **Organization settings > Roles**. См. [Подтвердите, что вы можете отправлять в справочник](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).

157* [Переместить более раннюю отправку на портал разработчика](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): что делать, если вы отправили плагин через одну из более ранних форм отправки, до того как портал существовал157 </Step>

158 158 

159Перед открытием портала проверьте локально и убедитесь, какие из ваших компонентов загружаются вне Claude Code:159 <Step title="Проверьте плагин локально">

160 Запустите `claude plugin validate ./your-plugin --strict` в вашей оболочке. Замените `./your-plugin` на путь к каталогу вашего плагина. Команда перехватывает ошибки манифеста локально; [plugin validate](/docs/ru/plugins/cli-reference#plugin-validate) перечисляет, какие файлы читает каждый запуск. Портал применяет дополнительные правила справочника, которые CLI не проверяет, поэтому чистый локальный запуск не гарантирует чистую валидацию портала.

160 161 

161* **Запустите `claude plugin validate ./your-plugin --strict` в вашей оболочке**: замените `./your-plugin` на путь к каталогу вашего плагина. Команда перехватывает ошибки манифеста локально; [plugin validate](/docs/ru/plugins/cli-reference#plugin-validate) перечисляет, какие файлы читает каждый запуск. Портал применяет дополнительные правила справочника, которые CLI не проверяет, поэтому чистый локальный запуск не гарантирует чистую валидацию портала.162 [Контрольный список перед отправкой плагина](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit) на claude.com содержит проверки, которые нужно запустить и исправить перед отправкой.

162* **Проверьте, что загружается где**: некоторые компоненты плагина предназначены только для Claude Code и не загружаются на claude.ai или в Cowork. [Таблица поддержки компонентов](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) перечисляет каждый компонент по приложениям, поэтому вы знаете, что получат пользователи вне Claude Code.163 </Step>

164 

165 <Step title="Проверьте, что загружается где">

166 Некоторые компоненты плагина предназначены только для Claude Code и не загружаются на claude.ai или в Cowork. [Таблица поддержки компонентов](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) перечисляет каждый компонент по приложениям, поэтому вы знаете, что получат пользователи вне Claude Code.

167 </Step>

163 168 

164Официальный marketplace Anthropic, `claude-plugins-official`, не принимает отправки через портал справочника. Если вы работаете с контактом партнёра Anthropic, попросите у них информацию об объявлении в официальном marketplace.169 <Step title="Отправьте через портал разработчика">

170 Откройте портал разработчика на [claude.ai/directory/manage](https://claude.ai/directory/manage) и следуйте инструкциям раздела [Отправить плагин](https://claude.com/docs/plugins/submit#submit-a-plugin) на claude.com.

171 </Step>

172</Steps>

173 

174Остальная часть процесса задокументирована на claude.com:

175 

176* [Подготовка к проверке](https://claude.com/docs/directory/publish#prepare-for-review): что происходит с каждой версией перед её публикацией

177* [Обновление опубликованного плагина](https://claude.com/docs/plugins/submit#update-a-published-plugin): как новая версия доходит до людей, у которых установлен ваш плагин

178* [Отправьте свой плагин, а свой MCP-сервер — как коннектор](https://claude.com/docs/directory/publish#submit-your-plugin-and-your-mcp-server-as-a-connector): что вы можете отправить

179* [Переместить более раннюю отправку на портал разработчика](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): что делать, если вы отправили плагин через одну из более ранних форм отправки, до того как портал существовал

165 180 

166<h3 id="how-a-listed-plugin-reaches-claude-code-users">181<h3 id="how-a-listed-plugin-reaches-claude-code-users">

167 Как перечисленный плагин достигает пользователей Claude Code182 Как перечисленный плагин достигает пользователей Claude Code

routines.md +1 −1

Details

403 </Step>403 </Step>

404 404 

405 <Step title="Измените уровень сетевого доступа">405 <Step title="Измените уровень сетевого доступа">

406 В диалоговом окне **Edit cloud environment** измените **Network access** на **Custom** и введите ваши домены в **Allowed domains**. Установите флажок **Also include default list of common package managers**, чтобы сохранить [список разрешений по умолчанию](/docs/ru/cloud-environments#default-allowed-domains) вместе с вашими пользовательскими доменами. Выберите **Full** для неограниченного доступа.406 В диалоговом окне **Edit environment** измените **Network access** на **Custom** и введите ваши домены в **Allowed domains**. Установите флажок **Also include default list of common package managers**, чтобы сохранить [список разрешённых доменов по умолчанию](/docs/ru/cloud-environments#default-allowed-domains) вместе с вашими пользовательскими доменами. Выберите вместо этого **Full** для неограниченного доступа.

407 </Step>407 </Step>

408 408 

409 <Step title="Сохранить">409 <Step title="Сохранить">

sandboxing.md +2 −4

Details

459 Маскирование учётных данных459 Маскирование учётных данных

460</h3>460</h3>

461 461 

462Когда вы маскируете учётные данные, Claude Code показывает командам в песочнице заполнитель, уникальный для сессии, — сигнальное значение, а [прокси песочницы](#network-isolation) подставляет реальное значение в исходящие запросы к разрешённым вами хостам. Запись `deny` из раздела [Защита учётных данных](#protect-credentials) вместо этого блокирует учётные данные. Для файлов в macOS Claude Code [блокирует файл](#mask-credential-files) вместо его маскирования.462Когда вы маскируете учётные данные, Claude Code показывает командам в песочнице заполнитель, уникальный для сессии, — сигнальное значение, а [прокси песочницы](#network-isolation) подставляет реальное значение в исходящие запросы к разрешённым вами хостам. Запись `deny` из раздела [Защита учётных данных](#protect-credentials) вместо этого блокирует учётные данные. Для файлов в macOS Claude Code [блокирует файл](#mask-credential-files) вместо его маскирования. Все поля перечислены в справочнике по [`sandbox.credentials`](/docs/ru/settings-reference#sandbox-credentials).

463 

464Для маскирования переменных окружения требуется Claude Code v2.1.199 или новее. Все поля перечислены в справочнике по [`sandbox.credentials`](/docs/ru/settings-reference#sandbox-credentials).

465 463 

466Для маскирования необходимо следующее:464Для маскирования необходимо следующее:

467 465 


620В правиле `WebFetch(domain:...)` песочница учитывает две формы подстановочных знаков: ведущий `*.`, например `*.example.com`, и одиночный `*`. Форма с одиночным `*` требует Claude Code v2.1.186 или новее. Подстановочный знак в любой другой позиции, например `WebFetch(domain:example.*)`, по-прежнему сопоставляется с запросами, но не влияет на команды в песочнице.618В правиле `WebFetch(domain:...)` песочница учитывает две формы подстановочных знаков: ведущий `*.`, например `*.example.com`, и одиночный `*`. Форма с одиночным `*` требует Claude Code v2.1.186 или новее. Подстановочный знак в любой другой позиции, например `WebFetch(domain:example.*)`, по-прежнему сопоставляется с запросами, но не влияет на команды в песочнице.

621 619 

622<Note>620<Note>

623 Встроенный прокси применяет список разрешённых доменов на основе запрошенного имени хоста и по умолчанию не терминирует и не инспектирует трафик TLS. Экспериментальная настройка [`network.tlsTerminate`](/docs/ru/settings-reference#sandbox-network-tlsterminate), доступная в Claude Code v2.1.199 и новее, заставляет встроенный прокси самостоятельно терминировать TLS, что требуется для [записей учётных данных `mask`](#mask-credentials). Последствия поведения по умолчанию описаны в разделе [Ограничения безопасности](#security-limitations), а если ваша модель угроз требует инспекции TLS, см. [Пользовательская конфигурация прокси](#custom-proxy-configuration).621 Встроенный прокси применяет список разрешённых доменов на основе запрошенного имени хоста и по умолчанию не терминирует и не инспектирует трафик TLS. Экспериментальная настройка [`network.tlsTerminate`](/docs/ru/settings-reference#sandbox-network-tlsterminate) заставляет встроенный прокси самостоятельно терминировать TLS, что требуется для [записей учётных данных `mask`](#mask-credentials). Последствия поведения по умолчанию описаны в разделе [Ограничения безопасности](#security-limitations), а если ваша модель угроз требует инспекции TLS, см. [Пользовательская конфигурация прокси](#custom-proxy-configuration).

624</Note>622</Note>

625 623 

626<h4 id="hosts-outside-your-allowed-domains">624<h4 id="hosts-outside-your-allowed-domains">

sessions.md +1 −1

Details

299 Удалить данные сеанса299 Удалить данные сеанса

300</h3>300</h3>

301 301 

302Стенограммы удаляются в соответствии с [правилами очистки сохранения](/docs/ru/claude-directory#cleaned-up-automatically). Чтобы удалить стенограммы проекта и связанное состояние раньше, запустите [`claude project purge`](/docs/ru/claude-directory#clear-local-data). Если вы удалите [фоновый сеанс](/docs/ru/agent-view) с помощью [`claude rm <id>`](/docs/ru/agent-view#what-deleting-a-session-removes), его стенограмма остается на диске и остается доступной через `claude --resume`.302Транскрипты удаляются в соответствии с [правилами очистки сохранения](/docs/ru/claude-directory#cleaned-up-automatically). Чтобы удалить транскрипты проекта и связанное состояние раньше, запустите [`claude purge`](/docs/ru/claude-directory#clear-local-data). Если вы удалите [фоновую сессию](/docs/ru/agent-view) с помощью [`claude rm <id>`](/docs/ru/agent-view#what-deleting-a-session-removes), ее транскрипт остается на диске и остается доступным через `claude --resume`.

303 303 

304<h3 id="name-the-project-directory-yourself">304<h3 id="name-the-project-directory-yourself">

305 Назвать каталог проекта самостоятельно305 Назвать каталог проекта самостоятельно

Details

708| [`modelOverrides`](#modeloverrides) | [Сопоставьте ID моделей](/docs/ru/model-config#override-model-ids-per-version) с ID вашего поставщика, такими как Bedrock ARN | Model and responses | Any file |708| [`modelOverrides`](#modeloverrides) | [Сопоставьте ID моделей](/docs/ru/model-config#override-model-ids-per-version) с ID вашего поставщика, такими как Bedrock ARN | Model and responses | Any file |

709| [`modelPicker`](#modelpicker) | Выберите, какие модели перечисляет [средство выбора `/model`](/docs/ru/model-config#available-models), в вашем собственном порядке и с вашими собственными метками | Model and responses | User or managed |709| [`modelPicker`](#modelpicker) | Выберите, какие модели перечисляет [средство выбора `/model`](/docs/ru/model-config#available-models), в вашем собственном порядке и с вашими собственными метками | Model and responses | User or managed |

710| [`modelPricing`](#modelpricing) | Сообщайте расходы по контрактным ставкам вашей организации вместо прейскурантной цены | Model and responses | Managed |710| [`modelPricing`](#modelpricing) | Сообщайте расходы по контрактным ставкам вашей организации вместо прейскурантной цены | Model and responses | Managed |

711| [`modelSettings`](#modelsettings) | Сохраняйте [уровень effort](/docs/ru/model-config#adjust-effort-level) для каждой модели или ограничивайте effort одной модели | Model and responses | Any file |711| [`modelSettings`](#modelsettings) | Сохраняйте для каждой модели [уровень effort](/docs/ru/model-config#adjust-effort-level) или [окно автосжатия](/docs/ru/model-config#set-the-auto-compact-window) либо ограничивайте effort одной модели | Model and responses | Any file |

712| [`otelHeadersHelper`](#otelheadershelper) | Создавайте ротирующие заголовки [OpenTelemetry](/docs/ru/monitoring-usage#dynamic-headers) с помощью вашей собственной команды | Authentication and providers | Any file |712| [`otelHeadersHelper`](#otelheadershelper) | Создавайте ротирующие заголовки [OpenTelemetry](/docs/ru/monitoring-usage#dynamic-headers) с помощью вашей собственной команды | Authentication and providers | Any file |

713| [`outputStyle`](#outputstyle) | Измените роль, тон и формат вывода Claude с помощью [стиля вывода](/docs/ru/output-styles) | Model and responses | Any file |713| [`outputStyle`](#outputstyle) | Измените роль, тон и формат вывода Claude с помощью [стиля вывода](/docs/ru/output-styles) | Model and responses | Any file |

714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Применяйте или отбрасывайте ограничения, которые [хост SDK или IDE](/docs/ru/managed-settings#let-an-embedding-host-add-policy) передаёт при развёртывании [управляемых настроек](/docs/ru/managed-settings) | Enterprise and managed settings | Managed |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Применяйте или отбрасывайте ограничения, которые [хост SDK или IDE](/docs/ru/managed-settings#let-an-embedding-host-add-policy) передаёт при развёртывании [управляемых настроек](/docs/ru/managed-settings) | Enterprise and managed settings | Managed |


1282Чтобы ограничить effort одной модели вместо установки её уровня, добавьте поле [`maxEffortLevel`](#maxeffortlevel) в запись [`modelSettings`](#modelsettings) этой модели. Поле требует Claude Code v2.1.267 или позже.1282Чтобы ограничить effort одной модели вместо установки её уровня, добавьте поле [`maxEffortLevel`](#maxeffortlevel) в запись [`modelSettings`](#modelsettings) этой модели. Поле требует Claude Code v2.1.267 или позже.

1283 1283 

1284* **Область действия**: [`Any file`](#scopes)1284* **Область действия**: [`Any file`](#scopes)

1285* **Тип**: объект, сопоставляющий имя модели с объектом с полем `effortLevel`, один из `"low"`, `"medium"`, `"high"` или `"xhigh"`, полем [`maxEffortLevel`](#maxeffortlevel) или обоими1285* **Тип**: объект, сопоставляющий имя модели с объектом с любыми из этих полей:

1286 * `effortLevel`: один из `"low"`, `"medium"`, `"high"` или `"xhigh"`

1287 * [`maxEffortLevel`](#maxeffortlevel): наивысший уровень effort, на котором может работать модель

1288 * `autoCompactWindow`: количество токенов от `100000` до `1000000` или `"auto"` для окна, настроенного под модель. [`/autocompact`](/docs/ru/model-config#set-the-auto-compact-window) сохраняет значение сюда. Для этой модели значение имеет приоритет над [`autoCompactWindow`](#autocompactwindow) верхнего уровня в том же файле настроек. Требует Claude Code v2.1.288 или позже

1286* **По умолчанию**: не установлено1289* **По умолчанию**: не установлено

1287 1290 

1288Claude Code записывает каждую запись под каноническим именем модели, таким как `claude-opus-5-5`, и сопоставляет псевдоним этой модели, датированный, `[1m]` и признанные ID, специфичные для поставщика, с той же записью.1291Claude Code записывает каждую запись под каноническим именем модели, таким как `claude-opus-5-5`, и сопоставляет псевдоним этой модели, датированный, `[1m]` и признанные ID, специфичные для поставщика, с той же записью.


2478 `sandbox.credentials.envVars`2481 `sandbox.credentials.envVars`

2479</h3>2482</h3>

2480 2483 

2481Защитите переменные окружения от изолированных команд. С `"mode": "deny"` Claude Code удаляет переменную из окружения изолированных команд. С `"mode": "mask"` изолированные команды видят сигнальное значение, уникальное для сессии, а прокси песочницы подставляет реальное значение в исходящих запросах к `injectHosts` этой записи, поэтому такие инструменты, как `gh` и `npm`, продолжают проходить аутентификацию, никогда не получая реальных учётных данных. `"mode": "mask"` требует Claude Code v2.1.199 или более поздней версии.2484Защитите переменные окружения от изолированных команд. С `"mode": "deny"` Claude Code удаляет переменную из окружения изолированных команд. С `"mode": "mask"` изолированные команды видят сигнальное значение, уникальное для сессии, а прокси песочницы подставляет реальное значение в исходящих запросах к `injectHosts` этой записи, поэтому такие инструменты, как `gh` и `npm`, продолжают проходить аутентификацию, никогда не получая реальных учётных данных.

2482 2485 

2483* **Scope**: [`Any file`](#scopes). Claude Code отбрасывает записи `mask` из проектного `.claude/settings.json` и локального `.claude/settings.local.json`.2486* **Scope**: [`Any file`](#scopes). Claude Code отбрасывает записи `mask` из проектного `.claude/settings.json` и локального `.claude/settings.local.json`.

2484* **Type**: array of objects, each with `name` and a `mode` of `"deny"` or `"mask"`, plus the optional [mask fields for environment variables](#mask-fields-for-environment-variables)2487* **Type**: array of objects, each with `name` and a `mode` of `"deny"` or `"mask"`, plus the optional [mask fields for environment variables](#mask-fields-for-environment-variables)


2499}2502}

2500```2503```

2501 2504 

2502`name` должно начинаться с буквы или подчёркивания и содержать только буквы, цифры и подчёркивания. Claude Code объединяет массивы из всех областей действия настроек, которые загружает сессия, и применяет `deny`, когда одна и та же переменная встречается с обоими режимами. [Protect credentials](/docs/ru/sandboxing#protect-credentials) описывает, что по-прежнему применяется из источников, которые вы исключаете с помощью `--setting-sources`. Записи `mask` требуют Claude Code v2.1.199 или более поздней версии.2505`name` должно начинаться с буквы или подчёркивания и содержать только буквы, цифры и подчёркивания. Claude Code объединяет массивы из всех областей действия настроек, которые загружает сессия, и применяет `deny`, когда одна и та же переменная встречается с обоими режимами. [Protect credentials](/docs/ru/sandboxing#protect-credentials) описывает, что по-прежнему применяется из источников, которые вы исключаете с помощью `--setting-sources`.

2503 2506 

2504Подстановка `mask` работает только через прокси песочницы, поэтому установите [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) или [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) для тестовых сетей с обычным HTTP; см. [Mask credentials](/docs/ru/sandboxing#mask-credentials). Claude Code принимает, но игнорирует поля `mask` в записи `deny`.2507Подстановка `mask` работает только через прокси песочницы, поэтому установите [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) или [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) для тестовых сетей с обычным HTTP; см. [Mask credentials](/docs/ru/sandboxing#mask-credentials). Claude Code принимает, но игнорирует поля `mask` в записи `deny`.

2505 2508 


2525| `onExtractNoMatch` | `"warn"`, `"deny"` или `"error"`; default `"warn"`. В записи с `decode` принимается только `"warn"` | Что происходит, когда `extract` ничего не находит. `warn` передаёт переменную без маскирования, `deny` удаляет её внутри песочницы, а `error` останавливает настройку песочницы, пока вы не исправите конфигурацию. Требует v2.1.224 или более поздней версии |2528| `onExtractNoMatch` | `"warn"`, `"deny"` или `"error"`; default `"warn"`. В записи с `decode` принимается только `"warn"` | Что происходит, когда `extract` ничего не находит. `warn` передаёт переменную без маскирования, `deny` удаляет её внутри песочницы, а `error` останавливает настройку песочницы, пока вы не исправите конфигурацию. Требует v2.1.224 или более поздней версии |

2526| `decode` | the string `"jwt"` | Проверяет, что всё значение является JWT, и заменяет его структурно корректным поддельным токеном, чтобы код внутри песочницы, который декодирует токен, продолжал работать; прокси подставляет весь реальный токен в исходящем трафике. Значение, не прошедшее проверку, передаётся без маскирования с предупреждением. Требует v2.1.224 или более поздней версии |2529| `decode` | the string `"jwt"` | Проверяет, что всё значение является JWT, и заменяет его структурно корректным поддельным токеном, чтобы код внутри песочницы, который декодирует токен, продолжал работать; прокси подставляет весь реальный токен в исходящем трафике. Значение, не прошедшее проверку, передаётся без маскирования с предупреждением. Требует v2.1.224 или более поздней версии |

2527| `maskClaims` | array of strings, at least one claim name; requires `decode` | Маскирует только указанные утверждения (claims) верхнего уровня полезной нагрузки внутри декодированного JWT и пересобирает токен вокруг изменённой полезной нагрузки, чтобы другие утверждения оставались доступными для чтения. Когда ни одно из указанных утверждений не совпадает, переменная передаётся без маскирования с предупреждением. Требует v2.1.224 или более поздней версии |2530| `maskClaims` | array of strings, at least one claim name; requires `decode` | Маскирует только указанные утверждения (claims) верхнего уровня полезной нагрузки внутри декодированного JWT и пересобирает токен вокруг изменённой полезной нагрузки, чтобы другие утверждения оставались доступными для чтения. Когда ни одно из указанных утверждений не совпадает, переменная передаётся без маскирования с предупреждением. Требует v2.1.224 или более поздней версии |

2528| `injectHosts` | array of strings, each a host that [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) also admits | Сужает набор хостов, для которых прокси песочницы подставляет реальное значение. Если не установлено, прокси подставляет его в запросах к каждому хосту в `sandbox.network.allowedDomains`. Указывайте IPv6-адрес назначения как сжатый адрес без скобок, например `"::1"`, а не в форме со скобками; см. [IPv6 destinations in `injectHosts`](/docs/ru/sandboxing#ipv6-destinations-in-injecthosts). Требует v2.1.199 или более поздней версии |2531| `injectHosts` | array of strings, each a host that [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) also admits | Сужает набор хостов, для которых прокси песочницы подставляет реальное значение. Если не установлено, прокси подставляет его в запросах к каждому хосту в `sandbox.network.allowedDomains`. Указывайте IPv6-адрес назначения как сжатый адрес без скобок, например `"::1"`, а не в форме со скобками; см. [IPv6 destinations in `injectHosts`](/docs/ru/sandboxing#ipv6-destinations-in-injecthosts) |

2529 2532 

2530Это маскирует только пароль внутри `DATABASE_URL`, удаляет переменную, если шаблон ничего не находит, и маскирует JWT в `SERVICE_JWT`, оставляя доступными для чтения все утверждения, кроме `api_key`:2533Это маскирует только пароль внутри `DATABASE_URL`, удаляет переменную, если шаблон ничего не находит, и маскирует JWT в `SERVICE_JWT`, оставляя доступными для чтения все утверждения, кроме `api_key`:

2531 2534 


2556 `sandbox.credentials.allowPlaintextInject`2559 `sandbox.credentials.allowPlaintextInject`

2557</h3>2560</h3>

2558 2561 

2559Разрешите подстановку `mask` в обычных HTTP-запросах, а также в HTTPS с терминированием TLS. При обычном HTTP подлинность вышестоящего сервера не проверяется, а учётные данные передаются в открытом виде, поэтому оставляйте это отключённым за пределами доверенных тестовых сетей. Требует Claude Code v2.1.199 или более поздней версии.2562Разрешите подстановку `mask` в обычных HTTP-запросах, а также в HTTPS с терминированием TLS. При обычном HTTP подлинность вышестоящего сервера не проверяется, а учётные данные передаются в открытом виде, поэтому оставляйте это отключённым за пределами доверенных тестовых сетей.

2560 2563 

2561* **Scope**: [`User or managed`](#scopes)2564* **Scope**: [`User or managed`](#scopes)

2562* **Type**: Boolean2565* **Type**: Boolean


2574}2577}

2575```2578```

2576 2579 

2577Требует Claude Code v2.1.199 или более поздней версии.

2578 

2579<h3 id="sandbox-credentials-awspairs">2580<h3 id="sandbox-credentials-awspairs">

2580 `sandbox.credentials.awsPairs`2581 `sandbox.credentials.awsPairs`

2581</h3>2582</h3>


2919}2920}

2920```2921```

2921 2922 

2922Когда её устанавливают несколько учитываемых источников, Claude Code использует значение из источника с наивысшим приоритетом: управляемые настройки, затем флаг `--settings`, затем пользовательские настройки. Требует Claude Code v2.1.199 или более поздней версии.2923Когда её устанавливают несколько учитываемых источников, Claude Code использует значение из источника с наивысшим приоритетом: управляемые настройки, затем флаг `--settings`, затем пользовательские настройки.

2923 2924 

2924<span id="context-and-memory" />2925<span id="context-and-memory" />

2925 2926 


2967}2968}

2968```2969```

2969 2970 

2970Установите его с помощью команды [`/autocompact`](/docs/ru/commands#all-commands), которая записывает этот ключ в ваши пользовательские параметры. [Установка окна автоматической компактизации](/docs/ru/model-config#set-the-auto-compact-window) описывает, как команда, флаг, переменная и параметр взаимодействуют.2971Команда [`/autocompact`](/docs/ru/commands#all-commands) сохраняет окно для текущей модели в [`modelSettings`](#modelsettings), и это значение имеет приоритет над этим ключом в том же файле для этой модели. [Установка окна автосжатия](/docs/ru/model-config#set-the-auto-compact-window) описывает, как взаимодействуют команда, флаг, переменная и настройка.

2971 2972 

2972<h3 id="automemorydirectory">2973<h3 id="automemorydirectory">

2973 `autoMemoryDirectory`2974 `autoMemoryDirectory`

setup.md +5 −5

Details

45 <Tab title="Встроенная установка (рекомендуется)">45 <Tab title="Встроенная установка (рекомендуется)">

46 **macOS, Linux, WSL:**46 **macOS, Linux, WSL:**

47 47 

48 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}48 ```bash theme={null}

49 curl -fsSL https://claude.ai/install.sh | bash49 curl -fsSL https://claude.ai/install.sh | bash

50 ```50 ```

51 51 

52 **Windows PowerShell:**52 **Windows PowerShell:**

53 53 

54 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}54 ```powershell theme={null}

55 irm https://claude.ai/install.ps1 | iex55 irm https://claude.ai/install.ps1 | iex

56 ```56 ```

57 57 

58 **Windows CMD:**58 **Windows CMD:**

59 59 

60 ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}60 ```batch theme={null}

61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

62 ```62 ```

63 63 


75 </Tab>75 </Tab>

76 76 

77 <Tab title="Homebrew">77 <Tab title="Homebrew">

78 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}78 ```bash theme={null}

79 brew install --cask claude-code79 brew install --cask claude-code

80 ```80 ```

81 81 


87 </Tab>87 </Tab>

88 88 

89 <Tab title="WinGet">89 <Tab title="WinGet">

90 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}90 ```powershell theme={null}

91 winget install Anthropic.ClaudeCode91 winget install Anthropic.ClaudeCode

92 ```92 ```

93 93 

skills.md +94 −93

Details

198 Разрешение конфликтов скиллов с одинаковым именем198 Разрешение конфликтов скиллов с одинаковым именем

199</h3>199</h3>

200 200 

201Когда у двух скиллов совпадает имя каталога или файла, то, какой из них запустит `/name`, зависит от их происхождения. Об имени, заданном полем `name` во frontmatter, см. [Как скилл получает имя команды](#how-a-skill-gets-its-command-name). Таблица охватывает корпоративное, личное, проектное, вложенное расположения, плагины и claude.ai, встроенные скиллы и файлы команд:201Когда у двух скиллов совпадает имя каталога или файла, то, какой из них запустит `/name`, зависит от их происхождения. Об имени, заданном полем `name` во frontmatter, см. [Как скилл получает имя команды](#how-a-skill-gets-its-command-name). Таблица охватывает корпоративное, личное, проектное, вложенное расположения, плагины и claude.ai, встроенные скиллы, встроенные команды и файлы команд:

202 202 

203| Одинаковое имя в | Какой запускается |203| Одинаковое имя в | Какой запускается |

204| :- | :- |204| :- | :- |

205| Двух из корпоративного, личного и проектного | Корпоративный важнее личного, а личный важнее проектного. Если `deploy` есть и в `~/.claude/skills/`, и в `.claude/skills/` проекта, `/deploy` запускает личный |205| Двух из корпоративного, личного и проектного | Корпоративный важнее личного, а личный важнее проектного. Если `deploy` есть и в `~/.claude/skills/`, и в `.claude/skills/` проекта, `/deploy` запускает личный |

206| Любом из этих расположений и [встроенном скилле](#bundled-skills) | Ваш скилл заменяет встроенную команду, но не её псевдонимы. Проектный скилл `code-review` заменяет `/code-review`, а встроенный псевдоним `/review` никогда не запускает ваш скилл |206| Любом из этих расположений и [встроенном скилле](#bundled-skills) | Ваш скилл заменяет встроенную команду, но не её псевдонимы. Проектный скилл `code-review` заменяет `/code-review`, а встроенный псевдоним `/review` никогда не запускает ваш скилл |

207| Любом из этих расположений и [встроенной команде](/docs/ru/commands) | В локальной сессии терминала ваш скилл заменяет встроенную команду, но не её псевдонимы. Проектный скилл `usage` заменяет `/usage`, а встроенный псевдоним `/cost` по-прежнему запускает встроенную команду |

207| Скилле и файле в `.claude/commands/` | Скилл |208| Скилле и файле в `.claude/commands/` | Скилл |

208| Скилле в корне проекта и вложенном скилле | Загружаются оба. См. [монорепозитории и подкаталоги](#discovery-from-parent-and-nested-directories) |209| Скилле в корне проекта и вложенном скилле | Загружаются оба. См. [монорепозитории и подкаталоги](#discovery-from-parent-and-nested-directories) |

209| Скилле плагина и скилле в любом из расположений выше | Загружаются оба, поскольку скиллы плагинов находятся в пространстве имён `/plugin-name:skill-name` |210| Скилле плагина и скилле в любом из расположений выше | Загружаются оба, поскольку скиллы плагинов находятся в пространстве имён `/plugin-name:skill-name` |


416| `allowed-tools` | Нет | Tools, которые Claude может использовать без запроса разрешения во время хода, который вызывает этот skill. Разрешение очищается при отправке следующего сообщения. Принимает строку, разделенную пробелами или запятыми, или список YAML. См. [Предварительное одобрение tools для skill](#pre-approve-tools-for-a-skill). |417| `allowed-tools` | Нет | Tools, которые Claude может использовать без запроса разрешения во время хода, который вызывает этот skill. Разрешение очищается при отправке следующего сообщения. Принимает строку, разделенную пробелами или запятыми, или список YAML. См. [Предварительное одобрение tools для skill](#pre-approve-tools-for-a-skill). |

417| `disallowed-tools` | Нет | Tools, удаленные из доступного пула Claude во время активности этого skill. Используйте для автономных skills, которые никогда не должны вызывать определенные tools, такие как `AskUserQuestion` для фонового цикла. Принимает строку, разделенную пробелами или запятыми, или список YAML. Ограничение очищается при отправке следующего сообщения. Как и правила отказа, это поле не может удалить [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior) пока остаются другие tools. |418| `disallowed-tools` | Нет | Tools, удаленные из доступного пула Claude во время активности этого skill. Используйте для автономных skills, которые никогда не должны вызывать определенные tools, такие как `AskUserQuestion` для фонового цикла. Принимает строку, разделенную пробелами или запятыми, или список YAML. Ограничение очищается при отправке следующего сообщения. Как и правила отказа, это поле не может удалить [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior) пока остаются другие tools. |

418| `model` | Нет | Модель для использования, когда этот skill активен. Переопределение применяется для остальной части текущего хода и не сохраняется в параметрах. Модель сеанса возобновляется при отправке следующей подсказки. Принимает те же значения, что и [`/model`](/docs/ru/model-config), или `inherit`, чтобы сохранить активную модель. Значение, исключенное списком разрешений [`availableModels`](/docs/ru/model-config#restrict-model-selection) вашей организации, не используется, и сеанс сохраняет свою текущую модель. В [режиме auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) и в [режиме plan, пока классификатор проверяет команды](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode), модель, которую режим auto не поддерживает, также не используется, и сеанс сохраняет свою текущую модель. С `context: fork` значение устанавливает [модель подагента fork](#run-skills-in-a-subagent), и исключенное значение следует [тем же правилам, что и переопределение модели подагента](/docs/ru/model-config#restrict-model-selection). |419| `model` | Нет | Модель для использования, когда этот skill активен. Переопределение применяется для остальной части текущего хода и не сохраняется в параметрах. Модель сеанса возобновляется при отправке следующей подсказки. Принимает те же значения, что и [`/model`](/docs/ru/model-config), или `inherit`, чтобы сохранить активную модель. Значение, исключенное списком разрешений [`availableModels`](/docs/ru/model-config#restrict-model-selection) вашей организации, не используется, и сеанс сохраняет свою текущую модель. В [режиме auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) и в [режиме plan, пока классификатор проверяет команды](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode), модель, которую режим auto не поддерживает, также не используется, и сеанс сохраняет свою текущую модель. С `context: fork` значение устанавливает [модель подагента fork](#run-skills-in-a-subagent), и исключенное значение следует [тем же правилам, что и переопределение модели подагента](/docs/ru/model-config#restrict-model-selection). |

419| `effort` | Нет | [Уровень усилий](/docs/ru/model-config#adjust-effort-level) при активности этого skill. Переопределяет уровень усилий сеанса. По умолчанию: наследуется из сеанса. Опции: `low`, `medium`, `high`, `xhigh`, `max`; доступные уровни зависят от модели. |420| `effort` | Нет | [Уровень effort](/docs/ru/model-config#adjust-effort-level) при активности этого skill. Переопределяет уровень effort сессии. Если поле опущено, уровень определяется [порядком разрешения уровня effort](/docs/ru/model-config#adjust-effort-level). Опции: `low`, `medium`, `high`, `xhigh`, `max`; доступные уровни зависят от модели. |

420| `context` | Нет | Установите значение `fork`, чтобы запустить в контексте подагента fork. См. [Запуск skills в подагенте](#run-skills-in-a-subagent). |421| `context` | Нет | Установите значение `fork`, чтобы запустить в контексте подагента fork. См. [Запуск skills в подагенте](#run-skills-in-a-subagent). |

421| `agent` | Нет | Какой тип подагента использовать, когда установлен `context: fork`. |422| `agent` | Нет | Какой тип подагента использовать, когда установлен `context: fork`. |

422| `background` | Нет | Применяется только с `context: fork`. Установите значение `false`, чтобы ждать результата подагента fork в ходе, который вызвал skill, вместо [запуска его в фоне](#run-skills-in-a-subagent). По умолчанию: `true`. Требует Claude Code v2.1.218 или позже. |423| `background` | Нет | Применяется только с `context: fork`. Установите значение `false`, чтобы ждать результата подагента fork в ходе, который вызвал skill, вместо [запуска его в фоне](#run-skills-in-a-subagent). По умолчанию: `true`. Требует Claude Code v2.1.218 или позже. |


664 665 

665Если вы вызываете skill с аргументами, но ни один заполнитель в содержимом skill не получает один, Claude Code добавляет `ARGUMENTS: <your input>` в конец содержимого skill, чтобы Claude все еще видел, что вы ввели. Заполнитель — это `$ARGUMENTS`, индексированная форма, такая как `$1`, или именованный аргумент. Индексированный заполнитель без аргумента в его позиции остается как буквальный текст и не считается получившим один. Именованный заполнитель считается даже когда его позиция не имеет аргумента, потому что он расширяется до пустой строки.666Если вы вызываете skill с аргументами, но ни один заполнитель в содержимом skill не получает один, Claude Code добавляет `ARGUMENTS: <your input>` в конец содержимого skill, чтобы Claude все еще видел, что вы ввели. Заполнитель — это `$ARGUMENTS`, индексированная форма, такая как `$1`, или именованный аргумент. Индексированный заполнитель без аргумента в его позиции остается как буквальный текст и не считается получившим один. Именованный заполнитель считается даже когда его позиция не имеет аргумента, потому что он расширяется до пустой строки.

666 667 

667Вы также можете складывать несколько skills в начале одного сообщения. Ввод `/write-tests /fix-issue 123` загружает оба skills и передает конечный текст `123` как `$ARGUMENTS` каждому из них. До v2.1.199 только первый skill загружался и получал `/fix-issue 123` как буквальный текст аргумента.668Вы также можете складывать несколько skills в начале одного сообщения. Ввод `/write-tests /fix-issue 123` загружает оба skills и передает конечный текст `123` как `$ARGUMENTS` каждому из них.

668 669 

669Claude Code расширяет первый skill плюс до пяти дополнительных, сложенных после него. Расширение останавливается на первом токене, который не является встроенным skill, вызываемым пользователем, поэтому skill, который запускается как [подагент fork](#run-skills-in-a-subagent), такой как [`/code-review`](/docs/ru/code-review#review-a-diff-locally), или тот, чьи аргументы сами могут начинаться с команды slash, такой как `/loop`, также заканчивается там. Этот токен и все, что после него, становятся текстом аргумента для каждого расширенного skill. `/code-review` запускается как подагент fork с v2.1.218; на более ранних версиях он запускался встроенным и складывался.670Claude Code расширяет первый skill плюс до пяти дополнительных, сложенных после него. Расширение останавливается на первом токене, который не является встроенным skill, вызываемым пользователем, поэтому skill, который запускается как [подагент fork](#run-skills-in-a-subagent), такой как [`/code-review`](/docs/ru/code-review#review-a-diff-locally), или тот, чьи аргументы сами могут начинаться с команды slash, такой как `/loop`, также заканчивается там. Этот токен и все, что после него, становятся текстом аргумента для каждого расширенного skill. `/code-review` запускается как подагент fork с v2.1.218; на более ранних версиях он запускался встроенным и складывался.

670 671 


693```694```

694 695 

695<h2 id="advanced-patterns">696<h2 id="advanced-patterns">

696 Продвинутые паттерны697 Продвинутые приёмы

697</h2>698</h2>

698 699 

699<h3 id="inject-dynamic-context">700<h3 id="inject-dynamic-context">

700 Внедрение динамического контекста701 Внедрение динамического контекста

701</h3>702</h3>

702 703 

703Синтаксис `` !`<command>` `` запускает команды оболочки перед отправкой содержимого навыка Claude. Вывод команды заменяет заполнитель, поэтому Claude получает фактические данные, а не саму команду. Claude Code не запускает эти команды на вашей машине, когда навык [синхронизирован с вашего аккаунта claude.ai](#how-claude-code-handles-the-body-of-a-synced-skill). Это ограничение требует Claude Code v2.1.228 или позже.704Синтаксис `` !`<command>` `` выполняет shell-команды до того, как содержимое скилла будет отправлено Claude. Вывод команды заменяет заполнитель, поэтому Claude получает реальные данные, а не саму команду. Claude Code не выполняет эти команды на вашем компьютере, если скилл [синхронизирован из вашей учётной записи claude.ai](#how-claude-code-handles-the-body-of-a-synced-skill). Это ограничение требует Claude Code v2.1.228 или новее.

704 705 

705Этот навык суммирует pull request, получая живые данные PR с помощью GitHub CLI. Команды `` !`gh pr diff` `` и другие запускаются первыми, и их вывод вставляется в подсказку:706Этот скилл кратко описывает pull request, получая актуальные данные PR с помощью GitHub CLI. Команда `` !`gh pr diff` `` и другие команды выполняются первыми, и их вывод вставляется в промпт:

706 707 

707```yaml theme={null}708```yaml theme={null}

708---709---


722Summarize this pull request...723Summarize this pull request...

723```724```

724 725 

725Подстановка выполняется один раз над исходным файлом. Вывод команды вставляется как простой текст и не переканализируется для дальнейших заполнителей `` !`<command>` ``, поэтому команда не может выдать заполнитель для последующего прохода расширения.726Подстановка выполняется один раз по исходному файлу. Вывод команды вставляется как обычный текст и повторно не сканируется на наличие других заполнителей `` !`<command>` ``, поэтому команда не может вывести заполнитель, который раскрылся бы при последующем проходе.

726 727 

727Встроенная форма распознается только когда `!` появляется в начале строки или сразу после пробела. Если `!` следует за другим символом, как в `` KEY=!`cmd` ``, заполнитель остается буквальным текстом и команда не запускается.728Встроенная форма распознаётся, только если `!` стоит в начале строки или сразу после пробельного символа. Если `!` следует за другим символом, как в `` KEY=!`cmd` ``, заполнитель остаётся буквальным текстом, и команда не выполняется.

728 729 

729Для многострочных команд используйте блок кода в ограде, открытый с ` ```! ` вместо встроенной формы:730Для многострочных команд используйте вместо встроенной формы блок кода, открытый с помощью ` ```! `:

730 731 

731````markdown theme={null}732````markdown theme={null}

732## Environment733## Environment


736```737```

737````738````

738 739 

739Чтобы отключить это поведение для навыков и пользовательских команд из источников пользователя, проекта, плагина или [additional-directory](#skills-from-additional-directories), установите `"disableSkillShellExecution": true` в [settings](/docs/ru/settings). Каждая команда заменяется на `[shell command execution disabled by policy]` вместо запуска. Встроенные и управляемые навыки не затрагиваются. Этот параметр наиболее полезен в [managed settings](/docs/ru/managed-settings), где пользователи не могут его переопределить.740Чтобы отключить это поведение для скиллов и пользовательских команд из пользовательских, проектных, плагинных источников или источников [дополнительных каталогов](#skills-from-additional-directories), задайте `"disableSkillShellExecution": true` в [настройках](/docs/ru/settings). Вместо выполнения каждая команда заменяется на `[shell command execution disabled by policy]`. На встроенные и управляемые скиллы это не влияет. Эта настройка наиболее полезна в [управляемых настройках](/docs/ru/managed-settings), где пользователи не могут её переопределить.

740 741 

741Claude Code никогда не запускает эти команды на вашей машине, когда они появляются в навыках [синхронизированных с вашего аккаунта claude.ai](#how-synced-skills-behave), независимо от этого параметра. Это ограничение требует Claude Code v2.1.228 или позже. [How Claude Code handles the body of a synced skill](#how-claude-code-handles-the-body-of-a-synced-skill) говорит, что Claude получает вместо команды в каждом виде сеанса.742Claude Code никогда не выполняет эти команды на вашем компьютере, если они встречаются в скиллах, [синхронизированных из вашей учётной записи claude.ai](#how-synced-skills-behave), независимо от этой настройки. Это ограничение требует Claude Code v2.1.228 или новее. В разделе [Как Claude Code обрабатывает тело синхронизированного скилла](#how-claude-code-handles-the-body-of-a-synced-skill) описано, что Claude получает вместо команды в каждом типе сессии.

742 743 

743<Tip>744<Tip>

744 Чтобы запросить более глубокое рассуждение при запуске навыка, включите `ultrathink` где-нибудь в содержимое навыка. См. [Use ultrathink for one-off deep reasoning](/docs/ru/model-config#use-ultrathink-for-one-off-deep-reasoning).745 Чтобы запросить более глубокие рассуждения при запуске скилла, включите `ultrathink` в любом месте содержимого скилла. См. [Использование ultrathink для разового глубокого рассуждения](/docs/ru/model-config#use-ultrathink-for-one-off-deep-reasoning).

745</Tip>746</Tip>

746 747 

747<h4 id="how-injected-commands-run">748<h4 id="how-injected-commands-run">

748 Как запускаются внедренные команды749 Как выполняются внедрённые команды

749</h4>750</h4>

750 751 

751Claude Code выбирает инструмент, который запускает внедренные команды навыка, из ключа `shell` в frontmatter навыка и вашей среды. Каждая комбинация запускает команды через инструмент Bash или инструмент PowerShell, кроме одной, которая полностью не проходит вызов:752Claude Code выбирает инструмент для выполнения внедрённых команд скилла на основе ключа `shell` во frontmatter скилла и вашего окружения. При любой комбинации команды выполняются через инструмент Bash или инструмент PowerShell, кроме одной, при которой вызов сразу завершается ошибкой:

752 753 

753* `shell: powershell`, с включенным [инструментом PowerShell](/docs/ru/tools-reference#powershell-tool): команды запускаются через инструмент PowerShell.754* `shell: powershell` при включённом [инструменте PowerShell](/docs/ru/tools-reference#powershell-tool): команды выполняются через инструмент PowerShell.

754* `shell: bash` когда bash недоступен: вызов не проходит перед запуском любой команды. Это происходит на Windows без Git Bash. Claude Code показывает ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``.755* `shell: bash`, когда bash недоступен: вызов завершается ошибкой до выполнения какой-либо команды. Так происходит в Windows без Git Bash. Claude Code показывает ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``.

755* Любая другая комбинация: команды запускаются через инструмент Bash, когда bash доступен. Когда его нет, они запускаются через инструмент PowerShell.756* Любая другая комбинация: команды выполняются через инструмент Bash, если bash доступен. Если нет — через инструмент PowerShell.

756 757 

757Каждый инструмент запускает команды так же, как он запускает собственные команды оболочки Claude. Они совместно используют рабочий каталог, тайм-аут и обработку вывода:758Любой из инструментов выполняет команды так же, как собственные shell-команды Claude. У них общий рабочий каталог, таймаут и обработка вывода:

758 759 

759* **Рабочий каталог**: Claude Code запускает каждую команду в текущем рабочем каталоге оболочки сеанса. Этот каталог перемещается, когда Claude запускает `cd`. Используйте [`${CLAUDE_SKILL_DIR}` или `${CLAUDE_PROJECT_DIR}`](#available-string-substitutions) в путях, которые должны разрешаться одинаково каждый раз.760* **Рабочий каталог**: Claude Code выполняет каждую команду в текущем рабочем каталоге оболочки сессии. Этот каталог меняется, когда Claude выполняет `cd`. Используйте [`${CLAUDE_SKILL_DIR}` или `${CLAUDE_PROJECT_DIR}`](#available-string-substitutions) в путях, которые должны каждый раз разрешаться одинаково.

760* **stderr**: с оболочкой `bash` по умолчанию Claude Code объединяет stderr в stdout. Все, что команда записывает в stderr, появляется во внедренном тексте.761* **stderr**: при оболочке `bash` по умолчанию Claude Code объединяет stderr со stdout. Всё, что команда пишет в stderr, появляется во внедрённом тексте.

761* **Тайм-аут**: каждая команда запускается под тайм-аутом по умолчанию инструмента Bash в 2 минуты [timeout](/docs/ru/tools-reference#timeout-and-output-limits). Когда инструмент Bash [перемещает команду с истекшим тайм-аутом в фоновый режим](/docs/ru/tools-reference#foreground-commands-that-move-to-the-background), навык все еще отображается. Внедренный текст сообщает о перемещении и называет фоновую задачу и файл, собирающий вывод команды. Когда команда — это та, которую инструмент Bash никогда не переводит в фоновый режим автоматически, Claude Code убивает ее при тайм-ауте. Этот отказ [прерывает вызов](#when-an-injected-command-fails).762* **Таймаут**: каждая команда выполняется с [таймаутом](/docs/ru/tools-reference#timeout-and-output-limits) инструмента Bash по умолчанию — 2 минуты. Когда инструмент Bash [переводит команду с истёкшим таймаутом в фон](/docs/ru/tools-reference#foreground-commands-that-move-to-the-background), скилл всё равно отображается. Внедрённый текст сообщает о переводе в фон и называет фоновую задачу и файл, в который собирается вывод команды. Если это команда, которую инструмент Bash никогда не переводит в фон автоматически, Claude Code завершает её по таймауту. Такой сбой [прерывает вызов](#when-an-injected-command-fails).

762* **Размер вывода**: вывод, превышающий встроенный потолок инструмента Bash, поступает как путь к файлу плюс краткий предпросмотр, а не усеченный текст. [Output limits](/docs/ru/tools-reference#output-limits) охватывает потолок и способы регулировки каждой границы.763* **Размер вывода**: вывод, превышающий встроенный предел инструмента Bash, поступает в виде пути к файлу и короткого предпросмотра, а не усечённого текста. В разделе [Ограничения вывода](/docs/ru/tools-reference#output-limits) описан этот предел и то, как настроить каждую границу.

763 764 

764Инструмент PowerShell применяет то же поведение тайм-аута, фонового режима и потолка вывода к командам, которые он запускает. Подробности см. в разделе [инструмент PowerShell](/docs/ru/tools-reference#powershell-tool).765Инструмент PowerShell применяет то же поведение таймаута, перевода в фон и предела вывода к выполняемым им командам. Подробности см. в разделе [Инструмент PowerShell](/docs/ru/tools-reference#powershell-tool).

765 766 

766<h4 id="when-an-injected-command-fails">767<h4 id="when-an-injected-command-fails">

767 Когда внедренная команда не выполняется768 Когда внедрённая команда завершается ошибкой

768</h4>769</h4>

769 770 

770Неудачная команда прерывает весь вызов навыка, а не только свой собственный заполнитель. Claude никогда не видит содержимое навыка для этого вызова. Прерывание показывает `Shell command failed for pattern "..."`. Сообщение об ошибке включает вывод команды под `[stderr]`.771Неудачная команда прерывает весь вызов скилла, а не только собственный заполнитель. Claude так и не видит содержимое скилла для этого вызова. При прерывании отображается `Shell command failed for pattern "..."`. Сообщение об ошибке включает вывод команды под `[stderr]`.

771 772 

772С оболочкой `bash` по умолчанию любой ненулевой код выхода считается отказом. Применяется одно исключение: Claude Code рассматривает код выхода 1 из [команд поиска и сравнения](/docs/ru/tools-reference#output-limits) как нормальный результат и внедряет их вывод. Коды выхода 2 или выше не проходят даже для этих команд.773При оболочке `bash` по умолчанию любой ненулевой код выхода считается ошибкой. Есть одно исключение: Claude Code считает код выхода 1 от [команд поиска и сравнения](/docs/ru/tools-reference#output-limits) обычным результатом и внедряет их вывод. Коды выхода 2 и выше приводят к ошибке даже для этих команд.

773 774 

774Какие команды получают исключение, зависит от оболочки:775На какие команды распространяется исключение, зависит от оболочки:

775 776 

776* Оболочка `bash` по умолчанию: команды, перечисленные в [Output limits](/docs/ru/tools-reference#output-limits)777* Оболочка `bash` по умолчанию: команды, перечисленные в разделе [Ограничения вывода](/docs/ru/tools-reference#output-limits)

777* `shell: powershell`, когда включен инструмент PowerShell: [другой набор](/docs/ru/tools-reference#shell-selection-in-settings-hooks-and-skills), который включает `grep` и `git diff`, но не `find` или `diff`778* `shell: powershell` при включённом инструменте PowerShell: [другой набор](/docs/ru/tools-reference#shell-selection-in-settings-hooks-and-skills), который включает `grep` и `git diff`, но не `find` или `diff`

778 779 

779С оболочкой `bash` по умолчанию добавьте `|| true` к любой другой команде, которая, как вы ожидаете, выйдет с ненулевым кодом. Скрипт проверки, который выходит с кодом 1 при обнаружении проблем, является одним примером.780При оболочке `bash` по умолчанию добавляйте `|| true` к любой другой команде, которая, как вы ожидаете, завершится с ненулевым кодом. Пример — скрипт проверки, который завершается с кодом 1, если находит проблемы.

780 781 

781<h4 id="permission-checks-on-injected-commands">782<h4 id="permission-checks-on-injected-commands">

782 Проверки разрешений для внедренных команд783 Проверка разрешений для внедрённых команд

783</h4>784</h4>

784 785 

785Внедренные команды никогда не запрашивают разрешение во время отображения навыка. Claude Code проверяет каждую из них против ваших [правил разрешений](/docs/ru/permissions) сначала. Команда, которой соответствует правило deny, прерывает вызов с `Shell command permission check failed for pattern "..."`.786Внедрённые команды никогда не запрашивают разрешение во время отображения скилла. Claude Code сначала проверяет каждую из них по вашим [правилам разрешений](/docs/ru/permissions). Команда, соответствующая правилу запрета, прерывает вызов с ошибкой `Shell command permission check failed for pattern "..."`.

786 787 

787Вне [авторежима](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), когда проверка разрешений команды возвращает что-либо, кроме allow, Claude Code прерывает вызов с той же ошибкой. Это касается и правила, которое обычно запрашивало бы у вас подтверждение. Чтобы команда без совпадающего правила не прерывала вызов, заранее разрешите ее с помощью [`allowed-tools`](#pre-approve-tools-for-a-skill). Если ваша организация ограничивает правила разрешений управляемыми настройками, см. [Когда применяются только управляемые правила разрешений](#when-only-managed-permission-rules-apply). Правила deny и ask по-прежнему имеют приоритет над `allowed-tools`. См. [Управление разрешениями](/docs/ru/permissions#manage-permissions).788Вне [авторежима](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), если проверка разрешений команды возвращает что-либо, кроме разрешения, Claude Code прерывает вызов с той же ошибкой. Это относится и к правилу, которое обычно запросило бы подтверждение у вас. Чтобы несовпадающая команда не прерывала вызов, заранее разрешите её с помощью [`allowed-tools`](#pre-approve-tools-for-a-skill). Если ваша организация ограничивает правила разрешений управляемыми настройками, см. [Когда применяются только управляемые правила разрешений](#when-only-managed-permission-rules-apply). Правила запрета и запроса по-прежнему имеют приоритет над `allowed-tools`. См. [Управление разрешениями](/docs/ru/permissions#manage-permissions).

788 789 

789В режиме auto команда, которая в противном случае требовала бы вашего одобрения, не прерывает вызов. Навык загружается с инструкцией, указывающей Claude запустить команду первой, и собственный вызов Claude затем проходит через [обычные проверки режима auto](/docs/ru/permission-modes#how-the-classifier-evaluates-actions). Вызов все еще прерывается в [разветвленном навыке](#run-skills-in-a-subagent), который устанавливает `agent`, и в сеансе, где Claude не имеет [инструмента оболочки, который запускает внедренные команды](#how-injected-commands-run).790В авторежиме команда, которой в противном случае потребовалось бы ваше подтверждение, не прерывает вызов. Скилл загружается с инструкцией, предписывающей Claude сначала выполнить команду, и собственный вызов Claude затем проходит [обычные проверки авторежима](/docs/ru/permission-modes#how-the-classifier-evaluates-actions). Вызов всё же прерывается в [ответвлённом скилле](#run-skills-in-a-subagent), который задаёт `agent`, а также в сессии, где у Claude нет [инструмента оболочки, выполняющего внедрённые команды](#how-injected-commands-run).

790 791 

791<h3 id="run-skills-in-a-subagent">792<h3 id="run-skills-in-a-subagent">

792 Запуск навыков в подагенте793 Запуск скиллов в субагенте

793</h3>794</h3>

794 795 

795Добавьте `context: fork` в ваш frontmatter, когда вы хотите, чтобы навык запускался в изоляции. Claude Code запускает новый подагент типа, установленного в поле `agent`, и дает ему содержимое навыка в качестве его подсказки. Подагент не видит историю вашего разговора, поэтому инструкции навыка должны быть самостоятельными.796Добавьте `context: fork` во frontmatter, если хотите, чтобы скилл выполнялся изолированно. Claude Code запускает новый субагент типа, заданного в поле `agent`, и передаёт ему содержимое скилла в качестве промпта. Субагент не видит историю вашего диалога, поэтому инструкции скилла должны быть самодостаточными.

796 797 

797<Note>798<Note>

798 Несмотря на название, навык с `context: fork` не запускается в [fork текущего разговора](/docs/ru/sub-agents#fork-the-current-conversation), который передал бы подагенту все, что вы обсуждали до сих пор. Когда задача зависит от этой истории, вместо использования `context: fork` разветвите разговор.799 Несмотря на название, скилл с `context: fork` не выполняется в [ответвлении текущего диалога](/docs/ru/sub-agents#fork-the-current-conversation), которое передало бы субагенту всё, что вы успели обсудить. Если задача зависит от этой истории, ответвите диалог вместо использования `context: fork`.

799</Note>800</Note>

800 801 

801Разветвленный подагент запускается в [фоновом режиме](/docs/ru/sub-agents#run-subagents-in-foreground-or-background): вы продолжаете работать, пока он запускается, и его результат поступает в ваш разговор при завершении. Установите `background: false` в frontmatter, чтобы вместо этого дождаться результата в ходу, который вызвал навык. До v2.1.218 разветвленные навыки всегда блокировали ход до завершения.802Ответвлённый субагент выполняется в [фоне](/docs/ru/sub-agents#run-subagents-in-foreground-or-background): вы продолжаете работать, пока он выполняется, а его результат появляется в вашем диалоге по завершении. Задайте `background: false` во frontmatter, чтобы вместо этого ждать результата в том ходе, который вызвал скилл. До v2.1.218 ответвлённые скиллы всегда блокировали ход до своего завершения.

802 803 

803Claude Code также ждет результата, даже когда навык не устанавливает `background: false`, в случаях, подобных этим:804Claude Code также ждёт результата, даже если скилл не задаёт `background: false`, в таких случаях:

804 805 

805* В неинтерактивном режиме с флагом `-p` или Agent SDK806* В неинтерактивном режиме, с флагом `-p` или в Agent SDK

806* Когда вы устанавливаете [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/ru/env-vars) на `1`, что также отключает все другие функции фоновых задач807* Когда вы задаёте [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/ru/env-vars) равным `1`, что также отключает все остальные функции фоновых задач

807* Когда вы вызываете разветвленный навык, пока более ранний вызов того же навыка все еще выполняется808* Когда вы вызываете ответвлённый скилл, пока предыдущий вызов того же скилла ещё выполняется

808* Когда [запланированная задача](/docs/ru/scheduled-tasks) срабатывает с навыком в качестве его подсказки809* Когда срабатывает [запланированная задача](/docs/ru/scheduled-tasks) со скиллом в качестве промпта

809 810 

810Разветвленный fork также запускается с [более узким набором инструментов, который применяется к фоновым подагентам](/docs/ru/sub-agents#run-subagents-in-foreground-or-background): подагент навыка — это обычный тип агента, поэтому исключение для подагентов, которые разветвляют разговор, его не охватывает. Если шаги вашего навыка зависят от инструмента вне этого набора, установите `background: false`, чтобы сохранить полный набор инструментов.811Ответвление, выполняемое в фоне, также работает с [более узким набором инструментов, который применяется к фоновым субагентам](/docs/ru/sub-agents#run-subagents-in-foreground-or-background): субагент скилла — это обычный тип агента, поэтому на него не распространяется исключение для субагентов, ответвляющих диалог. Если шаги вашего скилла зависят от инструмента вне этого набора, задайте `background: false`, чтобы сохранить полный набор инструментов.

811 812 

812Разветвленный навык, который запускается в фоновом режиме, применяет свои правки вне [контрольных точек](/docs/ru/checkpointing) вашего сеанса, поэтому `/rewind` их не отменяет; используйте git для их отката.813Ответвлённый скилл, выполняемый в фоне, применяет свои правки вне [чекпоинтов](/docs/ru/checkpointing) вашей сессии, поэтому `/rewind` их не отменяет; для их отката используйте git.

813 814 

814<Warning>815<Warning>

815 `context: fork` имеет смысл только для навыков с явными инструкциями. Если ваш навык содержит рекомендации, такие как "используйте эти соглашения API" без задачи, подагент получает рекомендации, но не имеет действенной подсказки и возвращается без значимого вывода.816 `context: fork` имеет смысл только для скиллов с явными инструкциями. Если ваш скилл содержит рекомендации вроде «используйте эти соглашения API» без задачи, субагент получает рекомендации, но не получает промпта, на основе которого можно действовать, и возвращается без значимого результата.

816</Warning>817</Warning>

817 818 

818Навыки и [подагенты](/docs/ru/sub-agents) работают вместе в двух направлениях:819Скиллы и [субагенты](/docs/ru/sub-agents) взаимодействуют в двух направлениях:

819 820 

820| Подход | Системная подсказка | Задача | Также загружает |821| Подход | Системный промпт | Задача | Также загружается |

821| :- | :- | :- | :- |822| :- | :- | :- | :- |

822| Навык с `context: fork` | Из типа агента | Содержимое SKILL.md | CLAUDE.md, согласно [startup context](/docs/ru/sub-agents#what-loads-at-startup) агента |823| Скилл с `context: fork` | Из типа агента | Содержимое SKILL.md | CLAUDE.md в соответствии с [контекстом запуска](/docs/ru/sub-agents#what-loads-at-startup) агента |

823| Подагент с полем `skills` | Тело markdown подагента | Сообщение делегирования Claude | Предварительно загруженные навыки + CLAUDE.md, согласно [startup context](/docs/ru/sub-agents#what-loads-at-startup) подагента |824| Субагент с полем `skills` | Тело markdown субагента | Сообщение Claude о делегировании | Предзагруженные скиллы + CLAUDE.md в соответствии с [контекстом запуска](/docs/ru/sub-agents#what-loads-at-startup) субагента |

824 825 

825С `context: fork` вы пишете задачу в своем навыке и выбираете тип агента для ее выполнения. Встроенные агенты Explore и Plan [пропускают CLAUDE.md и статус git](/docs/ru/sub-agents#what-loads-at-startup), чтобы сохранить их контекст небольшим, поэтому разветвленный навык, использующий `agent: Explore`, видит только содержимое SKILL.md и собственную системную подсказку агента. Для обратного варианта, где вы определяете пользовательский подагент, который использует навыки в качестве справочного материала, см. [Подагенты](/docs/ru/sub-agents#preload-skills-into-subagents).826С `context: fork` вы пишете задачу в скилле и выбираете тип агента для её выполнения. Встроенные агенты Explore и Plan [пропускают CLAUDE.md и git status](/docs/ru/sub-agents#what-loads-at-startup), чтобы их контекст оставался небольшим, поэтому ответвлённый скилл с `agent: Explore` видит только содержимое SKILL.md и собственный системный промпт агента. Для обратного случая, когда вы определяете пользовательский субагент, использующий скиллы как справочный материал, см. [Субагенты](/docs/ru/sub-agents#preload-skills-into-subagents).

826 827 

827<h4 id="example-research-skill-using-explore-agent">828<h4 id="example-research-skill-using-explore-agent">

828 Пример: навык исследования с использованием агента Explore829 Пример: исследовательский скилл с агентом Explore

829</h4>830</h4>

830 831 

831Этот навык запускает исследование в разветвленном агенте Explore. Содержимое навыка становится задачей, а агент предоставляет инструменты только для чтения, оптимизированные для исследования кодовой базы:832Этот скилл выполняет исследование в ответвлённом агенте Explore. Содержимое скилла становится задачей, а агент предоставляет инструменты только для чтения, оптимизированные для изучения кодовой базы:

832 833 

833```yaml theme={null}834```yaml theme={null}

834---835---


8453. Summarize findings with specific file references8463. Summarize findings with specific file references

846```847```

847 848 

848Когда этот навык запускается:849Когда этот скилл запускается:

849 850 

8501. Создается новый изолированный контекст8511. Создаётся новый изолированный контекст

8512. Подагент получает содержимое навыка в качестве его подсказки (инструкции "Research \$ARGUMENTS thoroughly")8522. Субагент получает содержимое скилла в качестве промпта (инструкции «Research \$ARGUMENTS thoroughly»)

8523. Поле `agent` определяет среду выполнения (модель, инструменты и разрешения)8533. Поле `agent` определяет среду выполнения (модель, инструменты и разрешения)

8534. Подагент суммирует свои результаты и возвращает их в ваш основной разговор при завершении8544. Субагент обобщает свои результаты и возвращает их в ваш основной диалог по завершении

854 855 

855Поле `agent` указывает, какую конфигурацию подагента использовать. Опции включают встроенные агенты (`Explore`, `Plan`, `general-purpose`) или любой пользовательский подагент из `.claude/agents/`. Если опущено, использует `general-purpose`.856Поле `agent` указывает, какую конфигурацию субагента использовать. Варианты включают встроенных агентов (`Explore`, `Plan`, `general-purpose`) или любой пользовательский субагент из `.claude/agents/`. Если поле не указано, используется `general-purpose`.

856 857 

857<h3 id="restrict-claude’s-skill-access">858<h3 id="restrict-claude’s-skill-access">

858 Ограничение доступа Claude к навыкам859 Ограничение доступа Claude к скиллам

859</h3>860</h3>

860 861 

861По умолчанию Claude может вызывать любой скилл, у которого не установлено `disable-model-invocation: true`. Скиллы, определяющие [`allowed-tools`](#pre-approve-tools-for-a-skill), предоставляют Claude доступ к этим инструментам без подтверждения каждого использования в течение хода, вызвавшего скилл; это разрешение сбрасывается, когда вы отправляете следующее сообщение. Ваши [настройки разрешений](/docs/ru/permissions) по-прежнему определяют базовое поведение подтверждения для всех остальных инструментов. Несколько встроенных команд также доступны через инструмент Skill, включая `/init` и `/security-review`. Другие встроенные команды, такие как `/compact`, — нет.862По умолчанию Claude может вызывать любой скилл, у которого не задано `disable-model-invocation: true`. Скиллы, определяющие [`allowed-tools`](#pre-approve-tools-for-a-skill), предоставляют Claude доступ к этим инструментам без подтверждения каждого использования в течение хода, вызвавшего скилл; это разрешение снимается, когда вы отправляете следующее сообщение. Ваши [настройки разрешений](/docs/ru/permissions) по-прежнему определяют базовое поведение подтверждения для всех остальных инструментов. Несколько встроенных команд также доступны через инструмент Skill, включая `/init` и `/security-review`. Другие встроенные команды, такие как `/compact`, — нет.

862 863 

863Три способа контролировать, какие навыки может вызывать Claude:864Три способа управлять тем, какие скиллы может вызывать Claude:

864 865 

865**Отключить все навыки** отклонив инструмент Skill в `/permissions`:866**Отключите все скиллы**, запретив инструмент Skill в `/permissions`:

866 867 

867```text theme={null}868```text theme={null}

868# Add to deny rules:869# Add to deny rules:

869Skill870Skill

870```871```

871 872 

872**Разрешить или запретить определенные навыки** с помощью [правил разрешений](/docs/ru/permissions):873**Разрешите или запретите конкретные скиллы** с помощью [правил разрешений](/docs/ru/permissions):

873 874 

874```text theme={null}875```text theme={null}

875# Allow only specific skills876# Allow only specific skills


880Skill(deploy *)881Skill(deploy *)

881```882```

882 883 

883Синтаксис разрешений: `Skill(name)` для точного совпадения, `Skill(name *)` для совпадения префикса с любыми аргументами.884Синтаксис разрешений: `Skill(name)` для точного совпадения, `Skill(name *)` для совпадения по префиксу с любыми аргументами.

884 885 

885В таблице показано, что правило `deny` блокирует помимо имени, которое вы пишете, в зависимости от вида имени в правиле.886В таблице показано, что блокирует правило `deny` помимо указанного вами имени, в зависимости от вида имени в правиле.

886 887 

887| Ваши имена в правиле `deny` | Пример правила | Claude Code также блокирует |888| Ваше правило `deny` называет | Пример правила | Claude Code также блокирует |

888| :- | :- | :- |889| :- | :- | :- |

889| Псевдоним | `Skill(review)` | Встроенный `/code-review` через его псевдоним `/review` |890| Псевдоним | `Skill(review)` | Встроенный `/code-review` через его псевдоним `/review` |

890| Неквалифицированное имя | `Skill(deploy)` | [Вложенный навык](#where-skills-live), указанный как `apps/web:deploy` |891| Неквалифицированное имя | `Skill(deploy)` | [Вложенный скилл](#where-skills-live), указанный как `apps/web:deploy` |

891| [Навык, синхронизированный с claude.ai](#how-synced-skills-behave) | `Skill(anthropic-skills:deploy)` | Этот навык, когда Claude Desktop доставляет его в сеанс как плагин |892| [Скилл, синхронизированный из claude.ai](#how-synced-skills-behave) | `Skill(anthropic-skills:deploy)` | Этот скилл, когда Claude Desktop доставляет его в сессию как плагин |

892| Форма плагина синхронизированного навыка | `Skill(deploy:deploy)` | Синхронизированный навык |893| Плагинная форма синхронизированного скилла | `Skill(deploy:deploy)` | Синхронизированный скилл |

893| Навык в [форме параметра](/docs/ru/permissions#match-by-input-parameter) | `Skill(skill:deploy)` | Навык, какое бы из его имен Claude не вызывал, включая его псевдоним и отображаемое имя |894| Скилл в [форме с параметром](/docs/ru/permissions#match-by-input-parameter) | `Skill(skill:deploy)` | Скилл, под каким бы из его имён Claude его ни вызывал, включая псевдоним и отображаемое имя |

894 895 

895До v2.1.260 Claude Code не блокировал вложенный навык, указанный под его квалифицированным именем, когда правило deny называло только неквалифицированное имя.896До v2.1.260 Claude Code не блокировал вложенный скилл, указанный под квалифицированным именем, если правило запрета называло только неквалифицированное имя.

896 897 

897Claude Code совпадает с правилом `allow` только с собственным именем навыка и именем в вызове Claude. Чтобы одобрить [синхронизированный навык](#how-synced-skills-behave) без подсказки, назовите его внутри его [зарезервированного пространства имен](#names-reserved-for-synced-skills):898Claude Code сопоставляет правило `allow` только с собственным именем скилла и именем в вызове Claude. Чтобы разрешить [синхронизированный скилл](#how-synced-skills-behave) без запроса, укажите его внутри его [зарезервированного пространства имён](#names-reserved-for-synced-skills):

898 899 

899* `Skill(anthropic-skills:pdf)` одобряет синхронизированный навык `pdf`900* `Skill(anthropic-skills:pdf)` разрешает синхронизированный скилл `pdf`

900* `Skill(anthropic-skills *)` одобряет каждый синхронизированный навык901* `Skill(anthropic-skills *)` разрешает все синхронизированные скиллы

901* `Skill(anthropic *)` не охватывает `anthropic-skills:pdf`, потому что префикс вне пространства имен не совпадает с именами внутри него902* `Skill(anthropic *)` не охватывает `anthropic-skills:pdf`, потому что префикс вне пространства имён не совпадает с именами внутри него

902 903 

903**Скрыть отдельные навыки** добавив `disable-model-invocation: true` в их frontmatter. Это полностью удаляет навык из контекста Claude.904**Скройте отдельные скиллы**, добавив `disable-model-invocation: true` в их frontmatter. Это полностью удаляет скилл из контекста Claude.

904 905 

905<Note>906<Note>

906 С `user-invocable: false` вы не можете вызвать навык, но Claude все еще может. Чтобы предотвратить вызов Claude через инструмент Skill, установите `disable-model-invocation: true`.907 С `user-invocable: false` вы не можете вызвать скилл, но Claude по-прежнему может. Чтобы Claude не вызывал его через инструмент Skill, задайте `disable-model-invocation: true`.

907</Note>908</Note>

908 909 

909<h3 id="override-skill-visibility-from-settings">910<h3 id="override-skill-visibility-from-settings">

910 Переопределение видимости навыка из параметров911 Переопределение видимости скиллов из настроек

911</h3>912</h3>

912 913 

913Параметр `skillOverrides` управляет видимостью навыка из ваших [параметров](/docs/ru/settings) вместо собственного frontmatter навыка. Используйте его для навыков, чей SKILL.md вы не хотите редактировать, например для тех, которые проверены в общем репозитории проекта. Меню `/skills` пишет его для вас: выделите навык и нажмите `Space` для циклирования состояний, затем `Esc` для сохранения в `.claude/settings.local.json`.914Настройка `skillOverrides` управляет видимостью скиллов из ваших [настроек](/docs/ru/settings), а не из frontmatter самого скилла. Используйте её для скиллов, SKILL.md которых вы не хотите редактировать, например для тех, что хранятся в общем репозитории проекта. Меню `/skills` записывает её за вас: выделите скилл и нажимайте `Space` для переключения состояний, затем `Esc`, чтобы сохранить в `.claude/settings.local.json`.

914 915 

915Каждый ключ — это имя навыка, и каждое значение — одно из четырех состояний:916Каждый ключ — это имя скилла, а каждое значение — одно из четырёх состояний:

916 917 

917| Значение | Указано Claude | В меню `/` |918| Значение | Показывается Claude | В меню `/` |

918| :- | :- | :- |919| :- | :- | :- |

919| `"on"` | Имя и описание | Да |920| `"on"` | Имя и описание | Да |

920| `"name-only"` | Только имя | Да |921| `"name-only"` | Только имя | Да |

921| `"user-invocable-only"` | Скрыто | Да |922| `"user-invocable-only"` | Скрыт | Да |

922| `"off"` | Скрыто | Скрыто |923| `"off"` | Скрыт | Скрыт |

923 924 

924Меню `/skills` обозначает состояние `"user-invocable-only"` как `user-only`.925В меню `/skills` состояние `"user-invocable-only"` обозначено как `user-only`.

925 926 

926Начиная с v2.1.199, `"off"` также скрывает навык из списков команд, объявленных [Remote Control](/docs/ru/remote-control) клиентам и вызывающим [Agent SDK](/docs/ru/agent-sdk/skills#discover-available-commands), в дополнение к терминальному меню `/`. Вызов скрытого навыка по его полному имени все равно возвращает ошибку `skillOverrides` вместо его запуска.927`"off"` также скрывает скилл из списков команд, предоставляемых клиентам [Remote Control](/docs/ru/remote-control) и вызывающим сторонам [Agent SDK](/docs/ru/agent-sdk/skills#discover-available-commands), помимо меню `/` в терминале. Вызов скрытого скилла по его полному имени возвращает ошибку `skillOverrides` вместо его выполнения.

927 928 

928Навык, отсутствующий в `skillOverrides`, рассматривается как `"on"`. Пример ниже сворачивает один навык до его имени и полностью отключает другой:929Скилл, отсутствующий в `skillOverrides`, считается `"on"`. В примере ниже один скилл сворачивается до имени, а другой полностью отключается:

929 930 

930```json theme={null}931```json theme={null}

931{932{


936}937}

937```938```

938 939 

939Некоторые встроенные навыки имеют псевдонимы, такие как `checkup` для `/doctor`. Если вы установите запись `skillOverrides` под псевдонимом в [managed settings](/docs/ru/managed-settings) или в файле, который вы передаете с флагом `--settings`, Claude Code применит его к навыку за псевдонимом. Вы можете только ограничить навык дальше через псевдоним, никогда не сделать его более видимым, и если вы также установите запись под собственным именем навыка в managed settings, эта запись имеет приоритет. До v2.1.260 Claude Code не применял запись под псевдонимом к навыку в каком-либо источнике параметров.940У некоторых встроенных скиллов есть псевдонимы, например `checkup` для `/doctor`. Если вы задаёте запись `skillOverrides` под псевдонимом в [управляемых настройках](/docs/ru/managed-settings) или в файле, передаваемом с флагом `--settings`, Claude Code применяет её к скиллу, стоящему за псевдонимом. Через псевдоним скилл можно только дополнительно ограничить, но никогда не сделать более видимым, а если вы также задаёте запись под собственным именем скилла в управляемых настройках, эта запись имеет приоритет. До v2.1.260 Claude Code ни в одном источнике настроек не применял запись под псевдонимом к скиллу.

940 941 

941В пользовательских, проектных и локальных параметрах Claude Code совпадает с записями только с именами навыков. Если вы установите запись для `review` там, она применяется к навыку с именем `review`, а не к встроенному `/code-review` через его псевдоним `/review`.942В пользовательских, проектных и локальных настройках Claude Code сопоставляет записи только с именами скиллов. Если вы задаёте там запись для `review`, она применяется к скиллу с именем `review`, а не к встроенному `/code-review` через его псевдоним `/review`.

942 943 

943Навыки плагинов не затрагиваются `skillOverrides`. Управляйте ими через `/plugin` вместо этого.944`skillOverrides` не влияет на скиллы плагинов. Управляйте ими через `/plugin`.

944 945 

945<h3 id="find-unused-skills">946<h3 id="find-unused-skills">

946 Поиск неиспользуемых навыков947 Поиск неиспользуемых скиллов

947</h3>948</h3>

948 949 

949Каждый навык в [списке навыков](#skill-descriptions-are-cut-short) добавляет к вашему контексту на каждом ходу, независимо от того, использует ли Claude его когда-либо. Запустите `/skill-doctor`, чтобы увидеть, что стоит каждый из ваших навыков и как часто он используется, чтобы вы могли решить, какие из них отключить. В интерактивном сеансе отчет открывается на вкладке **Stats** менеджера `/plugin`. В [неинтерактивном режиме](/docs/ru/headless) с `-p` Claude Code печатает его как текст.950Каждый скилл в [списке скиллов](#skill-descriptions-are-cut-short) увеличивает ваш контекст на каждом ходе, независимо от того, использует ли его Claude. Выполните `/skill-doctor`, чтобы увидеть, во что обходится каждый из ваших скиллов и как часто он используется, и решить, какие из них отключить. В интерактивной сессии отчёт открывается на вкладке **Stats** менеджера `/plugin`. В [неинтерактивном режиме](/docs/ru/headless) с `-p` Claude Code выводит его как текст.

950 951 

951Отчет охватывает навыки в вашем сеансе, кроме встроенных навыков и корпоративных навыков. Он отмечает навыки в списке, которые никогда не были вызваны, и говорит, где их отключить. Из навыков, которые он говорит вам, где отключить, начните с тех, которые имеют наивысшую стоимость контекста. Отчет также перечисляет плагины, которые вы не использовали недавно.952Отчёт охватывает скиллы в вашей сессии, кроме встроенных и корпоративных скиллов. Он помечает скиллы в списке, которые ни разу не вызывались, и сообщает, где их отключить. Среди скиллов, для которых указано, где их отключить, начните с тех, у которых наибольшая стоимость контекста. В отчёте также перечислены плагины, которые вы давно не использовали.

952 953 

953`/skill-doctor` требует Claude Code v2.1.252 или позже и недоступен в сеансах, которые пропускают [получение флагов функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). Если вы запустите `/skill-doctor` через [Remote Control](/docs/ru/remote-control) со своего телефона или браузера, Claude Code ответит [`Skill usage reports are not available on this connection.`](/docs/ru/errors#skill-usage-reports-are-not-available-on-this-connection) вместо этого. Запустите `/skill-doctor` в терминале на машине, где запущен сеанс.954`/skill-doctor` требует Claude Code v2.1.252 или новее и недоступен в сессиях, пропускающих [получение флагов функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). Если вы выполняете `/skill-doctor` через [Remote Control](/docs/ru/remote-control) с телефона или в браузере, Claude Code вместо этого отвечает [`Skill usage reports are not available on this connection.`](/docs/ru/errors#skill-usage-reports-are-not-available-on-this-connection). Выполняйте `/skill-doctor` в терминале на компьютере, где запущена сессия.

954 955 

955<h2 id="evaluate-and-iterate-on-a-skill">956<h2 id="evaluate-and-iterate-on-a-skill">

956 Оценка и итерация навыка957 Оценка и итерация навыка

sub-agents.md +2 −2

Details

986 986 

987Когда что-то [обрывает ответ субагента посреди потока](/docs/ru/errors#the-response-above-may-be-incomplete), а частичный ответ содержит текст, но не содержит вызовов инструментов, Claude Code предлагает субагенту продолжить, а не завершает выполнение. Это происходит и в интерактивных сессиях. Выполнение завершается с ошибкой только после того, как эти продолжения исчерпаны.987Когда что-то [обрывает ответ субагента посреди потока](/docs/ru/errors#the-response-above-may-be-incomplete), а частичный ответ содержит текст, но не содержит вызовов инструментов, Claude Code предлагает субагенту продолжить, а не завершает выполнение. Это происходит и в интерактивных сессиях. Выполнение завершается с ошибкой только после того, как эти продолжения исчерпаны.

988 988 

989Начиная с v2.1.199, субагент, выполнение которого завершается ошибкой API, например исчерпанием лимита использования или повторяющейся ошибкой сервера, сообщает Claude об этом сбое, а не возвращает текст ошибки так, будто это результаты работы субагента. Что именно получает Claude, зависит от того, где работал субагент:989Субагент, выполнение которого завершается ошибкой API, например исчерпанием лимита использования или повторяющейся ошибкой сервера, сообщает Claude об этом сбое. Что именно получает Claude, зависит от того, где работал субагент:

990 990 

991* **Передний план**: если ограничение частоты запросов, перегрузка или ошибка сервера обрывает субагента, который уже выдал текстовый вывод, инструмент Agent возвращает этот частичный вывод с пометкой о том, что субагент был прерван и не завершил задачу. Субагент, который ничего не выдал или весь вывод которого состоял из вызовов инструментов, завершается с ошибкой [`Agent terminated early due to an API error`](/docs/ru/errors#agent-terminated-early-due-to-an-api-error), за которой следуют подробности ошибки. В v2.1.199 ограничение частоты запросов, перегрузка или ошибка сервера, обрывавшие вывод, состоящий только из вызовов инструментов, вместо этого возвращали пустой частичный результат, содержащий лишь пометку об обрыве.991* **Передний план**: если ограничение частоты запросов, перегрузка или ошибка сервера обрывает субагента, который уже выдал текстовый вывод, инструмент Agent возвращает этот частичный вывод с пометкой о том, что субагент был прерван и не завершил задачу. Субагент, который ничего не выдал или весь вывод которого состоял из вызовов инструментов, завершается с ошибкой [`Agent terminated early due to an API error`](/docs/ru/errors#agent-terminated-early-due-to-an-api-error), за которой следуют подробности ошибки. В v2.1.199 ограничение частоты запросов, перегрузка или ошибка сервера, обрывавшие вывод, состоящий только из вызовов инструментов, вместо этого возвращали пустой частичный результат, содержащий лишь пометку об обрыве.

992* **Фон**: субагент помечается как завершившийся с ошибкой, а сообщение, которое Claude получает при его завершении, называет ошибку API и включает последний вывод субагента, так что частичная работа не теряется.992* **Фон**: субагент помечается как завершившийся с ошибкой, а сообщение, которое Claude получает при его завершении, называет ошибку API и включает последний вывод субагента, так что частичная работа не теряется.


1188 1188 

1189Возобновление запускает новое выполнение агента под тем же ID, поэтому субагент, который ранее завершился с ошибкой или успешно, снова отображается как работающий в списке задач и в событиях задач Agent SDK. До v2.1.205 он продолжал показывать прежний статус ошибки или завершения, пока возобновлённое выполнение работало.1189Возобновление запускает новое выполнение агента под тем же ID, поэтому субагент, который ранее завершился с ошибкой или успешно, снова отображается как работающий в списке задач и в событиях задач Agent SDK. До v2.1.205 он продолжал показывать прежний статус ошибки или завершения, пока возобновлённое выполнение работало.

1190 1190 

1191Начиная с v2.1.199, `SendMessage` проверяет, что имя по-прежнему указывает на того же агента, которого оно достигало ранее в диалоге. Если имя занял более новый агент, например повторно порождённый фоновый агент, который использовал то же имя, Claude Code отказывает в отправке, а не доставляет сообщение не тому агенту, и ошибка сообщает, к какому агенту теперь ведёт это имя, чтобы Claude мог сменить адресата. Чтобы обратиться к прежнему агенту, пока тот ещё работает, Claude использует ID агента, полученный при его порождении. Проверка действует в пределах текущего диалога и сбрасывается при `/clear`.1191`SendMessage` проверяет, что имя по-прежнему указывает на того же агента, которого оно достигало ранее в диалоге. Если имя занял более новый агент, например повторно порождённый фоновый агент, который использовал то же имя, Claude Code отказывает в отправке, а не доставляет сообщение не тому агенту, и ошибка сообщает, к какому агенту теперь ведёт это имя, чтобы Claude мог сменить адресата. Чтобы обратиться к прежнему агенту, пока тот ещё работает, Claude использует ID агента, полученный при его порождении. Проверка действует в пределах текущего диалога и сбрасывается при `/clear`.

1192 1192 

1193Субагент воспринимает сообщения от агента, который его запустил, как обычные указания по задаче, включая корректировки посреди выполнения, и действует по ним в рамках собственных настроек разрешений. Два ограничения действуют независимо от отправителя сообщения: никакое сообщение от какого-либо агента не считается вашим подтверждением для ожидающего запроса разрешения, и никакое сообщение агента не может изменить настройки разрешений, `CLAUDE.md` или конфигурацию субагента. Дать подтверждение могут только система разрешений или ваши собственные сообщения.1193Субагент воспринимает сообщения от агента, который его запустил, как обычные указания по задаче, включая корректировки посреди выполнения, и действует по ним в рамках собственных настроек разрешений. Два ограничения действуют независимо от отправителя сообщения: никакое сообщение от какого-либо агента не считается вашим подтверждением для ожидающего запроса разрешения, и никакое сообщение агента не может изменить настройки разрешений, `CLAUDE.md` или конфигурацию субагента. Дать подтверждение могут только система разрешений или ваши собственные сообщения.

1194 1194 

ultrareview.md +1 −5

Details

134| - | - | - |134| - | - | - |

135| Pro | 3 бесплатных запуска | выставляется счет как [дополнительное использование](https://support.claude.com/ru/articles/12429409-extra-usage-for-paid-claude-plans) |135| Pro | 3 бесплатных запуска | выставляется счет как [дополнительное использование](https://support.claude.com/ru/articles/12429409-extra-usage-for-paid-claude-plans) |

136| Max | 3 бесплатных запуска | выставляется счет как [дополнительное использование](https://support.claude.com/ru/articles/12429409-extra-usage-for-paid-claude-plans) |136| Max | 3 бесплатных запуска | выставляется счет как [дополнительное использование](https://support.claude.com/ru/articles/12429409-extra-usage-for-paid-claude-plans) |

137| Team и Enterprise | нет | выставляется счет как [дополнительное использование](https://support.claude.com/ru/articles/12429409-extra-usage-for-paid-claude-plans) |

138 137 

139* **Бесплатные запуски**: три запуска Pro и Max — это одноразовое выделение на учетную запись и не обновляются.138* **Бесплатные запуски**: три запуска Pro и Max — это одноразовое выделение на учетную запись и не обновляются.

140* **Стоимость одного анализа**: после использования бесплатных запусков обычно от 5 до 25 долларов в дополнительном использовании в зависимости от размера изменения, что соответствует оценке, которую показывает диалоговое окно запуска перед каждым запуском.139* **Стоимость одного анализа**: после использования бесплатных запусков обычно от 5 до 25 долларов в дополнительном использовании в зависимости от размера изменения, что соответствует оценке, которую показывает диалоговое окно запуска перед каждым запуском.

141* **Когда запуск считается начатым**: после запуска облачной сессии. Анализ, который вы остановили рано или который не завершился, все равно использует бесплатный запуск; платный анализ выставляет счет только за ту часть, которая была выполнена.140* **Когда запуск считается начатым**: после запуска облачной сессии. Анализ, который вы остановили рано или который не завершился, все равно использует бесплатный запуск; платный анализ выставляет счет только за ту часть, которая была выполнена.

142 141 

143Поскольку ultrareview всегда выставляет счет как дополнительное использование вне бесплатных запусков, ваша учетная запись или организация должны иметь включенное дополнительное использование перед запуском платного анализа. Если дополнительное использование не включено, Claude Code блокирует запуск, и способ его включения зависит от вашего доступа к выставлению счетов:142Поскольку ultrareview вне бесплатных запусков всегда оплачивается как кредиты использования, в вашей учетной записи или организации должны быть включены кредиты использования, прежде чем вы сможете запустить платный анализ. Если кредиты не включены, Claude Code блокирует запуск. Если вы можете управлять биллингом для своей учетной записи, Claude Code направит вас к настройкам биллинга, где вы можете включить кредиты использования.

144 

145* Если вы можете управлять выставлением счетов для вашей учетной записи, Claude Code ссылает вас на параметры выставления счетов, где вы можете включить дополнительное использование.

146* В планах Team и Enterprise члены без доступа к выставлению счетов отправляют запрос из CLI, прося своего администратора включить дополнительное использование.

147 143 

148Вы также можете запустить `/usage-credits` для проверки или изменения параметра дополнительного использования.144Вы также можете запустить `/usage-credits` для проверки или изменения параметра дополнительного использования.

149 145 

Details

184 184 

185Распространенные проблемы, когда голосовой ввод не активируется или не записывает:185Распространенные проблемы, когда голосовой ввод не активируется или не записывает:

186 186 

187* **`Voice mode requires a Claude.ai account`**: вы аутентифицированы с помощью ключа API или стороннего поставщика. Запустите `/login` для входа с помощью учетной записи Claude.ai.187* **`Unknown command: /voice`**: команда `/voice` доступна, только пока активным способом входа является учетная запись claude.ai. Если вы не вошли с такой учетной записью, запустите `/login`. Если используется `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, настройка `apiKeyHelper` или [сторонний поставщик](#requirements), он имеет приоритет над входом через claude.ai, поэтому удалите его и перезапустите Claude Code.

188* **`Voice mode requires a Claude.ai account`**: Claude Code не смог найти пригодный вход через claude.ai, когда вы запустили `/voice` или начали запись. Запустите `/login`, чтобы войти снова.

188* **`Voice mode is disabled by your organization's policy`**: политика администратора вашей организации отключает голосовой ввод. Обратитесь к администратору вашей организации, чтобы подтвердить, доступен ли голосовой ввод для вашей организации.189* **`Voice mode is disabled by your organization's policy`**: политика администратора вашей организации отключает голосовой ввод. Обратитесь к администратору вашей организации, чтобы подтвердить, доступен ли голосовой ввод для вашей организации.

189* **`Microphone access is denied`**: предоставьте разрешение микрофона вашему терминалу в системных параметрах. На macOS перейдите в System Settings → Privacy & Security → Microphone и включите приложение вашего терминала, затем запустите `/voice` снова. На Windows перейдите в Settings → Privacy & security → Microphone и включите доступ к микрофону для приложений рабочего стола, затем запустите `/voice` снова. Если ваш терминал не указан в параметрах macOS Microphone, см. [Терминал не указан в параметрах macOS Microphone](#terminal-not-listed-in-macos-microphone-settings).190* **`Microphone access is denied`**: предоставьте разрешение микрофона вашему терминалу в системных параметрах. На macOS перейдите в System Settings → Privacy & Security → Microphone и включите приложение вашего терминала, затем запустите `/voice` снова. На Windows перейдите в Settings → Privacy & security → Microphone и включите доступ к микрофону для приложений рабочего стола, затем запустите `/voice` снова. Если ваш терминал не указан в параметрах macOS Microphone, см. [Терминал не указан в параметрах macOS Microphone](#terminal-not-listed-in-macos-microphone-settings).

190* **`Voice mode requires SoX for audio recording` на Linux**: собственный модуль аудио не может загрузиться и резервный вариант не установлен. Установите SoX с помощью команды, показанной в сообщении об ошибке, например `sudo apt-get install sox`.191* **`Voice mode requires SoX for audio recording` на Linux**: собственный модуль аудио не может загрузиться и резервный вариант не установлен. Установите SoX с помощью команды, показанной в сообщении об ошибке, например `sudo apt-get install sox`.