SpyBara
Go Premium

Documentation 2026-10-08 22:58 UTC to 2026-10-09 13:58 UTC

38 files changed +279 −118. View all changes and history on the product overview
2026
Fri 9 15:00 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

216| Опция | Что она контролирует | По умолчанию |216| Опция | Что она контролирует | По умолчанию |

217| :- | :- | :- |217| :- | :- | :- |

218| Максимум ходов (`max_turns` / `maxTurns`) | Максимум раундов использования инструментов | Без ограничений |218| Максимум ходов (`max_turns` / `maxTurns`) | Максимум раундов использования инструментов | Без ограничений |

219| Максимум бюджета (`max_budget_usd` / `maxBudgetUsd`) | Максимальная стоимость перед остановкой | Без ограничений |219| Максимум бюджета (`max_budget_usd` / `maxBudgetUsd`) | Оценочные расходы, при достижении которых цикл останавливается | Без ограничений |

220 220 

221Когда достигается любой лимит, SDK возвращает `ResultMessage` с соответствующим подтипом ошибки (`error_max_turns` или `error_max_budget_usd`). См. [Обработать результат](#handle-the-result) для того, как проверить эти подтипы, и [`ClaudeAgentOptions`](/docs/ru/agent-sdk/python#claudeagentoptions) / [`Options`](/docs/ru/agent-sdk/typescript#options) для синтаксиса.221Когда достигается любой лимит, SDK возвращает `ResultMessage` с соответствующим подтипом ошибки (`error_max_turns` или `error_max_budget_usd`). См. [Обработать результат](#handle-the-result) для того, как проверить эти подтипы, и [`ClaudeAgentOptions`](/docs/ru/agent-sdk/python#claudeagentoptions) / [`Options`](/docs/ru/agent-sdk/typescript#options) для синтаксиса.

222 222 


224 224 

225При [потоковом вводе](/docs/ru/agent-sdk/streaming-vs-single-mode) сообщение, которое все еще находится в очереди, когда ход заканчивается на пределе максимальных ходов, остается в очереди. Claude Code не добавляет его в последний вызов модели этого хода. Он начинает новый ход для сообщения, и счетчик максимальных ходов начинается заново для этого хода. Общий бюджет продолжает накапливаться между сообщениями, и как только расходы достигают `maxBudgetUsd`, более поздние сообщения в той же беседе заканчиваются результатом `error_max_budget_usd`. [`/clear`](/docs/ru/agent-sdk/cost-tracking) начинает бюджет заново.225При [потоковом вводе](/docs/ru/agent-sdk/streaming-vs-single-mode) сообщение, которое все еще находится в очереди, когда ход заканчивается на пределе максимальных ходов, остается в очереди. Claude Code не добавляет его в последний вызов модели этого хода. Он начинает новый ход для сообщения, и счетчик максимальных ходов начинается заново для этого хода. Общий бюджет продолжает накапливаться между сообщениями, и как только расходы достигают `maxBudgetUsd`, более поздние сообщения в той же беседе заканчиваются результатом `error_max_budget_usd`. [`/clear`](/docs/ru/agent-sdk/cost-tracking) начинает бюджет заново.

226 226 

227<h4 id="budget-headroom">

228 Запас бюджета

229</h4>

230 

231Claude Code сравнивает расходы с лимитом `max_budget_usd` / `maxBudgetUsd` после получения ответов модели, поскольку стоимость каждого ответа определяется использованием токенов, которое API возвращает вместе с ним. Ответ, достигший лимита, все равно завершается и учитывается в [`total_cost_usd`](/docs/ru/agent-sdk/cost-tracking#get-the-total-cost-of-a-query). Поэтому расходы могут превысить лимит не более чем на стоимость этого одного ответа плюс все, что потратят субагенты, еще работающие в этот момент, до своей остановки. Оставляйте запас на это при установке лимита.

232 

227<h3 id="effort-level">233<h3 id="effort-level">

228 Уровень усилий234 Уровень усилий

229</h3>235</h3>

Details

146| `auto` | Одобрения, классифицированные моделью | Классификатор модели проверяет действия, такие как команды оболочки и сетевые запросы, разрешая или блокируя каждое из них. См. [Режим Auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) для получения информации о доступности и порядке принятия решений |146| `auto` | Одобрения, классифицированные моделью | Классификатор модели проверяет действия, такие как команды оболочки и сетевые запросы, разрешая или блокируя каждое из них. См. [Режим Auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) для получения информации о доступности и порядке принятия решений |

147 147 

148<Warning>148<Warning>

149 **Наследование подагентом:** Подагент выполняется в режиме разрешений родительского сеанса, если вы не установите `permissionMode` на его [`AgentDefinition`](/docs/ru/agent-sdk/typescript#agentdefinition) и родительский сеанс находится в режиме `default`, `dontAsk` или `plan`. Даже в этом случае Claude Code никогда не применяет значение `"bypassPermissions"`. Подагент выполняется в режиме `bypassPermissions` только когда сам родительский сеанс находится в этом режиме. Исключение `bypassPermissions` требует Claude Code v2.1.267 или более поздней версии.149 **Наследование субагентом:** Субагент выполняется в режиме разрешений родительской сессии, если вы не установите `permissionMode` на его [`AgentDefinition`](/docs/ru/agent-sdk/typescript#agentdefinition) и родительская сессия находится в режиме `default`, `dontAsk` или `plan`. Даже в этом случае Claude Code никогда не применяет значение `"bypassPermissions"`, а значение `"auto"` применяет только тогда, когда [авторежим доступен](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) этому субагенту. Субагент выполняется в режиме `bypassPermissions` только когда сама родительская сессия находится в этом режиме. Исключение `bypassPermissions` требует Claude Code v2.1.267 или более поздней версии.

150 150 

151 Подагенты могут иметь различные системные подсказки и менее ограниченное поведение, чем ваш основной агент, поэтому наследование `bypassPermissions` предоставляет им полный автономный доступ к системе. [Действия, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves), по-прежнему применяются.151 Подагенты могут иметь различные системные подсказки и менее ограниченное поведение, чем ваш основной агент, поэтому наследование `bypassPermissions` предоставляет им полный автономный доступ к системе. [Действия, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves), по-прежнему применяются.

152</Warning>152</Warning>

Details

928| `resume` | `str \| None` | `None` | ID сессии для возобновления |928| `resume` | `str \| None` | `None` | ID сессии для возобновления |

929| `session_id` | `str \| None` | `None` | Использовать определённый ID сессии вместо автоматически сгенерированного. Должен быть действительным UUID. Нельзя сочетать с `continue_conversation` или `resume`, если не задан также `fork_session` |929| `session_id` | `str \| None` | `None` | Использовать определённый ID сессии вместо автоматически сгенерированного. Должен быть действительным UUID. Нельзя сочетать с `continue_conversation` или `resume`, если не задан также `fork_session` |

930| `max_turns` | `int \| None` | `None` | Максимальное количество агентских ходов (циклов использования инструментов) |930| `max_turns` | `int \| None` | `None` | Максимальное количество агентских ходов (циклов использования инструментов) |

931| `max_budget_usd` | `float \| None` | `None` | Остановить запрос, когда оценка стоимости на стороне клиента достигнет этого значения в USD. Учитывает только расходы самого вызова; итоги, восстановленные из возобновлённой сессии, не учитываются. Об оговорках по точности и поведении сброса см. [Отслеживание стоимости и использования](/docs/ru/agent-sdk/cost-tracking) |931| `max_budget_usd` | `float \| None` | `None` | Остановить запрос, когда оценка стоимости на стороне клиента достигнет этого значения в USD. Оценка может превысить это значение, поэтому [оставьте запас](/docs/ru/agent-sdk/agent-loop#budget-headroom). Учитывает только расходы самого вызова; итоги, восстановленные из возобновлённой сессии, не учитываются. Об оговорках по точности и поведении сброса см. [Отслеживание стоимости и использования](/docs/ru/agent-sdk/cost-tracking) |

932| `disallowed_tools` | `list[str]` | `[]` | Инструменты для запрета. Простое имя, такое как `"Bash"`, удаляет инструмент из контекста Claude. Правило с уточнением, такое как `"Bash(rm *)"`, оставляет инструмент доступным и запрещает соответствующие вызовы в каждом режиме разрешений, включая `bypassPermissions`, для команды [в том виде, как она написана](/docs/ru/permissions#bash-rule-limits). См. [Разрешения](/docs/ru/agent-sdk/permissions#allow-and-deny-rules) |932| `disallowed_tools` | `list[str]` | `[]` | Инструменты для запрета. Простое имя, такое как `"Bash"`, удаляет инструмент из контекста Claude. Правило с уточнением, такое как `"Bash(rm *)"`, оставляет инструмент доступным и запрещает соответствующие вызовы в каждом режиме разрешений, включая `bypassPermissions`, для команды [в том виде, как она написана](/docs/ru/permissions#bash-rule-limits). См. [Разрешения](/docs/ru/agent-sdk/permissions#allow-and-deny-rules) |

933| `enable_file_checkpointing` | `bool` | `False` | Включить отслеживание изменений файлов для перемотки. См. [Чекпоинты файлов](/docs/ru/agent-sdk/file-checkpointing) |933| `enable_file_checkpointing` | `bool` | `False` | Включить отслеживание изменений файлов для перемотки. См. [Чекпоинты файлов](/docs/ru/agent-sdk/file-checkpointing) |

934| `model` | `str \| None` | `None` | Псевдоним модели Claude или полное имя модели. См. [допустимые значения и ID, специфичные для поставщика](/docs/ru/model-config#available-models) |934| `model` | `str \| None` | `None` | Псевдоним модели Claude или полное имя модели. См. [допустимые значения и ID, специфичные для поставщика](/docs/ru/model-config#available-models) |


2856 "description": str, # Описание задачи2856 "description": str, # Описание задачи

2857 "resolvedModel": str | None, # Модель, используемая при переходе в фоновый режим2857 "resolvedModel": str | None, # Модель, используемая при переходе в фоновый режим

2858 "modelsUsed": list[str] | None, # Модели, использованные перед фоновым режимом, по порядку, с коллапсированными последовательными повторениями2858 "modelsUsed": list[str] | None, # Модели, использованные перед фоновым режимом, по порядку, с коллапсированными последовательными повторениями

2859 "prompt": str, # Подсказка, которую запускает агент2859 "prompt": str, # Промпт, который запускает агент

2860 "outputFile": str, # Путь файла, где записывается вывод агента2860 "outputFile": str, # Путь файла, где записывается вывод агента

2861 "canReadOutputFile": bool | None, # Может ли выходной файл быть прочитан напрямую2861 "canReadOutputFile": bool | None, # Может ли выходной файл быть прочитан напрямую

2862}2862}


2868{2868{

2869 "status": "remote_launched",2869 "status": "remote_launched",

2870 "taskId": str, # ID отправленной задачи2870 "taskId": str, # ID отправленной задачи

2871 "sessionUrl": str, # Ссылка на облачный сеанс2871 "sessionUrl": str, # Ссылка на облачную сессию

2872 "description": str, # Описание задачи2872 "description": str, # Описание задачи

2873 "prompt": str, # Подсказка, которую запускает агент2873 "prompt": str, # Промпт, который запускает агент

2874 "outputFile": str, # Путь файла, где записывается вывод агента2874 "outputFile": str, # Путь файла, где записывается вывод агента

2875}2875}

2876```2876```

2877 2877 

2878Возвращает результат от подагента. Вывод различается по полю `status`: `"completed"` для завершенных задач, `"async_launched"` для фоновых задач и `"remote_launched"` для задач, которые Claude Code отправил в облачный сеанс, где `sessionUrl` ссылается на этот сеанс и `taskId` его идентифицирует. Если Claude Code [сохранил изолированный worktree подагента](/docs/ru/worktrees#isolate-subagents-with-worktrees), `worktreePath` в варианте `completed` — это место, где его найти, и `worktreeBranch` — это его ветка, когда Claude Code создал worktree с git.2878Возвращает результат от субагента. Вывод различается по полю `status`: `"completed"` для завершенных задач, `"async_launched"` для фоновых задач и `"remote_launched"` для задач, которые Claude Code отправил в облачную сессию, где `sessionUrl` ссылается на эту сессию и `taskId` ее идентифицирует. Если Claude Code [сохранил изолированный worktree субагента](/docs/ru/worktrees#isolate-subagents-with-worktrees), `worktreePath` в варианте `completed` — это место, где его найти, и `worktreeBranch` — это его ветка, когда Claude Code создал worktree с git.

2879 2879 

2880В варианте `completed`, `resolvedModel` называет модель, на которой запустился подагент, которая может отличаться от запрошенного входа `model`, когда применяется [`availableModels`](/docs/ru/model-config#restrict-model-selection) или другое переопределение. Это поле требует Claude Code v2.1.174 или позже. В варианте `async_launched`, `resolvedModel` называет модель, используемую, когда агент перешел в фоновый режим, поэтому обмен, произошедший перед фоновым режимом, отражается там. Поле `modelsUsed` в обоих вариантах перечисляет использованные модели по порядку, с коллапсированными последовательными повторениями; оно устанавливается только при обмене модели во время выполнения. `modelsUsed` и поведение `resolvedModel` во время фонового режима требуют Claude Code v2.1.212 или позже.2880В варианте `completed`, `resolvedModel` называет модель, на которой запустился субагент, которая может отличаться от запрошенного входа `model`, когда применяется [`availableModels`](/docs/ru/model-config#restrict-model-selection) или другое переопределение. Это поле требует Claude Code v2.1.174 или позже. В варианте `async_launched`, `resolvedModel` называет модель, используемую, когда агент перешел в фоновый режим, поэтому обмен, произошедший перед фоновым режимом, отражается там. Поле `modelsUsed` в обоих вариантах перечисляет использованные модели по порядку, с коллапсированными последовательными повторениями; оно устанавливается только при обмене модели во время выполнения. `modelsUsed` и поведение `resolvedModel` во время фонового режима требуют Claude Code v2.1.212 или позже.

2881 2881 

2882Claude Code заполняет `usage` и `totalTokens` из финального запроса API субагента, не из всего запуска. Когда присутствует, `thinking_tokens` под `output_tokens_details` в `usage` — это количество выходных токенов этого запроса, которые были токенами мышления. Ключ `output_tokens_details` требует Python SDK v0.2.136 или позже, который поставляется с Claude Code v2.1.228. Ключ `fallback_credit` требует Python SDK v0.2.162 или позже, который поставляется с Claude Code v2.1.285.2882Claude Code заполняет `usage` и `totalTokens` из финального запроса API субагента, не из всего запуска. Когда присутствует, `thinking_tokens` под `output_tokens_details` в `usage` — это количество выходных токенов этого запроса, которые были токенами мышления. Ключ `output_tokens_details` требует Python SDK v0.2.136 или позже, который поставляется с Claude Code v2.1.228. Ключ `fallback_credit` требует Python SDK v0.2.162 или позже, который поставляется с Claude Code v2.1.285.

2883 2883 


2887 2887 

2888**Имя инструмента:** `AskUserQuestion`2888**Имя инструмента:** `AskUserQuestion`

2889 2889 

2890Задает пользователю уточняющие вопросы во время выполнения. См. [Обработка одобрений и ввода пользователя](/docs/ru/agent-sdk/user-input#handle-clarifying-questions) для деталей использования.2890Задает пользователю уточняющие вопросы во время выполнения. См. [Обработка подтверждений и ввода пользователя](/docs/ru/agent-sdk/user-input#handle-clarifying-questions) для деталей использования.

2891 2891 

2892**Ввод:**2892**Ввод:**

2893 2893 


2947 2947 

2948**Имя инструмента:** `Bash`2948**Имя инструмента:** `Bash`

2949 2949 

2950Для информации о том, что устанавливает потолок переднего плана, см. [Тайм-ауты и ограничения вывода](/docs/ru/tools-reference#timeout-and-output-limits). Для ограничения времени фонового режима см. [Ограничение времени для фоновых команд](/docs/ru/tools-reference#time-limit-for-background-commands).2950Для информации о том, что устанавливает потолок переднего плана, см. [Таймаут и ограничения вывода](/docs/ru/tools-reference#timeout-and-output-limits). Для ограничения времени фонового режима см. [Ограничение времени для фоновых команд](/docs/ru/tools-reference#time-limit-for-background-commands).

2951 2951 

2952**Ввод:**2952**Ввод:**

2953 2953 


2980 2980 

2981Запускает фоновый источник и доставляет каждое событие в Claude, чтобы он мог реагировать без опроса: `command` запускает скрипт и выдает одно событие на строку stdout, а `ws` открывает WebSocket и выдает одно событие на текстовый фрейм. Укажите ровно один из `command` или `ws`.2981Запускает фоновый источник и доставляет каждое событие в Claude, чтобы он мог реагировать без опроса: `command` запускает скрипт и выдает одно событие на строку stdout, а `ws` открывает WebSocket и выдает одно событие на текстовый фрейм. Укажите ровно один из `command` или `ws`.

2982 2982 

2983Когда Monitor запускает команду, он следует тем же правилам разрешений, что и Bash; наблюдение за WebSocket запрашивает одобрение отдельно. Источник `ws` требует Claude Code v2.1.195 или позже. См. [Справочник инструмента Monitor](/docs/ru/tools-reference#monitor-tool) для поведения и доступности поставщика.2983Когда Monitor запускает команду, он следует тем же правилам разрешений, что и Bash; наблюдение за WebSocket запрашивает подтверждение отдельно. Источник `ws` требует Claude Code v2.1.195 или позже. См. [Справочник инструмента Monitor](/docs/ru/tools-reference#monitor-tool) для поведения и доступности поставщика.

2984 2984 

2985**Ввод:**2985**Ввод:**

2986 2986 


2989 "command": str | None, # Скрипт оболочки; каждая строка stdout является событием, выход завершает наблюдение2989 "command": str | None, # Скрипт оболочки; каждая строка stdout является событием, выход завершает наблюдение

2990 "ws": dict | None, # Источник WebSocket: {"url": str, "protocols": list[str] | None}; каждый текстовый фрейм является событием2990 "ws": dict | None, # Источник WebSocket: {"url": str, "protocols": list[str] | None}; каждый текстовый фрейм является событием

2991 "description": str, # Краткое описание, показываемое в уведомлениях2991 "description": str, # Краткое описание, показываемое в уведомлениях

2992 "timeout_ms": int | None, # Завершить после этого срока (по умолчанию 300000, макс 3600000; эффективный срок составляет максимум 1800000)2992 "timeout_ms": int | None, # Срок в миллисекундах (по умолчанию 300000, макс 3600000; эффективный срок составляет максимум 1800000)

2993}2993}

2994```2994```

2995 2995 


2998```python theme={null}2998```python theme={null}

2999{2999{

3000 "taskId": str, # ID фоновой задачи мониторинга3000 "taskId": str, # ID фоновой задачи мониторинга

3001 "timeoutMs": int, # Эффективный срок тайм-аута в миллисекундах3001 "timeoutMs": int, # Эффективный срок наблюдения в миллисекундах

3002 "persistent": bool | None, # False: каждое наблюдение имеет срок3002 "persistent": bool | None, # False: каждое наблюдение имеет срок

3003}3003}

3004```3004```


3148 3148 

3149```python theme={null}3149```python theme={null}

3150{3150{

3151 "type": "file_unchanged", # Файл не изменился с момента последнего чтения Claude в этом сеансе, поэтому содержимое не повторяется3151 "type": "file_unchanged", # Файл не изменился с момента последнего чтения Claude в этой сессии, поэтому содержимое не повторяется

3152 "file": {3152 "file": {

3153 "filePath": str,3153 "filePath": str,

3154 },3154 },


3326```python theme={null}3326```python theme={null}

3327{3327{

3328 "url": str, # URL для получения содержимого3328 "url": str, # URL для получения содержимого

3329 "prompt": str, # Подсказка для запуска на полученном содержимом3329 "prompt": str, # Промпт для запуска на полученном содержимом

3330 "offset": int | None, # Количество символов, пропускаемых от начала страницы. Требует Python Agent SDK 0.2.164 или позже

3330}3331}

3331```3332```

3332 3333 


3337 "bytes": int, # Размер полученного содержимого в байтах3338 "bytes": int, # Размер полученного содержимого в байтах

3338 "code": int, # Код ответа HTTP3339 "code": int, # Код ответа HTTP

3339 "codeText": str, # Текст кода ответа HTTP3340 "codeText": str, # Текст кода ответа HTTP

3340 "result": str, # Обработанный результат от применения подсказки к содержимому3341 "result": str, # Обработанный результат от применения промпта к содержимому

3341 "durationMs": int, # Время получения и обработки содержимого в миллисекундах3342 "durationMs": int, # Время получения и обработки содержимого в миллисекундах

3342 "url": str, # URL, который был получен3343 "url": str, # URL, который был получен

3343}3344}


3595```python theme={null}3596```python theme={null}

3596{3597{

3597 "plan": str | None, # План, который был представлен пользователю3598 "plan": str | None, # План, который был представлен пользователю

3598 "isAgent": bool, # True, когда подагент вызвал инструмент3599 "isAgent": bool, # True, когда субагент вызвал инструмент

3599 "filePath": str | None, # Присутствует, когда план был сохранен в файл3600 "filePath": str | None, # Присутствует, когда план был сохранен в файл

3600 "hasTaskTool": bool | None, # Необязательно; доступен ли инструмент Agent в текущем контексте3601 "hasTaskTool": bool | None, # Необязательно; доступен ли инструмент Agent в текущем контексте

3601 "planWasEdited": bool | None, # Присутствует и True, когда пользователь отредактировал план перед одобрением3602 "planWasEdited": bool | None, # Присутствует и True, когда пользователь отредактировал план перед одобрением

Details

323 Обнаружение вызова подагента323 Обнаружение вызова подагента

324</h2>324</h2>

325 325 

326Claude вызывает подагентов через инструмент Agent. Чтобы обнаружить, когда подагент вызывается, проверьте блоки `tool_use`, где `name` равен `"Agent"`. Сообщения из контекста подагента включают поле `parent_tool_use_id`.326Claude вызывает субагентов через инструмент Agent. Чтобы обнаружить, когда субагент вызывается, проверьте блоки `tool_use`, где `name` равен `"Agent"`.

327 

328Сообщения из контекста субагента включают поле `parent_tool_use_id`. В TypeScript каждое сообщение assistant и user, создаваемое субагентом, также содержит [`agent_id`](/docs/ru/agent-sdk/typescript#sdkassistantmessage): `task_id` [событий задачи](/docs/ru/agent-sdk/typescript#sdktaskstartedmessage) этого субагента. Для `agent_id` требуется TypeScript Agent SDK v0.3.292 или более поздней версии.

327 329 

328<Note>330<Note>

329 Инструмент отображается как `"Agent"` в блоках `tool_use`, но как `"Task"` в списке инструментов `system:init`. До Claude Code v2.1.63 блоки `tool_use` также называли его `"Task"`. Чтобы обнаружение работало во всех версиях SDK, сопоставьте оба значения в `block.name`.331 Инструмент отображается как `"Agent"` в блоках `tool_use`, но как `"Task"` в списке инструментов `system:init`. До Claude Code v2.1.63 блоки `tool_use` также называли его `"Task"`. Чтобы обнаружение работало во всех версиях SDK, сопоставьте оба значения в `block.name`.


331 333 

332Структура сообщения отличается между SDK. В Python вы получаете доступ к блокам содержимого напрямую через `message.content`. В TypeScript `SDKAssistantMessage` оборачивает сообщение API Claude, поэтому вы получаете доступ к содержимому через `message.message.content`.334Структура сообщения отличается между SDK. В Python вы получаете доступ к блокам содержимого напрямую через `message.content`. В TypeScript `SDKAssistantMessage` оборачивает сообщение API Claude, поэтому вы получаете доступ к содержимому через `message.message.content`.

333 335 

334Этот пример проходит по потоковым сообщениям, логируя, когда подагент вызывается и когда последующие сообщения поступают из контекста выполнения этого подагента.336Этот пример проходит по потоковым сообщениям, логируя, когда субагент вызывается и когда последующие сообщения поступают из контекста выполнения этого субагента. Версия на TypeScript также логирует `agent_id` каждого сообщения субагента, которое его содержит.

335 337 

336<CodeGroup>338<CodeGroup>

337 ```python Python theme={null}339 ```python Python theme={null}


403 // Check if this message is from within a subagent's context405 // Check if this message is from within a subagent's context

404 if (msg.parent_tool_use_id) {406 if (msg.parent_tool_use_id) {

405 console.log(" (running inside subagent)");407 console.log(" (running inside subagent)");

408 // On assistant and user messages, agent_id matches the task_id

409 // on that subagent's task_started and other task events

410 if (msg.agent_id) {

411 console.log(` agent_id: ${msg.agent_id}`);

412 }

406 }413 }

407 414 

408 if ("result" in message) {415 if ("result" in message) {

Details

569| `includePartialMessages` | `boolean` | `false` | Включать события частичных сообщений |569| `includePartialMessages` | `boolean` | `false` | Включать события частичных сообщений |

570| `loadTimeoutMs` | `number` | `60000` | *Альфа.* Таймаут в миллисекундах для каждого вызова `sessionStore.load()` и `sessionStore.listSubkeys()` при материализации во время возобновления. Если адаптер не завершит операцию в течение этого времени, запрос завершается с ошибкой, а не зависает. Игнорируется, если `sessionStore` не задан |570| `loadTimeoutMs` | `number` | `60000` | *Альфа.* Таймаут в миллисекундах для каждого вызова `sessionStore.load()` и `sessionStore.listSubkeys()` при материализации во время возобновления. Если адаптер не завершит операцию в течение этого времени, запрос завершается с ошибкой, а не зависает. Игнорируется, если `sessionStore` не задан |

571| `managedSettings` | `Settings` | `undefined` | Настройки уровня политики, которые ваш хост-процесс передаёт в запускаемую сессию. На машинах с управляемыми настройками, развёрнутыми администратором, Claude Code игнорирует их, если только управляемый источник администратора с наивысшим приоритетом не задаёт `parentSettingsBehavior: 'merge'`, и никогда не объединяет их, пока [`policyHelper`](/docs/ru/settings-reference#policyhelper) предоставляет управляемые настройки. Объединённые значения проходят через фильтр, пропускающий только ограничения; о том, что пропускает фильтр, и о блокировках `allowManaged*Only` см. [Ограничение родительских настроек](/docs/ru/claude-apps-gateway#restrict-parent-settings). Хост, задающий [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ru/env-vars), вместо этого получает три ключа непосредственно из этих данных: свою [конфигурацию модели](/docs/ru/model-config#restrict-model-selection) в Claude Code v2.1.222 или новее, [`modelPricing`](/docs/ru/settings-reference#modelpricing), если ни один управляемый источник его не задаёт, в v2.1.246 или новее, и запись `ENABLE_TOOL_SEARCH` в env в v2.1.247 или новее |571| `managedSettings` | `Settings` | `undefined` | Настройки уровня политики, которые ваш хост-процесс передаёт в запускаемую сессию. На машинах с управляемыми настройками, развёрнутыми администратором, Claude Code игнорирует их, если только управляемый источник администратора с наивысшим приоритетом не задаёт `parentSettingsBehavior: 'merge'`, и никогда не объединяет их, пока [`policyHelper`](/docs/ru/settings-reference#policyhelper) предоставляет управляемые настройки. Объединённые значения проходят через фильтр, пропускающий только ограничения; о том, что пропускает фильтр, и о блокировках `allowManaged*Only` см. [Ограничение родительских настроек](/docs/ru/claude-apps-gateway#restrict-parent-settings). Хост, задающий [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ru/env-vars), вместо этого получает три ключа непосредственно из этих данных: свою [конфигурацию модели](/docs/ru/model-config#restrict-model-selection) в Claude Code v2.1.222 или новее, [`modelPricing`](/docs/ru/settings-reference#modelpricing), если ни один управляемый источник его не задаёт, в v2.1.246 или новее, и запись `ENABLE_TOOL_SEARCH` в env в v2.1.247 или новее |

572| `maxBudgetUsd` | `number` | `undefined` | Останавливает запрос, когда клиентская оценка стоимости достигает этого значения в долларах США. Учитываются только собственные расходы вызова; итоговые суммы, восстановленные из возобновлённой сессии, не учитываются. Об оговорках по точности и поведении при сбросе см. [Отслеживание стоимости и использования](/docs/ru/agent-sdk/cost-tracking) |572| `maxBudgetUsd` | `number` | `undefined` | Остановить запрос, когда оценка стоимости на стороне клиента достигнет этого значения в USD. Оценка может превысить это значение, поэтому [оставляйте запас](/docs/ru/agent-sdk/agent-loop#budget-headroom). Учитываются только собственные расходы вызова; итоги, восстановленные из возобновлённой сессии, не учитываются. Оговорки о точности и поведении при сбросе см. в разделе [Отслеживание стоимости и использования](/docs/ru/agent-sdk/cost-tracking) |

573| `maxThinkingTokens` | `number` | `undefined` | *Устарело:* используйте `thinking`. Максимальное число токенов для процесса мышления |573| `maxThinkingTokens` | `number` | `undefined` | *Устарело:* используйте `thinking`. Максимальное число токенов для процесса мышления |

574| `maxTurns` | `number` | `undefined` | Максимальное число ходов агента (циклов вызова инструментов) |574| `maxTurns` | `number` | `undefined` | Максимальное число ходов агента (циклов вызова инструментов) |

575| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Конфигурации MCP-серверов |575| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Конфигурации MCP-серверов |


1561 parent_tool_use_id: string | null;1561 parent_tool_use_id: string | null;

1562 error?: SDKAssistantMessageError;1562 error?: SDKAssistantMessageError;

1563 aborted?: true;1563 aborted?: true;

1564 agent_id?: string;

1564 timestamp?: string;1565 timestamp?: string;

1565 context_usage?: SDKContextUsage;1566 context_usage?: SDKContextUsage;

1566 user_message_uuid?: string;1567 user_message_uuid?: string;


1580 1581 

1581`aborted` имеет значение `true`, когда прерывание или отмена усекли сообщение ассистента до завершения потока: сообщение не имеет `stop_reason`, и содержимое может заканчиваться посередине слова. Это поле отсутствует в нормально завершённых сообщениях. Требует Agent SDK v0.3.214 или позже.1582`aborted` имеет значение `true`, когда прерывание или отмена усекли сообщение ассистента до завершения потока: сообщение не имеет `stop_reason`, и содержимое может заканчиваться посередине слова. Это поле отсутствует в нормально завершённых сообщениях. Требует Agent SDK v0.3.214 или позже.

1582 1583 

1584`agent_id` определяет субагента, создавшего сообщение, и отсутствует у сообщений основного потока. Значение совпадает с `task_id` в событии [`task_started`](#sdktaskstartedmessage) и других событиях задачи этого субагента и не меняется, когда субагент [возобновляется](/docs/ru/agent-sdk/subagents#resume-subagents). Поле требует Agent SDK v0.3.292 или новее.

1585 

1586Сопоставляйте сообщения субагента с событиями его задачи по `agent_id`, а не по паре `parent_tool_use_id` сообщения и `tool_use_id` события задачи. Когда вызов инструмента возобновляет субагента, события задачи несут `tool_use_id` этого вызова, а сообщения сохраняют `parent_tool_use_id` вызова инструмента, который впервые запустил субагента, поэтому эти значения перестают совпадать.

1587 

1583Claude Code устанавливает `user_message_uuid` и `user_message_uuids` в первом сообщении ассистента в ходе при условиях, описанных в [`user_message_uuid`](#user_message_uuid). Когда Claude Code повторно запускает ход, прерванный перезапуском, сообщения ассистента повторного запуска, которые содержат эти поля, также содержат [`resume_reason`](#resume_reason).1588Claude Code устанавливает `user_message_uuid` и `user_message_uuids` в первом сообщении ассистента в ходе при условиях, описанных в [`user_message_uuid`](#user_message_uuid). Когда Claude Code повторно запускает ход, прерванный перезапуском, сообщения ассистента повторного запуска, которые содержат эти поля, также содержат [`resume_reason`](#resume_reason).

1584 1589 

1585`timestamp` — это время в формате ISO 8601, когда содержимое сообщения закончило генерироваться в процессе, который его создал. Значение берётся с часов этой машины, поэтому используйте его только для отображения и не упорядочивайте сообщения по нему. Один ход API может создать несколько сообщений ассистента с одинаковым `message.id`, каждое со своим `timestamp`. Когда это поле отсутствует, используйте время получения сообщения.1590`timestamp` — это время в формате ISO 8601, когда содержимое сообщения закончило генерироваться в процессе, который его создал. Значение берётся с часов этой машины, поэтому используйте его только для отображения и не упорядочивайте сообщения по нему. Один ход API может создать несколько сообщений ассистента с одинаковым `message.id`, каждое со своим `timestamp`. Когда это поле отсутствует, используйте время получения сообщения.


1597 type: "user";1602 type: "user";

1598 uuid?: UUID;1603 uuid?: UUID;

1599 session_id?: string;1604 session_id?: string;

1605 agent_id?: string;

1600 message: MessageParam; // From Anthropic SDK1606 message: MessageParam; // From Anthropic SDK

1601 pasted_content?: MessageParam["content"][];1607 pasted_content?: MessageParam["content"][];

1602 parent_tool_use_id: string | null;1608 parent_tool_use_id: string | null;


1636};1642};

1637```1643```

1638 1644 

1645Пользовательское сообщение, созданное субагентом, например `tool_result` для одного из его собственных вызовов инструментов, содержит `agent_id`. См. [`SDKAssistantMessage`](#sdkassistantmessage), где определены это поле и требования к версии.

1646 

1639В сообщении, содержащем блок `tool_result`, `tool_use_result` — это структурированный объект вывода инструмента, а не текст, отправленный модели. Его форма зависит от инструмента, указанного в соответствующем блоке `tool_use`, поэтому поле имеет тип `unknown`; встроенные формы перечислены в разделе [Типы вывода инструментов](#tool-output-types). Следующие результаты требуют обработки помимо их указанной формы:1647В сообщении, содержащем блок `tool_result`, `tool_use_result` — это структурированный объект вывода инструмента, а не текст, отправленный модели. Его форма зависит от инструмента, указанного в соответствующем блоке `tool_use`, поэтому поле имеет тип `unknown`; встроенные формы перечислены в разделе [Типы вывода инструментов](#tool-output-types). Следующие результаты требуют обработки помимо их указанной формы:

1640 1648 

1641* Инструмент `Agent`: `tool_use_result` имеет тип [`AgentOutput`](#agent-2). Отображайте результат на его основе, а не разбирая текст `tool_result`. Поле `content` результата `completed` содержит отчёт субагента или — для субагента, чей отчёт передаётся через вызов инструмента `SubagentHandback`, — короткую заметку об этой передаче вместо отчёта. В [авторежиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) в Claude Code v2.1.271 или новее каждый субагент, выдающий результат `completed`, отчитывается таким образом, если только он не является [форком](/docs/ru/sub-agents#fork-the-current-conversation), и Claude получает отчёт отдельным сообщением от субагента.1649* Инструмент `Agent`: `tool_use_result` имеет тип [`AgentOutput`](#agent-2). Отображайте результат на его основе, а не разбирая текст `tool_result`. Поле `content` результата `completed` содержит отчёт субагента или — для субагента, чей отчёт передаётся через вызов инструмента `SubagentHandback`, — короткую заметку об этой передаче вместо отчёта. В [авторежиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) в Claude Code v2.1.271 или новее каждый субагент, выдающий результат `completed`, отчитывается таким образом, если только он не является [форком](/docs/ru/sub-agents#fork-the-current-conversation), и Claude получает отчёт отдельным сообщением от субагента.


1992 `SDKPartialAssistantMessage`2000 `SDKPartialAssistantMessage`

1993</h3>2001</h3>

1994 2002 

1995Потоковое частичное сообщение (только когда `includePartialMessages` имеет значение true). Поле `parent_tool_use_id` всегда равно `null`: события потока выдаются только для основной сессии. Для атрибуции субагентов используйте полные сообщения, которые содержат `parent_tool_use_id`, или включите [`forwardSubagentText`](#options), чтобы получать текст и размышления субагентов как полные сообщения.2003Частичное сообщение при потоковой передаче (только когда `includePartialMessages` равно true).

2004 

2005Поле `parent_tool_use_id` всегда равно `null`: события потока выдаются только для основной сессии. Для определения принадлежности субагентам используйте полные сообщения, которые содержат [`agent_id`](#sdkassistantmessage) и `parent_tool_use_id`, или включите [`forwardSubagentText`](#options), чтобы получать текст и размышления субагентов в виде полных сообщений.

1996 2006 

1997```typescript theme={null}2007```typescript theme={null}

1998type SDKPartialAssistantMessage = {2008type SDKPartialAssistantMessage = {


3416type WebFetchInput = {3426type WebFetchInput = {

3417 url: string;3427 url: string;

3418 prompt: string;3428 prompt: string;

3429 offset?: number;

3419};3430};

3420```3431```

3421 3432 

3422Получает содержимое по URL и обрабатывает его с помощью модели AI.3433Получает содержимое по URL и обрабатывает его с помощью модели AI.

3423 3434 

3435`offset` — это число символов, которые нужно пропустить от начала страницы. Claude устанавливает его, чтобы продолжить чтение длинной страницы. Это поле требует Agent SDK v0.3.290 или позже.

3436 

3424<h3 id="websearch">3437<h3 id="websearch">

3425 WebSearch3438 WebSearch

3426</h3>3439</h3>


5775 task_type?: string;5788 task_type?: string;

5776 is_backgrounded?: boolean;5789 is_backgrounded?: boolean;

5777 spawn_depth?: number;5790 spawn_depth?: number;

5791 parent_task_id?: string;

5778 ambient?: boolean;5792 ambient?: boolean;

5779 uuid: UUID;5793 uuid: UUID;

5780 session_id: string;5794 session_id: string;


5792 5806 

5793[Возобновлённый субагент](/docs/ru/agent-sdk/subagents#resume-subagents) всегда сообщает `is_backgrounded: true`, потому что Claude Code запускает каждого возобновлённого субагента в фоне. Когда задача на переднем плане позже переходит в фоновый режим, Claude Code сообщает новое значение `is_backgrounded` в сообщении [`task_updated`](#sdktaskupdatedmessage), а не отправляет второй `task_started`.5807[Возобновлённый субагент](/docs/ru/agent-sdk/subagents#resume-subagents) всегда сообщает `is_backgrounded: true`, потому что Claude Code запускает каждого возобновлённого субагента в фоне. Когда задача на переднем плане позже переходит в фоновый режим, Claude Code сообщает новое значение `is_backgrounded` в сообщении [`task_updated`](#sdktaskupdatedmessage), а не отправляет второй `task_started`.

5794 5808 

5809`parent_task_id` содержит `task_id` субагента, который запустил эту задачу. Используйте его, чтобы группировать каждую задачу под запустившим её субагентом. Claude Code устанавливает его для задач субагентов, Bash и [Monitor](#monitor). Поле требует Agent SDK v0.3.292 или более поздней версии. Оно отсутствует, когда:

5810 

5811* Задачу запустил основной поток

5812* Claude Code больше не отслеживает родительскую задачу

5813* Задачу запустил [участник команды](/docs/ru/agent-teams) или агент внутри рабочего процесса

5814 

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

5816 

5795<h3 id="sdktaskprogressmessage">5817<h3 id="sdktaskprogressmessage">

5796 `SDKTaskProgressMessage`5818 `SDKTaskProgressMessage`

5797</h3>5819</h3>


5848 `SDKBackgroundTasksChangedMessage`5870 `SDKBackgroundTasksChangedMessage`

5849</h3>5871</h3>

5850 5872 

5851Выдаётся всякий раз, когда меняется набор активных фоновых задач: задача запускается, завершается, принудительно останавливается, агент на переднем плане переводится в фоновый режим или меняется поле `description` или `ambient` задачи.5873Выдаётся всякий раз, когда меняется набор активных фоновых задач: задача запускается, завершается или принудительно останавливается; агент на переднем плане переводится в фоновый режим; или меняется поле `description`, `ambient` или `parent_task_id` задачи. Описание поля `parent_task_id` в каждой записи и требование к версии для него см. в [`SDKTaskStartedMessage`](#sdktaskstartedmessage).

5852 5874 

5853Массив `tasks` — это полный активный набор. Заменяйте любой кэшированный набор данными каждого сообщения, а не сопоставляйте события `task_started` и `task_notification`, чтобы следующее изменение состава исправляло любое пропущенное событие.5875Массив `tasks` — это полный активный набор. Заменяйте любой кэшированный набор данными каждого сообщения, а не сопоставляйте события `task_started` и `task_notification`, чтобы следующее изменение состава исправляло любое пропущенное событие.

5854 5876 

5855Порядок относительно этих событий отдельных задач не определён, поэтому не сопоставляйте эти два потока.5877Когда задача завершается, её [`task_updated`](#sdktaskupdatedmessage) и [`task_notification`](#sdktasknotificationmessage) приходят раньше, чем `background_tasks_changed`, который удаляет её из списка. В остальном порядок относительно событий отдельных задач не определён.

5856 5878 

5857При запуске ничего не выдаётся. Сбрасывайте набор до пустого всякий раз, когда процесс CLI сессии запускается или перезапускается, и позвольте следующему изменению состава заново его заполнить.5879При запуске ничего не выдаётся. Сбрасывайте набор до пустого всякий раз, когда процесс CLI сессии запускается или перезапускается, и позвольте следующему изменению состава заново его заполнить.

5858 5880 


5869 task_type: string;5891 task_type: string;

5870 subagent_type?: string;5892 subagent_type?: string;

5871 description: string;5893 description: string;

5894 parent_task_id?: string;

5872 ambient?: boolean;5895 ambient?: boolean;

5873 }[];5896 }[];

5874 uuid: UUID;5897 uuid: UUID;

Details

36 ```36 ```

37 37 

38 ```typescript TypeScript theme={null}38 ```typescript TypeScript theme={null}

39 async function handleToolRequest(toolName, input, options) {39 import type { CanUseTool } from "@anthropic-ai/claude-agent-sdk";

40 

41 const handleToolRequest: CanUseTool = async (toolName, input, options) => {

40 // options включает { signal: AbortSignal, suggestions?: PermissionUpdate[] }42 // options включает { signal: AbortSignal, suggestions?: PermissionUpdate[] }

41 // Запросить у пользователя и вернуть разрешение или отказ43 // Запросите решение у пользователя здесь, затем верните разрешение или отказ

42 }44 return { behavior: "deny", message: "User declined" };

45 };

43 46 

44 const options = { canUseTool: handleToolRequest };47 const options = { canUseTool: handleToolRequest };

45 ```48 ```


440 // Включите AskUserQuestion в ваш список инструментов443 // Включите AskUserQuestion в ваш список инструментов

441 tools: ["Read", "Glob", "Grep", "AskUserQuestion"],444 tools: ["Read", "Glob", "Grep", "AskUserQuestion"],

442 canUseTool: async (toolName, input) => {445 canUseTool: async (toolName, input) => {

443 // Обработайте уточняющие вопросы здесь446 // Заглушка, которая одобряет каждый вызов. Шаг «Обнаружьте AskUserQuestion» заменяет её.

447 return { behavior: "allow", updatedInput: input };

444 }448 }

445 }449 }

446 })) {450 })) {


763 767 

764 ```typescript TypeScript theme={null}768 ```typescript TypeScript theme={null}

765 import { query } from "@anthropic-ai/claude-agent-sdk";769 import { query } from "@anthropic-ai/claude-agent-sdk";

770 import type { PermissionResult } from "@anthropic-ai/claude-agent-sdk";

766 import * as readline from "readline/promises";771 import * as readline from "readline/promises";

767 772 

768 // Вспомогательная функция для запроса ввода пользователя в терминале773 // Вспомогательная функция для запроса ввода пользователя в терминале


783 }788 }

784 789 

785 // Отобразите вопросы Claude и соберите ответы пользователя790 // Отобразите вопросы Claude и соберите ответы пользователя

786 async function handleAskUserQuestion(input: any) {791 async function handleAskUserQuestion(input: any): Promise<PermissionResult> {

787 const answers: Record<string, string> = {};792 const answers: Record<string, string> = {};

788 793 

789 for (const q of input.questions) {794 for (const q of input.questions) {

agent-view.md +1 −1

Details

603 603 

604Вне Git-репозитория сессии пишут непосредственно в рабочий каталог и не изолированы друг от друга, поэтому не отправляйте параллельные сессии, редактирующие одни и те же файлы. Если вы используете другую систему контроля версий, настройте [хук `WorktreeCreate`](/docs/ru/worktrees#non-git-version-control), и Claude будет изолировать правки так же, как для Git.604Вне Git-репозитория сессии пишут непосредственно в рабочий каталог и не изолированы друг от друга, поэтому не отправляйте параллельные сессии, редактирующие одни и те же файлы. Если вы используете другую систему контроля версий, настройте [хук `WorktreeCreate`](/docs/ru/worktrees#non-git-version-control), и Claude будет изолировать правки так же, как для Git.

605 605 

606Если хук завершается с ошибкой в каталоге, который не является Git-репозиторием, Claude пропускает изоляцию для этого каталога и редактирует рабочий каталог на месте. Внутри Git-репозитория сессия, которую Claude переносит в worktree перед редактированием, не может редактировать файлы в общей рабочей копии, пока этот перенос не произойдёт.606Если хук завершается с ошибкой в каталоге, который не является Git-репозиторием, Claude пропускает изоляцию для этого каталога и редактирует рабочий каталог на месте. Внутри Git-репозитория сессия, которую Claude переносит в worktree перед редактированием, не может использовать инструменты `Edit`, `Write` или `NotebookEdit` в общей рабочей копии, пока этот перенос не произойдёт.

607 607 

608Чтобы узнать путь к worktree сессии, подключитесь к ней и проверьте её рабочий каталог.608Чтобы узнать путь к worktree сессии, подключитесь к ней и проверьте её рабочий каталог.

609 609 

Details

1237 1237 

1238CLI отправляет метрики, логи и, когда включено, трассировки на шлюз, который передаёт их дословно каждому настроенному назначению. Экспорты используют OpenTelemetry Protocol (OTLP) по HTTP. Чтобы пропустить реле и заставить сессии экспортировать прямо на ваш сборщик, [назовите сборщик в политике](#export-directly-to-your-collector). Смотрите [Monitoring usage](/docs/ru/monitoring-usage) для метрик и событий, которые CLI излучает.1238CLI отправляет метрики, логи и, когда включено, трассировки на шлюз, который передаёт их дословно каждому настроенному назначению. Экспорты используют OpenTelemetry Protocol (OTLP) по HTTP. Чтобы пропустить реле и заставить сессии экспортировать прямо на ваш сборщик, [назовите сборщик в политике](#export-directly-to-your-collector). Смотрите [Monitoring usage](/docs/ru/monitoring-usage) для метрик и событий, которые CLI излучает.

1239 1239 

1240В сессиях, в которые выполнен вход через `/login`, CLI штампует каждый экспорт идентификацией аутентифицированного пользователя, прочитанной из выданного шлюзом JWT: атрибуты `user.id`, `user.email` и `user.groups`. Атрибуция затрат и использования на разработчика поэтому работает без конфигурации на стороне разработчика.1240В сессиях, в которые выполнен вход через `/login`, CLI штампует каждый экспорт идентификацией аутентифицированного пользователя, прочитанной из выданного шлюзом JWT: атрибуты `user.id`, `user.email` и `user.groups`. Атрибуция затрат и использования на разработчика поэтому работает без конфигурации на стороне разработчика. События, которые Claude Code записывает в лог до входа разработчика, [не несут этой идентификации](/docs/ru/monitoring-usage#standard-attributes).

1241 1241 

1242[Claude Desktop](#claude-desktop-overlay) и сессии Cowork, в которые выполнен вход через шлюз, штампуют свою телеметрию с `user.email` и `user.groups` наряду с `enduser.id`, поэтому вы можете охватить использование терминала, Desktop и Cowork одним запросом на `user.email` или `user.groups`. `user.groups` — это список групп IdP, разделённый запятыми.1242[Claude Desktop](#claude-desktop-overlay) и сессии Cowork, в которые выполнен вход через шлюз, штампуют свою телеметрию с `user.email` и `user.groups` наряду с `enduser.id`, поэтому вы можете охватить использование терминала, Desktop и Cowork одним запросом на `user.email` или `user.groups`. `user.groups` — это список групп IdP, разделённый запятыми.

1243 1243 

Details

516 Телеметрия516 Телеметрия

517</h2>517</h2>

518 518 

519Шлюз предоставляет вам метрики использования для каждого разработчика без какой-либо конфигурации OTEL для каждой машины. Claude Code выдает метрики OpenTelemetry (OTLP), логи и трассировки с согласия пользователя; [Мониторинг использования](/docs/ru/monitoring-usage) охватывает всё, что сообщает CLI. В сеансах, вошедших через `/login`, CLI помечает каждый экспорт аутентифицированными атрибутами идентификации IdP `user.id`, `user.email` и `user.groups`, поэтому использование суммируется для каждого разработчика.519Шлюз предоставляет вам метрики использования для каждого разработчика без какой-либо конфигурации OTEL для каждой машины. Claude Code выдает метрики OpenTelemetry (OTLP), логи и трассировки с согласия пользователя; [Мониторинг использования](/docs/ru/monitoring-usage) охватывает всё, что сообщает CLI. В сессиях, вошедших через `/login`, CLI [помечает каждый экспорт](/docs/ru/monitoring-usage#standard-attributes) аутентифицированными атрибутами идентификации IdP `user.id`, `user.email` и `user.groups`, поэтому использование суммируется для каждого разработчика.

520 520 

521Сам шлюз является аутентифицированным реле OTLP. Установите [`telemetry.forward_to`](/docs/ru/claude-apps-gateway-config#telemetry) вместе с `listen.public_url`, и он отправляет параметры экспортера OTEL каждому подключённому клиенту и пересылает их трафик OTLP дословно каждому указанному вами месту назначения. Каждое место назначения независимо выбирает метрики, логи и трассировки, а по умолчанию используются только метрики; см. [справочник `telemetry`](/docs/ru/claude-apps-gateway-config#telemetry) для полей для каждого сигнала и их компромиссов по чувствительности. Шлюз не буферизирует, не агрегирует и не хранит телеметрию, поэтому место, где приземляются данные, полностью зависит от конфигурации экспортера сборщика.521Сам шлюз является аутентифицированным реле OTLP. Установите [`telemetry.forward_to`](/docs/ru/claude-apps-gateway-config#telemetry) вместе с `listen.public_url`, и он отправляет параметры экспортера OTEL каждому подключённому клиенту и пересылает их трафик OTLP дословно каждому указанному вами месту назначения. Каждое место назначения независимо выбирает метрики, логи и трассировки, а по умолчанию используются только метрики; см. [справочник `telemetry`](/docs/ru/claude-apps-gateway-config#telemetry) для полей для каждого сигнала и их компромиссов по чувствительности. Шлюз не буферизирует, не агрегирует и не хранит телеметрию, поэтому место, где приземляются данные, полностью зависит от конфигурации экспортера сборщика.

522 522 

Details

489* **Routines**: когда вы просите запланированную работу в проекте, Claude создает [routine](/docs/ru/routines), которая работает как потоки в этом проекте и отображается на его вкладке **Routines**. Routines, которые вы создаете вне проекта, продолжают работать самостоятельно.489* **Routines**: когда вы просите запланированную работу в проекте, Claude создает [routine](/docs/ru/routines), которая работает как потоки в этом проекте и отображается на его вкладке **Routines**. Routines, которые вы создаете вне проекта, продолжают работать самостоятельно.

490* **Remote Control**: [Remote Control](/docs/ru/remote-control) соединяет claude.ai с сеансом Claude Code, работающим на вашей машине. Когда вы просите Claude в проекте запустить поток на вашем компьютере, проект [использует Remote Control для этого](#run-a-thread-on-your-own-computer).490* **Remote Control**: [Remote Control](/docs/ru/remote-control) соединяет claude.ai с сеансом Claude Code, работающим на вашей машине. Когда вы просите Claude в проекте запустить поток на вашем компьютере, проект [использует Remote Control для этого](#run-a-thread-on-your-own-computer).

491* **Local sessions и agent view**: сеанс, который вы запускаете самостоятельно в вашем терминале, IDE или локальной среде настольного приложения, не может быть добавлен в проект. [Agent view](/docs/ru/agent-view) — это экран для отслеживания нескольких локальных сеансов рядом, и вы по-прежнему запускаете каждый и даете ему его задачу самостоятельно.491* **Local sessions и agent view**: сеанс, который вы запускаете самостоятельно в вашем терминале, IDE или локальной среде настольного приложения, не может быть добавлен в проект. [Agent view](/docs/ru/agent-view) — это экран для отслеживания нескольких локальных сеансов рядом, и вы по-прежнему запускаете каждый и даете ему его задачу самостоятельно.

492* **Worktrees**: [worktree](/docs/ru/worktrees) дает каждому локальному сеансу свою рабочую копию репозитория, поэтому параллельные сеансы на вашей машине не перезаписывают друг друга. Облачным потокам они не нужны: каждый клонирует свои репозитории в свою облачную песочницу и работает на своей ветке.492* **Worktrees**: [worktree](/docs/ru/worktrees) дает каждой локальной сессии собственную рабочую копию репозитория. Облачным потокам они не нужны: каждый клонирует свои репозитории в собственную облачную песочницу и работает в собственной ветке.

493* **Agent teams**: [agent team](/docs/ru/agent-teams) — это один сеанс, который запускает сеансы товарищей для одной задачи, на вашей машине или внутри облачного сеанса, и заканчивается этой задачей.493* **Agent teams**: [agent team](/docs/ru/agent-teams) — это один сеанс, который запускает сеансы товарищей для одной задачи, на вашей машине или внутри облачного сеанса, и заканчивается этой задачей.

494* **Subagents**: [subagent](/docs/ru/sub-agents) работает внутри одного сеанса, выполняет побочную задачу в своем собственном контекстном окне и возвращает резюме в этот сеанс. Потоки проекта — это целые сеансы, которые Claude запускает и которые отчитываются перед разговором проекта, и поток все еще может использовать subagents для своих собственных побочных задач.494* **Subagents**: [subagent](/docs/ru/sub-agents) работает внутри одного сеанса, выполняет побочную задачу в своем собственном контекстном окне и возвращает резюме в этот сеанс. Потоки проекта — это целые сеансы, которые Claude запускает и которые отчитываются перед разговором проекта, и поток все еще может использовать subagents для своих собственных побочных задач.

495* **Projects в claude.ai chat и Cowork**: [более ранний опыт Projects](https://support.claude.com/en/articles/9517075-what-are-projects), который группирует разговоры и справочные файлы без потоков или координатора. Эти проекты продолжают работать так, как они работают сегодня, пока переработанный опыт не достигнет их.495* **Projects в claude.ai chat и Cowork**: [более ранний опыт Projects](https://support.claude.com/en/articles/9517075-what-are-projects), который группирует разговоры и справочные файлы без потоков или координатора. Эти проекты продолжают работать так, как они работают сегодня, пока переработанный опыт не достигнет их.

Details

106| `--input-format` | Указать формат входных данных для режима печати (опции: `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |106| `--input-format` | Указать формат входных данных для режима печати (опции: `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |

107| `--json-schema` | Получить проверенный вывод JSON, соответствующий JSON Schema после завершения рабочего процесса агента (только режим печати). См. [структурированные выходы](/docs/ru/agent-sdk/structured-outputs). Claude Code выходит с ошибкой при недействительной схеме и принимает ключевое слово `format` как аннотацию без проверки на стороне клиента | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |107| `--json-schema` | Получить проверенный вывод JSON, соответствующий JSON Schema после завершения рабочего процесса агента (только режим печати). См. [структурированные выходы](/docs/ru/agent-sdk/structured-outputs). Claude Code выходит с ошибкой при недействительной схеме и принимает ключевое слово `format` как аннотацию без проверки на стороне клиента | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |

108| `--maintenance` | Запустить [Setup hooks](/docs/ru/hooks#setup) с matcher `maintenance` перед сеансом (только режим печати) | `claude -p --maintenance "query"` |108| `--maintenance` | Запустить [Setup hooks](/docs/ru/hooks#setup) с matcher `maintenance` перед сеансом (только режим печати) | `claude -p --maintenance "query"` |

109| `--max-budget-usd` | Максимальная сумма в долларах, которую можно потратить на вызовы API до остановки (только в режиме печати). Claude Code сверяет лимит со своей [клиентской оценкой стоимости](/docs/ru/agent-sdk/cost-tracking#estimates-not-billing), которая может отличаться от вашего счёта. Расходы [субагентов](/docs/ru/sub-agents) учитываются в лимите. Когда вы возвращаетесь к диалогу с `--continue` или `--resume`, итоги, [восстановленные из предыдущих запусков](/docs/ru/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls), в нём не учитываются. Когда расходы достигают лимита, запуск ещё одного субагента завершается ошибкой `Budget limit reached`, а Claude Code останавливает всё ещё работающих фоновых субагентов; для этого поведения ограничения требуется Claude Code v2.1.217 или новее | `claude -p --max-budget-usd 5.00 "query"` |109| `--max-budget-usd` | Остановить запуск, как только оценочные расходы на вызовы API достигнут этой суммы (только режим печати). Claude Code сверяет лимит со своей [клиентской оценкой стоимости](/docs/ru/agent-sdk/cost-tracking#estimates-not-billing), которая может отличаться от вашего счёта. Расходы [субагентов](/docs/ru/sub-agents) учитываются в лимите. Расходы могут превысить лимит, поэтому [оставляйте запас](/docs/ru/agent-sdk/agent-loop#budget-headroom). Когда вы возвращаетесь к диалогу с `--continue` или `--resume`, итоги, [восстановленные из предыдущих запусков](/docs/ru/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls), в нём не учитываются. Когда расходы достигают лимита, запуск ещё одного субагента завершается ошибкой `Budget limit reached`, а Claude Code останавливает всё ещё работающих фоновых субагентов; для этого поведения ограничения требуется Claude Code v2.1.217 или новее | `claude -p --max-budget-usd 5.00 "query"` |

110| `--max-turns` | Ограничить количество агентских ходов (только режим печати). Выходит с ошибкой при достижении лимита. По умолчанию нет лимита. С `--input-format stream-json` сообщение, всё ещё находящееся в очереди, когда лимит заканчивает ход, остаётся в очереди и начинает новый ход с собственным лимитом | `claude -p --max-turns 3 "query"` |110| `--max-turns` | Ограничить количество агентских ходов (только режим печати). Выходит с ошибкой при достижении лимита. По умолчанию нет лимита. С `--input-format stream-json` сообщение, всё ещё находящееся в очереди, когда лимит заканчивает ход, остаётся в очереди и начинает новый ход с собственным лимитом | `claude -p --max-turns 3 "query"` |

111| `--mcp-config` | Загрузить MCP серверы из JSON файлов или строк (разделённые пробелом). Когда вы передаёте этот флаг с `-p`, Claude Code ждёт, пока всё ещё ожидающие серверы подключатся перед запуском первого хода, до стартового таймаута [`MCP_TIMEOUT`](/docs/ru/env-vars), 30 секунд по умолчанию; сервер с [кэшированным списком инструментов](/docs/ru/mcp#managing-your-servers) пропускает ожидание и подключается при первом использовании. Ожидание требует Claude Code v2.1.221 или позже | `claude --mcp-config ./mcp.json` |111| `--mcp-config` | Загрузить MCP серверы из JSON файлов или строк (разделённые пробелом). Когда вы передаёте этот флаг с `-p`, Claude Code ждёт, пока всё ещё ожидающие серверы подключатся перед запуском первого хода, до стартового таймаута [`MCP_TIMEOUT`](/docs/ru/env-vars), 30 секунд по умолчанию; сервер с [кэшированным списком инструментов](/docs/ru/mcp#managing-your-servers) пропускает ожидание и подключается при первом использовании. Ожидание требует Claude Code v2.1.221 или позже | `claude --mcp-config ./mcp.json` |

112| `--model` | Устанавливает модель для текущего сеанса с [псевдонимом модели](/docs/ru/model-config#model-aliases), таким как `sonnet`, `opus`, `haiku` или `fable`, или полным именем модели. Переопределяет параметр [`model`](/docs/ru/settings-reference#model) и [`ANTHROPIC_MODEL`](/docs/ru/model-config#environment-variables) | `claude --model claude-sonnet-5` |112| `--model` | Устанавливает модель для текущего сеанса с [псевдонимом модели](/docs/ru/model-config#model-aliases), таким как `sonnet`, `opus`, `haiku` или `fable`, или полным именем модели. Переопределяет параметр [`model`](/docs/ru/settings-reference#model) и [`ANTHROPIC_MODEL`](/docs/ru/model-config#environment-variables) | `claude --model claude-sonnet-5` |

Details

307| | Доступно в облачных сессиях | Почему |307| | Доступно в облачных сессиях | Почему |

308| :- | :- | :- |308| :- | :- | :- |

309| `CLAUDE.md` вашего репозитория | Да | Часть клона |309| `CLAUDE.md` вашего репозитория | Да | Часть клона |

310| Хуки и правила разрешений в `.claude/settings.json` вашего репозитория | Да, в сессии с одним репозиторием | Часть клона. Сессия с несколькими репозиториями, включая поток [проекта](/docs/ru/claude-projects#what-threads-pick-up-from-your-repositories), начинается уровнем выше клонов и не читает их |310| Хуки и правила разрешений в `.claude/settings.json` вашего репозитория | Да, в сессии с одним репозиторием | Часть клона. Для сессии с несколькими репозиториями смотрите, [какие настройки она читает](/docs/ru/settings#settings-in-cloud-sessions) |

311| MCP-серверы в `.mcp.json` вашего репозитория | Да, в сессии с одним репозиторием | Часть клона, находится из рабочего каталога сессии |311| MCP-серверы в `.mcp.json` вашего репозитория | Да, в сессии с одним репозиторием | Часть клона, находится из рабочего каталога сессии. Для самостоятельно размещённой среды смотрите, [настройки какого репозитория применяются](/docs/ru/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories) |

312| `.claude/rules/` вашего репозитория | Да | Часть клона |312| `.claude/rules/` вашего репозитория | Да | Часть клона |

313| `.claude/skills/`, `.claude/agents/`, `.claude/commands/` вашего репозитория | Да | Часть клона |313| `.claude/skills/`, `.claude/agents/`, `.claude/commands/` вашего репозитория | Да | Часть клона |

314| Плагины и маркетплейсы, объявленные в `.claude/settings.json` вашего репозитория | Нет | Облачная сессия не устанавливает плагины, которые репозиторий включает в [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins), включая плагины из маркетплейсов, которые он перечисляет в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces) |314| Плагины и маркетплейсы, объявленные в `.claude/settings.json` вашего репозитория | Нет | Облачная сессия не устанавливает плагины, которые репозиторий включает в [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins), включая плагины из маркетплейсов, которые он перечисляет в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces) |


575 575 

576Hooks SessionStart ведут себя одинаково в облаке и локально, с этими оговорками:576Hooks SessionStart ведут себя одинаково в облаке и локально, с этими оговорками:

577 577 

578* **Один репозиторий на сеанс**: сеанс с несколькими репозиториями не загружает hooks из `.claude/settings.json` любого репозитория, поэтому hook SessionStart, который вы определяете там, не запускается. Установите зависимости для этих сеансов с помощью [скрипта установки](#setup-scripts) вместо этого.578* **Один репозиторий на сессию**: в среде, размещённой Anthropic, сессия с несколькими репозиториями не загружает хуки из `.claude/settings.json` ни одного репозитория, поэтому определённый там хук SessionStart не запускается. Вместо этого устанавливайте зависимости для таких сессий с помощью [скрипта установки](#setup-scripts). Для самостоятельно размещённой среды смотрите, [настройки какого репозитория применяются](/docs/ru/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

579* **Нет облачного ограничения**: hooks запускаются в локальных и облачных сеансах. Чтобы пропустить локальное выполнение, выйдите рано, если переменная окружения `CLAUDE_CODE_REMOTE` не `true`, как показано в [скрипте установки зависимостей](#install-dependencies-with-a-sessionstart-hook).579* **Нет облачного ограничения**: hooks запускаются в локальных и облачных сеансах. Чтобы пропустить локальное выполнение, выйдите рано, если переменная окружения `CLAUDE_CODE_REMOTE` не `true`, как показано в [скрипте установки зависимостей](#install-dependencies-with-a-sessionstart-hook).

580* **Требует сетевого доступа**: команды установки должны достичь реестров пакетов. Если ваша среда использует **None** сетевой доступ, эти hooks не удаются. [Список разрешений по умолчанию](#default-allowed-domains) под **Trusted** охватывает npm, PyPI, RubyGems и crates.io.580* **Требует сетевого доступа**: команды установки должны достичь реестров пакетов. Если ваша среда использует **None** сетевой доступ, эти hooks не удаются. [Список разрешений по умолчанию](#default-allowed-domains) под **Trusted** охватывает npm, PyPI, RubyGems и crates.io.

581* **Совместимость с прокси**: в среде, размещённой Anthropic, весь исходящий трафик проходит через [прокси безопасности](#security-proxy), и некоторые менеджеры пакетов не работают правильно с этим прокси; Bun — известный пример. В [самостоятельно размещённой среде](/docs/ru/self-hosted-environments-deploy#default-deny-egress) исходящий трафик проходит через вашу собственную границу сети вместо этого.581* **Совместимость с прокси**: в среде, размещённой Anthropic, весь исходящий трафик проходит через [прокси безопасности](#security-proxy), и некоторые менеджеры пакетов не работают правильно с этим прокси; Bun — известный пример. В [самостоятельно размещённой среде](/docs/ru/self-hosted-environments-deploy#default-deny-egress) исходящий трафик проходит через вашу собственную границу сети вместо этого.

desktop.md +1 −1

Details

396 Параллельная работа с сессиями396 Параллельная работа с сессиями

397</h3>397</h3>

398 398 

399Нажмите **+ New session** в боковой панели или нажмите **Cmd+N** на macOS или **Ctrl+N** на Windows, чтобы работать над несколькими задачами параллельно. Нажимайте **Ctrl+Tab** и **Ctrl+Shift+Tab**, чтобы циклически переключаться между сессиями в боковой панели. Для Git-репозиториев выберите опцию **worktree** рядом с названием ветки, чтобы дать сессии собственную изолированную копию вашего проекта с помощью [Git worktrees](/docs/ru/worktrees), поэтому изменения в одной сессии не влияют на другие сессии, пока вы не сделаете коммит.399Нажмите **+ New session** в боковой панели или нажмите **Cmd+N** на macOS или **Ctrl+N** на Windows, чтобы работать над несколькими задачами параллельно. Нажимайте **Ctrl+Tab** и **Ctrl+Shift+Tab**, чтобы циклически переключаться между сессиями в боковой панели. Для Git-репозиториев выберите опцию **worktree** рядом с названием ветки, чтобы дать сессии собственную изолированную копию вашего проекта с помощью [Git worktrees](/docs/ru/worktrees).

400 400 

401Чтобы просматривать две сессии одновременно, удерживайте **Cmd** на macOS или **Ctrl** на Windows и нажмите на сессию в боковой панели. Сессия откроется во второй панели рядом с той, которая у вас уже открыта. Пока разделение активно, нажатие на другую сессию в боковой панели заменяет ту панель, которая находится в фокусе. Нажмите **Cmd+\\** на macOS или **Ctrl+\\** на Windows, чтобы закрыть панель в фокусе и вернуться к одной сессии.401Чтобы просматривать две сессии одновременно, удерживайте **Cmd** на macOS или **Ctrl** на Windows и нажмите на сессию в боковой панели. Сессия откроется во второй панели рядом с той, которая у вас уже открыта. Пока разделение активно, нажатие на другую сессию в боковой панели заменяет ту панель, которая находится в фокусе. Нажмите **Cmd+\\** на macOS или **Ctrl+\\** на Windows, чтобы закрыть панель в фокусе и вернуться к одной сессии.

402 402 

env-vars.md +2 −1

Details

204| `CLAUDE_AFK_TIMEOUT_MS` | Через сколько миллисекунд бездействия неотвеченное диалоговое окно [`AskUserQuestion`](/docs/ru/tools-reference) автоматически продолжает работу без вас. Автопродолжение по умолчанию отключено; включите его с помощью настройки [`askUserQuestionTimeout`](/docs/ru/settings-reference#askuserquestiontimeout). Эта переменная — переопределение для демонстраций и автоматических тестов: если она задана, она имеет приоритет над этой настройкой и включает автопродолжение, даже если настройка не задана или равна `never`. Значение `0` не отключает таймаут, а сразу закрывает диалоговое окно. Игнорируется в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env). До v2.1.200 автопродолжение было включено по умолчанию с таймаутом `60000` (60 секунд). Требуется Claude Code v2.1.198 или новее |204| `CLAUDE_AFK_TIMEOUT_MS` | Через сколько миллисекунд бездействия неотвеченное диалоговое окно [`AskUserQuestion`](/docs/ru/tools-reference) автоматически продолжает работу без вас. Автопродолжение по умолчанию отключено; включите его с помощью настройки [`askUserQuestionTimeout`](/docs/ru/settings-reference#askuserquestiontimeout). Эта переменная — переопределение для демонстраций и автоматических тестов: если она задана, она имеет приоритет над этой настройкой и включает автопродолжение, даже если настройка не задана или равна `never`. Значение `0` не отключает таймаут, а сразу закрывает диалоговое окно. Игнорируется в [настройках проекта и локальных настройках](/docs/ru/settings-reference#variables-claude-code-ignores-in-env). До v2.1.200 автопродолжение было включено по умолчанию с таймаутом `60000` (60 секунд). Требуется Claude Code v2.1.198 или новее |

205| `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) |205| `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) |

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

207| `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 прерывает субагента и сообщает о зависании родительскому агенту |207| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Таймаут зависания для субагентов в миллисекундах. В Claude Code v2.1.286 или новее также распространяется на [агентов workflow](/docs/ru/workflows#when-an-agent-stalls-and-restarts). По умолчанию `600000` (10 минут); если при включённом сторожевом таймере потока увеличить `CLAUDE_STREAM_IDLE_TIMEOUT_MS`, значение по умолчанию увеличивается вместе с ним, как описано в разделе [Обработка медленных или зависших ответов API](/docs/ru/agent-sdk/typescript#handle-slow-or-stalled-api-responses) |

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

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

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


378| `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 или новее |378| `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 или новее |

379| `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.`. Пустая строка означает значение по умолчанию |379| `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.`. Пустая строка означает значение по умолчанию |

380| `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 или новее |380| `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 или новее |

381| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Максимальное время в миллисекундах, которое каждый запрос к API тратит на пережидание ошибок `429` и `529`, когда задана `CLAUDE_CODE_RETRY_WATCHDOG`. Когда это время истекает, следующая такая ошибка завершает запрос. Укажите положительное целое число только цифрами, например `1800000` для 30 минут. Если не задано, ожидание не ограничено. Требуется Claude Code v2.1.295 или новее |

381| `CLAUDE_CODE_SAFE_MODE` | Установите `1`, чтобы запуститься в безопасном режиме: CLAUDE.md, скиллы, плагины, хуки, MCP-серверы, пользовательские команды и агенты, стили вывода, рабочие процессы, пользовательские темы, пользовательские сочетания клавиш, команды строки состояния и предложения файлов, LSP-серверы и автоматическая память не загружаются — это нужно для устранения неполадок в сломанной конфигурации. Политика управляемых настроек по-прежнему применяется, включая настроенные политикой хуки, строку состояния и команды предложения файлов; управляемые плагины, управляемые скиллы, управляемый CLAUDE.md и настроенные политикой MCP-серверы — нет. Эквивалентно передаче [`--safe-mode`](/docs/ru/cli-reference#cli-flags). Непосредственно запущенные дочерние процессы наследуют эту переменную |382| `CLAUDE_CODE_SAFE_MODE` | Установите `1`, чтобы запуститься в безопасном режиме: CLAUDE.md, скиллы, плагины, хуки, MCP-серверы, пользовательские команды и агенты, стили вывода, рабочие процессы, пользовательские темы, пользовательские сочетания клавиш, команды строки состояния и предложения файлов, LSP-серверы и автоматическая память не загружаются — это нужно для устранения неполадок в сломанной конфигурации. Политика управляемых настроек по-прежнему применяется, включая настроенные политикой хуки, строку состояния и команды предложения файлов; управляемые плагины, управляемые скиллы, управляемый CLAUDE.md и настроенные политикой MCP-серверы — нет. Эквивалентно передаче [`--safe-mode`](/docs/ru/cli-reference#cli-flags). Непосредственно запущенные дочерние процессы наследуют эту переменную |

382| `CLAUDE_CODE_SCRIPT_CAPS` | JSON-объект, ограничивающий, сколько раз определённые скрипты могут вызываться за сессию, когда задана `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Ключи — подстроки, сопоставляемые с текстом команды; значения — целочисленные лимиты вызовов. Например, `{"deploy.sh": 2}` позволяет вызвать `deploy.sh` не более двух раз. Сопоставление выполняется по подстроке, поэтому уловки с раскрытием в оболочке вроде `./scripts/deploy.sh $(evil)` по-прежнему учитываются в лимите. Разветвление во время выполнения через `xargs` или `find -exec` не обнаруживается; это мера эшелонированной защиты |383| `CLAUDE_CODE_SCRIPT_CAPS` | JSON-объект, ограничивающий, сколько раз определённые скрипты могут вызываться за сессию, когда задана `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Ключи — подстроки, сопоставляемые с текстом команды; значения — целочисленные лимиты вызовов. Например, `{"deploy.sh": 2}` позволяет вызвать `deploy.sh` не более двух раз. Сопоставление выполняется по подстроке, поэтому уловки с раскрытием в оболочке вроде `./scripts/deploy.sh $(evil)` по-прежнему учитываются в лимите. Разветвление во время выполнения через `xargs` или `find -exec` не обнаруживается; это мера эшелонированной защиты |

383| `CLAUDE_CODE_SCROLL_SPEED` | Задаёт множитель прокрутки колесом мыши в [полноэкранном рендеринге](/docs/ru/fullscreen#mouse-wheel-scrolling). Принимает любое положительное значение до 20, включая дробные значения меньше 1, например `0.5`, чтобы замедлить ускоренную прокрутку тачпадом и колесом в терминалах, которые уже усиливают события колеса. Установите `3`, чтобы соответствовать `vim`, если ваш терминал отправляет одно событие колеса на щелчок без усиления. Игнорируется в терминале JetBrains IDE, где Claude Code использует собственную обработку прокрутки |384| `CLAUDE_CODE_SCROLL_SPEED` | Задаёт множитель прокрутки колесом мыши в [полноэкранном рендеринге](/docs/ru/fullscreen#mouse-wheel-scrolling). Принимает любое положительное значение до 20, включая дробные значения меньше 1, например `0.5`, чтобы замедлить ускоренную прокрутку тачпадом и колесом в терминалах, которые уже усиливают события колеса. Установите `3`, чтобы соответствовать `vim`, если ваш терминал отправляет одно событие колеса на щелчок без усиления. Игнорируется в терминале JetBrains IDE, где Claude Code использует собственную обработку прокрутки |

errors.md +1 −1

Details

4064 Marketplace is already added from a different source4064 Marketplace is already added from a different source

4065</h3>4065</h3>

4066 4066 

4067Вы подтвердили добавление маркетплейса через [`/plugin install <plugin> --marketplace <source>`](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command), и каталог, который Claude Code получил из этого источника, называет себя так же, как маркетплейс, который вы уже добавили из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.4067Вы указали новый источник маркетплейса с помощью [`--marketplace <source>` в команде установки](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command) — в сессии или из вашей оболочки. Каталог, который Claude Code получил из этого источника, имеет то же имя, что и маркетплейс, который вы уже добавили из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.

4068 4068 

4069```text theme={null}4069```text theme={null}

4070Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.4070Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.

glossary.md +1 −1

Details

511 Worktree isolation511 Worktree isolation

512</h3>512</h3>

513 513 

514Режим изоляции, который запускает Claude в отдельном git worktree в `.claude/worktrees/`, включаемый флагом `-w` или `isolation: worktree` в конфигурации subagent. Изменения остаются на отдельной ветке в отдельном каталоге, поэтому параллельные агенты не перезаписывают файлы друг друга.514Режим изоляции, который запускает Claude в отдельном git worktree в `.claude/worktrees/`, включаемый флагом `-w` или `isolation: worktree` в конфигурации субагента. Изменения остаются на отдельной ветке в отдельном каталоге, поэтому каждый из параллельных агентов редактирует собственную копию файлов.

515 515 

516Подробнее: [Запуск параллельных сеансов с git worktrees](/docs/ru/worktrees)516Подробнее: [Запуск параллельных сеансов с git worktrees](/docs/ru/worktrees)

517 517 

hooks.md +19 −8

Details

1237 Управление решениями SessionStart1237 Управление решениями SessionStart

1238</h4>1238</h4>

1239 1239 

1240Claude Code добавляет в контекст Claude stdout, который он [обрабатывает как обычный текст](#exit-code-0). Помимо [полей вывода JSON](#json-output), доступных всем хукам, вы можете возвращать следующие поля, специфичные для события:1240Хук SessionStart может добавлять контекст для Claude, задавать первое сообщение пользователя, устанавливать название сессии, отслеживать файлы и перезагружать скиллы. Для каждого из этих действий верните соответствующее поле в дополнение к [полям вывода JSON](#json-output), доступным всем хукам:

1241 1241 

1242| Поле | Описание |1242| Поле | Описание |

1243| :- | :- |1243| :- | :- |

1244| `additionalContext` | Строка, добавляемая в контекст Claude в начале диалога, до первого промпта. О том, как доставляется текст и что в него помещать, см. [Добавление контекста для Claude](#add-context-for-claude) |1244| `additionalContext` | Строка, добавляемая в контекст Claude в начале диалога, до первого промпта. О том, как доставляется текст и что в него помещать, см. [Добавление контекста для Claude](#add-context-for-claude) |

1245| `initialUserMessage` | Строка, используемая как первое пользовательское сообщение сессии. Применяется в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`, где она становится первым ходом, даже если промпт не передан. Если промпт передан, он следует за ней как следующий ход. В отличие от `additionalContext`, который прикрепляется к существующему ходу, это поле создаёт ход |1245| `initialUserMessage` | Строка, используемая как первое сообщение пользователя в сессии в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`. Она становится первым ходом, даже если вы не передаёте промпт. Переданный вами промпт следует за ней как следующий ход |

1246| `sessionTitle` | Задаёт название сессии, с тем же эффектом, что и `/rename`. Используйте, чтобы автоматически именовать сессии по папке запуска, ветке git или имени worktree. Применяется, когда `source` равен `"startup"`, `"resume"` или `"fork"`; игнорируется для `"clear"` и `"compact"` |1246| `sessionTitle` | Устанавливает название сессии с тем же эффектом, что и `/rename`. Применяется, когда `source` равно `"startup"`, `"resume"` или `"fork"` |

1247| `watchPaths` | Массив абсолютных путей для отслеживания событий [FileChanged](#filechanged) во время этой сессии |1247| `watchPaths` | Массив абсолютных путей для отслеживания событий [FileChanged](#filechanged) во время этой сессии |

1248| `reloadSkills` | Логическое значение. При `true` Claude Code повторно сканирует каталоги [скиллов](/docs/ru/skills) и команд после завершения хуков SessionStart, чтобы скиллы, установленные хуком, были доступны в той же сессии, начиная с первого промпта |1248| `reloadSkills` | Логическое значение. Если `true`, Claude Code повторно сканирует каталоги [скиллов](/docs/ru/skills) и команд после завершения хуков SessionStart. См. [Перезагрузка скиллов, устанавливаемых хуком](#reload-skills-that-a-hook-installs) |

1249 

1250Этот вывод добавляет контекст и даёт сессии название:

1249 1251 

1250```json theme={null}1252```json theme={null}

1251{1253{


1257}1259}

1258```1260```

1259 1261 

1260Поскольку для этого события обычный stdout и так доходит до Claude, хук, который только загружает контекст, может выводить его прямо в stdout, не формируя JSON. Используйте форму JSON, когда нужно совместить контекст с другими полями, например `sessionTitle`.1262Хук, который только добавляет контекст, может просто вывести его без формирования JSON, поскольку Claude Code добавляет [обычный текстовый stdout](#exit-code-0) хука SessionStart в контекст Claude.

1263 

1264Если хук SessionStart вашего плагина предоставляет `initialUserMessage` или `sessionTitle`, установите плагин до начала сессии. Claude Code игнорирует оба поля от плагина, установка которого завершается после того, как хуки SessionStart уже отработали.

1265 

1266<h4 id="reload-skills-that-a-hook-installs">

1267 Перезагрузка скиллов, устанавливаемых хуком

1268</h4>

1269 

1270Чтобы скиллы, устанавливаемые хуком SessionStart, стали доступны в той же сессии, верните `reloadSkills`. Обнаружение скиллов обычно выполняется до завершения хуков SessionStart, поэтому без этого поля файлы, которые хук записывает в `~/.claude/skills/` или `.claude/skills/`, могут отсутствовать при выполнении первого промпта.

1261 1271 

1262Используйте `reloadSkills`, когда хук SessionStart устанавливает или обновляет скиллы. Обнаружение скиллов обычно выполняется до завершения хуков SessionStart, поэтому файлы, которые хук записывает в `~/.claude/skills/` или `.claude/skills/`, иначе появились бы только в следующей сессии. Этот пример синхронизирует общий репозиторий скиллов и запрашивает повторное сканирование:1272В этом примере синхронизируется общий репозиторий скиллов и запрашивается повторное сканирование:

1263 1273 

1264```bash theme={null}1274```bash theme={null}

1265#!/bin/bash1275#!/bin/bash


1270echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1280echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1271```1281```

1272 1282 

1273URL репозитория здесь — заглушка; замените его на собственный репозиторий скиллов. С заглушкой клонирование завершается ошибкой и выводит сообщение `fatal:` в stderr. Stderr хука SessionStart, завершившегося с кодом 0, носит лишь информационный характер, поэтому запрос `reloadSkills` всё равно применяется.1283URL репозитория — это заглушка. Замените его адресом вашего собственного репозитория скиллов.

1274 1284 

1275<h4 id="persist-environment-variables">1285<h4 id="persist-environment-variables">

1276 Сохранение переменных окружения1286 Сохранение переменных окружения


1860| :- | :- | :- | :- |1870| :- | :- | :- | :- |

1861| `url` | string | `"https://example.com/api"` | URL, с которого загружается содержимое |1871| `url` | string | `"https://example.com/api"` | URL, с которого загружается содержимое |

1862| `prompt` | string | `"Extract the API endpoints"` | Промпт, применяемый к загруженному содержимому |1872| `prompt` | string | `"Extract the API endpoints"` | Промпт, применяемый к загруженному содержимому |

1873| `offset` | number | `100000` | Необязательное количество символов, пропускаемых от начала страницы. Claude задаёт его, чтобы продолжить чтение длинной страницы. Требуется Claude Code v2.1.290 или новее |

1863 1874 

1864<h5 id="websearch">1875<h5 id="websearch">

1865 WebSearch1876 WebSearch


4279Асинхронные hooks имеют дополнительные ограничения по сравнению с синхронными hooks:4290Асинхронные hooks имеют дополнительные ограничения по сравнению с синхронными hooks:

4280 4291 

4281* Выход hook доставляется на следующий ход разговора. Если сеанс неактивен, ответ ждёт до следующего взаимодействия пользователя. Исключение: hook `asyncRewake`, который выходит с кодом 2, пробуждает Claude немедленно даже когда сеанс неактивен.4292* Выход hook доставляется на следующий ход разговора. Если сеанс неактивен, ответ ждёт до следующего взаимодействия пользователя. Исключение: hook `asyncRewake`, который выходит с кодом 2, пробуждает Claude немедленно даже когда сеанс неактивен.

4282* Каждое выполнение создаёт отдельный фоновый процесс. Нет дедупликации между несколькими срабатываниями одного и того же асинхронного hook.4293* Каждое выполнение создаёт отдельный фоновый процесс.

4283 4294 

4284<h2 id="security-considerations">4295<h2 id="security-considerations">

4285 Соображения безопасности4296 Соображения безопасности

Details

599 599 

600В сеансах, подписанных на [шлюз приложений Claude](/docs/ru/claude-apps-gateway) через `/login`, CLI помечает экспорты аутентифицированной идентификацией: `user.id` — это субъект IdP, `user.email` — это адрес электронной почты входа, и `user.groups` содержит членство в группе IdP в виде строки, разделённой запятыми. Каждый экспорт также содержит `identity.source: gateway-oidc`. Идентификация шлюза применяется последней, поэтому ключи `user.*` и `identity.*`, установленные через `OTEL_RESOURCE_ATTRIBUTES`, игнорируются в сеансах шлюза.600В сеансах, подписанных на [шлюз приложений Claude](/docs/ru/claude-apps-gateway) через `/login`, CLI помечает экспорты аутентифицированной идентификацией: `user.id` — это субъект IdP, `user.email` — это адрес электронной почты входа, и `user.groups` содержит членство в группе IdP в виде строки, разделённой запятыми. Каждый экспорт также содержит `identity.source: gateway-oidc`. Идентификация шлюза применяется последней, поэтому ключи `user.*` и `identity.*`, установленные через `OTEL_RESOURCE_ATTRIBUTES`, игнорируются в сеансах шлюза.

601 601 

602<Note>

603 События, которые Claude Code записывает в лог до входа разработчика, не содержат идентичность шлюза. Когда Claude Code открывает сессию без входа в шлюз, например после того как [шлюз завершил сеанс входа](/docs/ru/errors#cloud-gateway-session-expired), события запуска, записанные до входа, содержат анонимный `user.id` и не содержат `identity.source`. К ним относятся [`managed_settings_resolved`](#managed-settings-resolved-event), [`plugin_loaded`](#plugin-loaded-event) и [`mcp_server_connection`](#mcp-server-connection-event).

604</Note>

605 

602Для атрибутов идентификации в сеансах Claude Desktop и Cowork, которые подключаются через шлюз, см. [справочник по телеметрии шлюза](/docs/ru/claude-apps-gateway-config#telemetry).606Для атрибутов идентификации в сеансах Claude Desktop и Cowork, которые подключаются через шлюз, см. [справочник по телеметрии шлюза](/docs/ru/claude-apps-gateway-config#telemetry).

603 607 

604События дополнительно включают следующие атрибуты. Они никогда не прикрепляются к метрикам, так как это вызовет неограниченную кардинальность:608События дополнительно включают следующие атрибуты. Они никогда не прикрепляются к метрикам, так как это вызовет неограниченную кардинальность:

Details

91| `-y, --yes` | Примите отображаемую команду установки без запроса `Run this command now?`. Игнорируется, когда команда запускается внутри сессии Claude Code, например из инструмента Bash или хука. Требует Claude Code v2.1.229 или позже |91| `-y, --yes` | Примите отображаемую команду установки без запроса `Run this command now?`. Игнорируется, когда команда запускается внутри сессии Claude Code, например из инструмента Bash или хука. Требует Claude Code v2.1.229 или позже |

92| `--accept-command <sha256>` | Примите отображаемую команду установки, чей `sha256` предыдущий запуск [`--json`](#plugin-json-result) сообщил в `shownCommand`, вместо `-y`. Не может быть объединён с `-y`. См. [Принять отображаемую команду установки](#accept-a-displayed-install-command). Требует Claude Code v2.1.271 или позже |92| `--accept-command <sha256>` | Примите отображаемую команду установки, чей `sha256` предыдущий запуск [`--json`](#plugin-json-result) сообщил в `shownCommand`, вместо `-y`. Не может быть объединён с `-y`. См. [Принять отображаемую команду установки](#accept-a-displayed-install-command). Требует Claude Code v2.1.271 или позже |

93| `--json` | Выведите результат как один JSON объект на последней строке stdout вместо читаемого сообщения для использования в скриптах. См. [Формат результата JSON](#plugin-json-result). Требует Claude Code v2.1.268 или позже |93| `--json` | Выведите результат как один JSON объект на последней строке stdout вместо читаемого сообщения для использования в скриптах. См. [Формат результата JSON](#plugin-json-result). Требует Claude Code v2.1.268 или позже |

94| `--marketplace <source>` | Установите `<plugin>`, указанный по его простому имени, из маркетплейса по адресу `<source>`, предварительно добавив маркетплейс, если вы ещё не добавили его. См. [Добавление маркетплейса и установка одной командой](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command). Требует Claude Code v2.1.292 или позже |

94 95 

95Запустите `claude plugin install --help` в вашей оболочке, чтобы увидеть каждую опцию, которую поддерживает ваша версия.96Запустите `claude plugin install --help` в вашей оболочке, чтобы увидеть каждую опцию, которую поддерживает ваша версия.

96 97 

Details

189 189 

190* **Область**: пользовательская область по умолчанию. Передайте `--scope project` или `--scope local`, чтобы изменить её.190* **Область**: пользовательская область по умолчанию. Передайте `--scope project` или `--scope local`, чтобы изменить её.

191* **Когда плагины загружаются**: плагины, которые он устанавливает, загружаются в следующий раз, когда вы запускаете Claude Code, или когда вы запускаете `/reload-plugins` в уже открытой сессии.191* **Когда плагины загружаются**: плагины, которые он устанавливает, загружаются в следующий раз, когда вы запускаете Claude Code, или когда вы запускаете `/reload-plugins` в уже открытой сессии.

192* **Маркетплейс должен быть добавлен первым**: на машине, где никто ещё не открывал интерактивную сессию Claude Code, официальный маркетплейс не зарегистрирован, поэтому скрипт, который устанавливает из него, запускает `claude plugin marketplace add anthropics/claude-plugins-official` перед установкой.192* **Маркетплейс на новой машине**: на машине, где никто ещё не открывал интерактивную сессию Claude Code, официальный маркетплейс не зарегистрирован, поэтому скрипт, который устанавливает из него, запускает `claude plugin marketplace add anthropics/claude-plugins-official` перед установкой. См. [Add and install from your shell](#add-and-install-from-your-shell).

193 193 

194```bash theme={null}194```bash theme={null}

195claude plugin install formatter@your-org --scope project195claude plugin install formatter@your-org --scope project


232 Добавление маркетплейса и установка в одной команде232 Добавление маркетплейса и установка в одной команде

233</h3>233</h3>

234 234 

235Чтобы установить плагин из маркетплейса, который вы ещё не добавили, запустите `/plugin install` в сессии Claude Code и назовите источник маркетплейса с помощью `--marketplace`. Требуется Claude Code v2.1.275 или позже.235Чтобы установить плагин из маркетплейса, который вы ещё не добавили, назовите источник маркетплейса с помощью `--marketplace` в команде установки — в сессии или из вашей оболочки. Источник принимает [те же формы, что и `/plugin marketplace add`](#add-a-marketplace), такие как GitHub `owner/repo`, URL git или локальный путь. Дайте имя плагина само по себе, без суффикса `@marketplace`.

236 

237<h4 id="add-and-install-in-a-session">

238 Добавление и установка в сессии

239</h4>

240 

241Запустите `/plugin install` в сессии Claude Code с плагином и источником. Требуется Claude Code v2.1.275 или позже. В сессии источник не может содержать пробелы.

236 242 

237```text theme={null}243```text theme={null}

238/plugin install deploy-helper --marketplace your-org/plugins244/plugin install deploy-helper --marketplace your-org/plugins

239```245```

240 246 

241Источник принимает [те же формы, что и `/plugin marketplace add`](#add-a-marketplace), такие как GitHub `owner/repo`, URL git или локальный путь, за исключением того, что он не может содержать пробелы. Дайте имя плагина само по себе, без суффикса `@marketplace`.

242 

243Если вы ещё не добавили этот маркетплейс, Claude Code показывает разрешённый источник и просит вас подтвердить перед добавлением. После добавления маркетплейса детали плагина открываются и вы выбираете [область установки](#install-a-plugin). Если источник совпадает с маркетплейсом, который вы уже добавили, Claude Code пропускает подтверждение и открывает детали плагина в этом маркетплейсе.247Если вы ещё не добавили этот маркетплейс, Claude Code показывает разрешённый источник и просит вас подтвердить перед добавлением. После добавления маркетплейса детали плагина открываются и вы выбираете [область установки](#install-a-plugin). Если источник совпадает с маркетплейсом, который вы уже добавили, Claude Code пропускает подтверждение и открывает детали плагина в этом маркетплейсе.

244 248 

249<h4 id="add-and-install-from-your-shell">

250 Добавление и установка из оболочки

251</h4>

252 

253В вашей оболочке, не запуская сессию, запустите `claude plugin install` с плагином и источником. Требуется Claude Code v2.1.292 или позже.

254 

255```bash theme={null}

256claude plugin install deploy-helper --marketplace your-org/plugins

257```

258 

259Команда оболочки добавляет маркетплейс без шага подтверждения. Маркетплейс, который вы уже добавили из этого источника, используется повторно. Новый добавляется с теми же [проверками политики организации](/docs/ru/plugins/org#restrict-what-users-can-install), что и `claude plugin marketplace add`, и объявляется в ваших пользовательских настройках, даже если вы передаёте `--scope project`.

260 

245<h3 id="add-a-private-marketplace">261<h3 id="add-a-private-marketplace">

246 Добавление приватного маркетплейса262 Добавление приватного маркетплейса

247</h3>263</h3>

Details

138| `$.mcp.call` | Вызывает инструмент на подключенном MCP сервере в соответствии с правилами разрешений сеанса |138| `$.mcp.call` | Вызывает инструмент на подключенном MCP сервере в соответствии с правилами разрешений сеанса |

139| `$.model.complete` | Использует план пользователя или ключ API для вызовов модели |139| `$.model.complete` | Использует план пользователя или ключ API для вызовов модели |

140| `$.prompt.submit` | Отправляет запрос и может отправить его как собственные слова пользователя |140| `$.prompt.submit` | Отправляет запрос и может отправить его как собственные слова пользователя |

141| `$.session.send` | Отправляет сообщение, которое читает Claude другого сеанса или подагента |141| `$.session.send` | Отправляет сообщение, которое читает Claude другой сессии, субагента или [участника команды](/docs/ru/agent-teams) |

142 142 

143В строке `hooks:`, [`tool.call`](/docs/ru/plugins/mods/reference#tools) и [`prompt.submit`](/docs/ru/plugins/mods/reference#prompts-and-what-claude-reads) означают, что мод видит каждый вызов инструмента и каждый запрос и может их изменять. [`session.append`](/docs/ru/plugins/mods/reference#session) означает, что мод может переписать каждую строку разговора перед ее сохранением. [`ui.render{component=AskUserQuestion}`](/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) означает, что мод может переделать диалог, который Claude использует для вопроса пользователю. `tool.check` означает, что мод может одобрить или отказать в вызове инструмента перед появлением запроса разрешения. [Узнать, что происходит по умолчанию](#know-what-happens-by-default) перечисляет, какие из ваших правил и hooks имеют приоритет над его ответом.143В строке `hooks:`, [`tool.call`](/docs/ru/plugins/mods/reference#tools) и [`prompt.submit`](/docs/ru/plugins/mods/reference#prompts-and-what-claude-reads) означают, что мод видит каждый вызов инструмента и каждый запрос и может их изменять. [`session.append`](/docs/ru/plugins/mods/reference#session) означает, что мод может переписать каждую строку разговора перед ее сохранением. [`ui.render{component=AskUserQuestion}`](/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) означает, что мод может переделать диалог, который Claude использует для вопроса пользователю. `tool.check` означает, что мод может одобрить или отказать в вызове инструмента перед появлением запроса разрешения. [Узнать, что происходит по умолчанию](#know-what-happens-by-default) перечисляет, какие из ваших правил и hooks имеют приоритет над его ответом.

144 144 

Details

140| Вызов | Что видит пользователь |140| Вызов | Что видит пользователь |

141| :- | :- |141| :- | :- |

142| `$.ui.status(text)` | Одна строка под запросом, которая остаётся, пока вы её не измените. Она начинается с `⚠` и имени mod, как в `⚠ my-mod: checks: 3 passing`. |142| `$.ui.status(text)` | Одна строка под запросом, которая остаётся, пока вы её не измените. Она начинается с `⚠` и имени mod, как в `⚠ my-mod: checks: 3 passing`. |

143| `$.ui.toast(text)` | Всплывающее уведомление в верхнем правом углу с именем mod над текстом, которое исчезает через несколько секунд |143| `$.ui.toast(text)` | Всплывающее уведомление с именем мода, которое исчезает через несколько секунд. В [полноэкранном режиме отрисовки](/docs/ru/fullscreen) это блок в правом верхнем углу, а в классическом рендерере — одна строка справа под промптом. |

144| `$.ui.log(text)` | Тусклая строка в стенограмме, которую Claude не читает. Она начинается с `●` и имени mod, как в `● my-mod: build finished`. |144| `$.ui.log(text)` | Тусклая строка в стенограмме, которую Claude не читает. Она начинается с `●` и имени mod, как в `● my-mod: build finished`. |

145 145 

146<h3 id="start-a-turn-from-a-background-job">146<h3 id="start-a-turn-from-a-background-job">


159 Отправка и получение сообщений между сеансами159 Отправка и получение сообщений между сеансами

160</h2>160</h2>

161 161 

162Mod может отправить простое текстовое сообщение другому вашему сеансу или одному из подагентов этого сеанса и наблюдать сообщения, которые приходят и уходят. `$.session.send({ to, text })` отправляет один, такую же доставку, которую делает инструмент SendMessage. `to` — это `{ sessionId }` для сеанса, `{ agentId }` для подагента из `$.agent.list()` или адрес строки, из которого пришло полученное сообщение. Вызов разрешается после того, как сообщение поставлено в очередь, с `{ isDelivered: true }`. Когда ничего не было доставлено, он разрешается с `{ isDelivered: false, reason }`, и `reason` говорит почему.162Мод может отправить простое текстовое сообщение другой вашей сессии, одному из субагентов этой сессии или участнику её [команды агентов](/docs/ru/agent-teams). Он также может наблюдать за сообщениями, которые приходят и уходят.

163 

164Чтобы отправить сообщение, вызовите `$.session.send({ to, text })`: он выполняет такую же доставку, как инструмент SendMessage. Задайте `to` в зависимости от получателя сообщения:

165 

166* **Другая ваша сессия**: `{ sessionId }`

167* **Субагент или участник команды**: `{ agentId }` с id из `$.agent.list()`

168* **Отправитель полученного вами сообщения**: строковый адрес, с которого пришло это сообщение

169 

170Вызов разрешается после того, как сообщение поставлено в очередь, с `{ isDelivered: true }`. Если ничего не было доставлено, он разрешается с `{ isDelivered: false, reason }`, и `reason` сообщает причину.

163 171 

164Этот hook отвечает на команду `/ping`, [зарегистрированную как команда](#add-a-command), попросив сеанс, чей id вы вводите после неё, получить статус:172Этот hook отвечает на команду `/ping`, [зарегистрированную как команда](#add-a-command), попросив сеанс, чей id вы вводите после неё, получить статус:

165 173 

Details

281 281 

282`result.usage` содержит количество токенов, которое Claude API сообщает для запроса, а также `model`, которая ответила: `input_tokens`, `output_tokens`, `cache_read_input_tokens` и `cache_creation_input_tokens`. Хук запускается и для запросов субагентов, поэтому проверяйте `e.agentId`, если вам нужен только основной диалог.282`result.usage` содержит количество токенов, которое Claude API сообщает для запроса, а также `model`, которая ответила: `input_tokens`, `output_tokens`, `cache_read_input_tokens` и `cache_creation_input_tokens`. Хук запускается и для запросов субагентов, поэтому проверяйте `e.agentId`, если вам нужен только основной диалог.

283 283 

284Чтобы увидеть вызовы инструментов, которые API выполнил сам во время запроса, например вызовы [инструмента advisor](/docs/ru/advisor), читайте `result.serverToolUses`. Claude Code не выполняет эти вызовы, поэтому для них не срабатывает ни один хук `tool.call` или `tool.check`. Поле отсутствует, если в ответе нет таких вызовов, и для него требуется Claude Code v2.1.290 или новее.

285 

284<h3 id="hook-the-settings-hook-events">286<h3 id="hook-the-settings-hook-events">

285 Обработка событий хуков настроек287 Обработка событий хуков настроек

286</h3>288</h3>

Details

10 10 

11На этой карте показано, где мод может рисовать в сессии терминала:11На этой карте показано, где мод может рисовать в сессии терминала:

12 12 

13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Map of a Claude Code terminal session. A mod can add a pane as a sidebar on the right, a toast at the top right of the transcript, a log line in the transcript, a band above the prompt, and a status line under the prompt. A mod can redraw messages, tool call rows, and the spinner. The prompt is Claude Code's own." width="600" height="336" data-path="images/mods-screen-map.svg" />13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Карта сессии терминала Claude Code в полноэкранном режиме отрисовки. Мод может добавить панель в виде боковой панели справа, всплывающее уведомление в правом верхнем углу транскрипта, строку лога в транскрипте, полосу над промптом и строку состояния под промптом. Мод может перерисовывать сообщения, строки вызовов инструментов и спиннер. Промпт принадлежит самому Claude Code." width="600" height="336" data-path="images/mods-screen-map.svg" />

14 14 

15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Map of a Claude Code terminal session. A mod can add a pane as a sidebar on the right, a toast at the top right of the transcript, a log line in the transcript, a band above the prompt, and a status line under the prompt. A mod can redraw messages, tool call rows, and the spinner. The prompt is Claude Code's own." width="600" height="336" data-path="images/mods-screen-map-dark.svg" />15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Карта сессии терминала Claude Code в полноэкранном режиме отрисовки. Мод может добавить панель в виде боковой панели справа, всплывающее уведомление в правом верхнем углу транскрипта, строку лога в транскрипте, полосу над промптом и строку состояния под промптом. Мод может перерисовывать сообщения, строки вызовов инструментов и спиннер. Промпт принадлежит самому Claude Code." width="600" height="336" data-path="images/mods-screen-map-dark.svg" />

16 16 

17В более узком терминале панель находится над промптом вместо того, чтобы находиться рядом с транскриптом.17В более узком терминале панель находится над промптом вместо того, чтобы находиться рядом с транскриптом.

18 18 


324| `title` | Метка вкладки панели, когда открыто несколько панелей |324| `title` | Метка вкладки панели, когда открыто несколько панелей |

325| `focus` | Запрашивает [фокус клавиатуры](#know-which-keys-your-mod-can-receive) |325| `focus` | Запрашивает [фокус клавиатуры](#know-which-keys-your-mod-can-receive) |

326| `closeOnEscape` | Позволяет закрыть панель клавишей Esc |326| `closeOnEscape` | Позволяет закрыть панель клавишей Esc |

327| `holdToasts` | Удерживает всплывающие уведомления, небольшие уведомления от [`$.ui.toast`](/docs/ru/plugins/mods/api#show-something-without-starting-a-turn), пока панель не закроется |327| `holdToasts` | В терминале удерживает всплывающие уведомления, пока показывается именно эта панель. См. [Удержание всплывающих уведомлений за диалогом](#hold-toasts-behind-a-dialog). |

328| `rows` | Высота, которую нужно запросить, когда панель находится над промптом. По умолчанию треть пространства. |328| `rows` | Высота, которую нужно запросить, когда панель находится над промптом. По умолчанию треть пространства. |

329| `columns` | Ширина, которую нужно запросить, когда панель находится рядом с транскриптом |329| `columns` | Ширина, которую нужно запросить, когда панель находится рядом с транскриптом |

330 330 


337 337 

338Чтобы позволить команде открыть панель, пока Claude работает, добавьте `immediate: true` при [регистрации команды](/docs/ru/plugins/mods/api#add-a-command). Без этого команда, введенная во время хода, ждет конца хода.338Чтобы позволить команде открыть панель, пока Claude работает, добавьте `immediate: true` при [регистрации команды](/docs/ru/plugins/mods/api#add-a-command). Без этого команда, введенная во время хода, ждет конца хода.

339 339 

340<h4 id="hold-toasts-behind-a-dialog">

341 Удержание всплывающих уведомлений за диалогом

342</h4>

343 

344Передайте `holdToasts: true` в `$.ui.open`, когда панель — это диалог, на который пользователь отвечает и который затем покидает, чтобы всплывающие уведомления не появлялись, пока он принимает решение. В терминале удержание длится, пока показывается именно эта панель, а всплывающее уведомление, вызванное в это время, ждет окончания удержания.

345 

346Claude Code удерживает всплывающие уведомления других модов и собственные кратковременные уведомления, а также те, которые ваш мод вызывает с помощью [`$.ui.toast`](/docs/ru/plugins/mods/api#show-something-without-starting-a-turn). Не задавайте это поле для панели, которая остается открытой, чтобы пользователь продолжал их видеть.

347 

340<h4 id="when-a-pane-waits-for-a-wider-terminal">348<h4 id="when-a-pane-waits-for-a-wider-terminal">

341 Когда панель ждет более широкого терминала349 Когда панель ждет более широкого терминала

342</h4>350</h4>

Details

209| [`$.ui`](/docs/ru/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |209| [`$.ui`](/docs/ru/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |

210| [`$.command`](/docs/ru/plugins/mods/api#add-a-command) | `register`, `run`, `list` |210| [`$.command`](/docs/ru/plugins/mods/api#add-a-command) | `register`, `run`, `list` |

211| [`$.tool`](/docs/ru/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |211| [`$.tool`](/docs/ru/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |

212| `$.agent` | `register`, `spawn`, `list` |212| `$.agent` | `register`, `spawn`, `list`. `list()` возвращает субагентов и участников команды агентов этой сессии, у каждого из которых есть `status` со значением `pending`, `running`, `waiting`, `idle`, `completed`, `failed` или `killed`, причём `idle` и `waiting` требуют Claude Code v2.1.289 или более поздней версии. |

213| [`$.model`](/docs/ru/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |213| [`$.model`](/docs/ru/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |

214| [`$.prompt`](/docs/ru/plugins/mods/api#start-a-turn-from-a-background-job) | `submit`, `read`, `fill`, `suggest`, `compose`. Claude читает текст из `submit({ text })` после предложения, называющего ваш мод отправителем. `submit({ text, asUser: true })` отправляет текст как собственные слова пользователя, без этого предложения. |214| [`$.prompt`](/docs/ru/plugins/mods/api#start-a-turn-from-a-background-job) | `submit`, `read`, `fill`, `suggest`, `compose`. Claude читает текст из `submit({ text })` после предложения, называющего ваш мод отправителем. `submit({ text, asUser: true })` отправляет текст как собственные слова пользователя, без этого предложения. |

215| `$.turn` | `abort` |215| `$.turn` | `abort` |


317| Таймаут `$.process.run` | 30 секунд по умолчанию, не более 10 минут |317| Таймаут `$.process.run` | 30 секунд по умолчанию, не более 10 минут |

318| `maxTokens` для `$.model.complete` | 1024 по умолчанию, до 64 000 или предела вывода модели |318| `maxTokens` для `$.model.complete` | 1024 по умолчанию, до 64 000 или предела вывода модели |

319| `$.fs.read` и `$.fs.write` | 4 МиБ на один файл |319| `$.fs.read` и `$.fs.write` | 4 МиБ на один файл |

320| Причина `drop` хука или причина `deny` для `config.set` | 4 096 символов. Конец более длинной причины обрезается, а drop или deny всё равно применяется. Обрезка требует Claude Code v2.1.292 или новее; в более ранних версиях хук вместо этого [завершается с ошибкой](/docs/ru/plugins/mods/events#handle-a-hook-that-fails). |

320| Текст в одном дереве | Отрисовываются первые 100 000 символов |321| Текст в одном дереве | Отрисовываются первые 100 000 символов |

321| `language` или `path` элемента `Code`, `value` варианта `Select` или `module` элемента `Client` | 10 000 символов. Если значение длиннее, Claude Code [отрисовывает собственную версию области](/docs/ru/plugins/mods/interface#build-a-tree-from-elements). |322| `language` или `path` элемента `Code`, `value` варианта `Select` или `module` элемента `Client` | 10 000 символов. Если значение длиннее, Claude Code [отрисовывает собственную версию области](/docs/ru/plugins/mods/interface#build-a-tree-from-elements). |

322| `href` элемента `Link` | 2 048 символов. Более длинный `href` не даёт отрисовать всё дерево. |323| `href` элемента `Link` | 2 048 символов. Более длинный `href` не даёт отрисовать всё дерево. |

Details

110* `returned neither { value } nor { deny }`: stub для вызова mods API вернул простое значение, из-за чего тест не проходит110* `returned neither { value } nor { deny }`: stub для вызова mods API вернул простое значение, из-за чего тест не проходит

111* `no implementation for` с последующим именем: ваш мод сделал этот вызов и никакой stub не отвечает на него111* `no implementation for` с последующим именем: ваш мод сделал этот вызов и никакой stub не отвечает на него

112 112 

113Набор также экспортирует встроенные mock, которые отвечают за целое пространство имён для вас. `mock.clock(on)` отвечает на [`$.clock`](/docs/ru/plugins/mods/api#run-work-in-the-background), `mock.store(on, { count: 7 })` отвечает на `$.store` из хранилища, которое начинается с этих записей, и `mock.env(on, { CI: 'true' })` отвечает на `$.env.get` из этих переменных. `mock.clock` возвращает mock часы, которые ваш тест продвигает, поэтому тест таймера не ждёт. `mock.store` ничего не возвращает, поэтому чтобы проверить, что сохранил ваш мод, напишите два `store` stub сами, как это делает [drawing test](#test-a-drawing).113Набор также экспортирует готовые mock для часов, хранилища, переменных окружения и строк, добавляемых в диалог:

114 

115* **`mock.clock(on)`**: отвечает на [`$.clock`](/docs/ru/plugins/mods/api#run-work-in-the-background) и возвращает mock часов, которые ваш тест продвигает, поэтому тест таймера не ждёт.

116* **`mock.store(on, { count: 7 })`**: отвечает на `$.store` из хранилища, которое начинается с этих записей. Он ничего не возвращает, поэтому чтобы проверить, что сохранил ваш мод, напишите два `store` stub сами, как это делает [drawing test](#test-a-drawing).

117* **`mock.env(on, { CI: 'true' })`**: отвечает на `$.env.get` из этих переменных.

118* **`mock.session(on)`**: возвращает mock сессии, чей метод `appended()` перечисляет строки, добавленные вашим модом с помощью [`$.session.append`](/docs/ru/plugins/mods/reference#session), начиная с самых старых; требуется Claude Code v2.1.293 или новее.

114 119 

115<h3 id="follow-the-test-kit’s-rules">120<h3 id="follow-the-test-kit’s-rules">

116 Следуйте правилам набора для тестирования121 Следуйте правилам набора для тестирования


168 Посмотрите, что возвращает stub173 Посмотрите, что возвращает stub

169</h3>174</h3>

170 175 

171Каждый вызов mods API, который ваш мод делает в тесте, нуждается в stub, который отвечает в место Claude Code, кроме нескольких, которые набор отвечает сам: [`$.ui.invalidate`](/docs/ru/plugins/mods/interface#redraw-when-something-changes) и [`$.state`](/docs/ru/plugins/mods/interface#keep-state) вызовы. Для вызовов `$.clock` используйте `mock.clock(on)`, иначе `$.clock.now()` вашего мода завершится неудачей с `no implementation for clock.now`.176Каждый вызов mods API, который ваш мод делает в тесте, нуждается в stub, который отвечает вместо Claude Code, кроме нескольких, на которые набор отвечает сам: вызовы [`$.ui.invalidate`](/docs/ru/plugins/mods/interface#redraw-when-something-changes), [`$.state`](/docs/ru/plugins/mods/interface#keep-state) и `$.session.append`. Для вызовов `$.clock` используйте `mock.clock(on)`, иначе `$.clock.now()` вашего мода завершится неудачей с `no implementation for clock.now`.

172 177 

173Эта таблица перечисляет те, которые моды используют чаще всего. Первый столбец — это вызов, который делает ваш мод, или событие, которое он передаёт с `next(e)`. Второй — это функция для передачи `on` под этим именем, поэтому строка `$.store.get` становится `on('store.get', ($, e) => ({ value: saved.get(e.key) }))`. `'...'` в stub отмечает текст для вас, чтобы заполнить:178Эта таблица перечисляет те, которые моды используют чаще всего. Первый столбец — это вызов, который делает ваш мод, или событие, которое он передаёт с `next(e)`. Второй — это функция для передачи `on` под этим именем, поэтому строка `$.store.get` становится `on('store.get', ($, e) => ({ value: saved.get(e.key) }))`. `'...'` в stub отмечает текст для вас, чтобы заполнить:

174 179 

Details

209 Рисунок не появляется или не отвечает209 Рисунок не появляется или не отвечает

210</h2>210</h2>

211 211 

212Мод загрузился, и его панель, полоса или элементы управления не ведут себя так, как вы ожидаете.212Мод загрузился, и его панель, полоса, всплывающее уведомление или элементы управления не ведут себя так, как вы ожидаете.

213 213 

214<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">214<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">

215 Панель или полоса пуста или показывает обычное содержимое Claude Code215 Панель или полоса пуста или показывает обычное содержимое Claude Code


247 247 

248Откройте панель из команды или кнопки или проверьте результат `isPlaced` вызова. См. [Откройте панель в нужное время](/docs/ru/plugins/mods/interface#open-a-pane-at-the-right-time).248Откройте панель из команды или кнопки или проверьте результат `isPlaced` вызова. См. [Откройте панель в нужное время](/docs/ru/plugins/mods/interface#open-a-pane-at-the-right-time).

249 249 

250<h3 id="a-toast-doesn’t-appear">

251 Всплывающее уведомление не появляется

252</h3>

253 

254Ваш мод вызывает [`$.ui.toast`](/docs/ru/plugins/mods/api#show-something-without-starting-a-turn) в интерактивной сессии терминала, а вы не видите уведомление. Чтобы убедиться, что вызов выполнился, найдите в [логе отладки](#read-the-debug-log) строку с именем вашего мода и текстом уведомления, как в `$.ui.toast (first-mod): build finished`. Затем проверьте такие причины:

255 

256* **Строки для вызова нет**: найдите строку, которая объясняет, почему Claude Code отклонил вызов, как в `first-mod: $.ui.toast dropped: timeoutMs is a whole number of ms, 1 to 60000`.

257* **Панель удерживает уведомления**: ваш или другой мод передал [`holdToasts`](/docs/ru/plugins/mods/interface#hold-toasts-behind-a-dialog) при открытии отображаемой панели. Закройте панель, чтобы прекратить удержание. Если панель ваша и должна оставаться открытой, удалите `holdToasts` из ее вызова `$.ui.open` и откройте панель снова.

258* **Уведомление находится под промптом**: в [классическом рендерере](/docs/ru/fullscreen#enable-fullscreen-rendering) посмотрите справа под промптом. Уведомление там - это одна строка, начинающаяся с имени мода, а не блок в правом верхнем углу.

259* **Ваш мод показал более новое уведомление**: в классическом рендерере более новое уведомление от вашего мода может заменить то, которое отображается или ожидает отображения. В логе отладки есть еще одна строка для старого уведомления, которая заканчивается на `gave way, cut short`, если оно отображалось, или на `gave way, unseen`, если оно так и не появилось. Чтобы показать оба сообщения, поместите их в одно уведомление.

260* **Время уведомления истекло до отрисовки**: в полноэкранной отрисовке Claude Code отрисовывает не более трех уведомлений одновременно, поэтому время уведомления может истечь до его отрисовки. В логе отладки есть еще одна строка для этого уведомления, которая заканчивается на `left the stack, never drawn`. Когда ваш мод показывает несколько уведомлений сразу, поместите сообщения в одно уведомление.

261 

262До v2.1.290 Claude Code отбрасывал уведомление, показанное в течение двух секунд после последнего уведомления, которое он отобразил для вашего мода, и строка лога отладки для отброшенного уведомления сообщала `within 2000ms of the last; dropped`.

263 

250<h3 id="hotkeys-do-nothing">264<h3 id="hotkeys-do-nothing">

251 Горячие клавиши ничего не делают265 Горячие клавиши ничего не делают

252</h3>266</h3>

Details

129* Добавьте маркетплейс один раз: `claude plugin marketplace add your-org/your-marketplace`, где аргумент — это сокращение GitHub `owner/repo`, URL или путь129* Добавьте маркетплейс один раз: `claude plugin marketplace add your-org/your-marketplace`, где аргумент — это сокращение GitHub `owner/repo`, URL или путь

130* Установите плагин: `claude plugin install deploy-helper@your-marketplace`130* Установите плагин: `claude plugin install deploy-helper@your-marketplace`

131* Или сделайте оба из сеанса: `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Требуется Claude Code v2.1.275 или позже. См. [Добавьте маркетплейс и установите в одной команде](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command)131* Или сделайте оба из сеанса: `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Требуется Claude Code v2.1.275 или позже. См. [Добавьте маркетплейс и установите в одной команде](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command)

132* Или сделайте оба действия из оболочки одной командой: `claude plugin install deploy-helper --marketplace your-org/your-marketplace`. Требуется Claude Code v2.1.292 или позже

132 133 

133<h3 id="ship-updates-to-users">134<h3 id="ship-updates-to-users">

134 Отправьте обновления пользователям135 Отправьте обновления пользователям

Details

163 `Invalid marketplace source format`163 `Invalid marketplace source format`

164</h3>164</h3>

165 165 

166Вы запустили `/plugin marketplace add <source>` или `claude plugin marketplace add <source>`, и Claude Code ответил `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`.166Вы запустили `/plugin marketplace add <source>`, `claude plugin marketplace add <source>` или `claude plugin install <plugin> --marketplace <source>`, и Claude Code ответил `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`.

167 167 

168Claude Code принимает источник в одной из этих форм:168Claude Code принимает источник в одной из этих форм:

169 169 


568 `Marketplace "<name>" is already added from a different source`568 `Marketplace "<name>" is already added from a different source`

569</h3>569</h3>

570 570 

571Вы подтвердили добавление маркетплейса через [`/plugin install <plugin> --marketplace <source>`](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command), и каталог, который Claude Code получил из этого источника, имеет то же имя, что и маркетплейс, который вы уже добавили из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.571Вы указали новый источник маркетплейса с помощью [`--marketplace <source>` в команде установки](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command), в сессии или из вашей оболочки. Каталог, который Claude Code получил из этого источника, имеет то же имя, что и маркетплейс, который вы уже добавили из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.

572 572 

573Полное сообщение выглядит так:573Полное сообщение выглядит так:

574 574 

Details

403 403 

404* [Управляемый файл MCP](/docs/ru/managed-mcp) корпоративного уровня по стандартному системному пути: `/etc/claude-code/managed-mcp.json` на хостах раннеров под Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` на хостах под macOS. Используйте его для строго контролируемых парков машин, где могут загружаться только серверы из списка администратора. Правила приоритета описаны в разделе [эксклюзивный контроль с помощью managed-mcp.json](/docs/ru/managed-mcp#exclusive-control-with-managed-mcp-json). Если этот файл находится на хосте раннера, Claude Code пропускает MCP-серверы, которые плоскость управления Anthropic передаёт в сессию, включая коннекторы claude.ai, и перечисляет их в предупреждении в stderr дочернего процесса сессии, которое раннер записывает в лог на уровне `debug`. До версии v2.1.229 такие сессии завершались при запуске с ошибкой `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.404* [Управляемый файл MCP](/docs/ru/managed-mcp) корпоративного уровня по стандартному системному пути: `/etc/claude-code/managed-mcp.json` на хостах раннеров под Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` на хостах под macOS. Используйте его для строго контролируемых парков машин, где могут загружаться только серверы из списка администратора. Правила приоритета описаны в разделе [эксклюзивный контроль с помощью managed-mcp.json](/docs/ru/managed-mcp#exclusive-control-with-managed-mcp-json). Если этот файл находится на хосте раннера, Claude Code пропускает MCP-серверы, которые плоскость управления Anthropic передаёт в сессию, включая коннекторы claude.ai, и перечисляет их в предупреждении в stderr дочернего процесса сессии, которое раннер записывает в лог на уровне `debug`. До версии v2.1.229 такие сессии завершались при запуске с ошибкой `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

405* Ключ [`managedMcpServers`](/docs/ru/settings-reference#managedmcpservers) в [управляемых настройках](/docs/ru/managed-settings) на хосте раннера: предоставляет серверы HTTP и SSE без эксклюзивного контроля, поэтому серверы из других источников по-прежнему загружаются. Требуется Claude Code v2.1.259 или новее.405* Ключ [`managedMcpServers`](/docs/ru/settings-reference#managedmcpservers) в [управляемых настройках](/docs/ru/managed-settings) на хосте раннера: предоставляет серверы HTTP и SSE без эксклюзивного контроля, поэтому серверы из других источников по-прежнему загружаются. Требуется Claude Code v2.1.259 или новее.

406* `<repo>/.mcp.json`: область действия проекта. Сделайте коммит этого файла в репозиторий; его серверы автоматически подтверждаются в облачных сессиях.406* `<repo>/.mcp.json`: область действия проекта. Сделайте коммит этого файла в репозиторий; его серверы автоматически подтверждаются в облачных сессиях. В сессии с несколькими репозиториями [загружается файл не более чем из одного репозитория](#repository-settings-in-sessions-with-several-repositories).

407 407 

408Если для вашей организации включена передача коннекторов, плоскость управления Anthropic передаёт коннекторы, настроенные вами на claude.ai, в сессии, созданные интерактивно, через предоставляемую сервером конфигурацию MCP, маршрутизируемую через `api.anthropic.com`. Сессии, созданные программно, например [запуски через CLI](/docs/ru/self-hosted-environments-testing#run-the-test-loop), не получают коннекторы; вместо этого предоставьте им MCP-серверы через любой из других источников, перечисленных в этом разделе. OAuth-токен дочернего процесса не содержит scope для прямого получения коннекторов, поэтому дочерний процесс сам не пытается их получить; передача управляется сервером.408Если для вашей организации включена передача коннекторов, плоскость управления Anthropic передаёт коннекторы, настроенные вами на claude.ai, в сессии, созданные интерактивно, через предоставляемую сервером конфигурацию MCP, маршрутизируемую через `api.anthropic.com`. Сессии, созданные программно, например [запуски через CLI](/docs/ru/self-hosted-environments-testing#run-the-test-loop), не получают коннекторы; вместо этого предоставьте им MCP-серверы через любой из других источников, перечисленных в этом разделе. OAuth-токен дочернего процесса не содержит scope для прямого получения коннекторов, поэтому дочерний процесс сам не пытается их получить; передача управляется сервером.

409 409 


542exit 0542exit 0

543```543```

544 544 

545Хук подсказывает Claude зафиксировать и отправить перед завершением сеанса и остается молчаливым, когда каталог не является репозиторием git или не имеет удаленного.545Хук предлагает Claude сделать коммит и отправить изменения до завершения сессии и ничего не выводит, если каталог не является репозиторием git или у него нет удаленного репозитория. О сессиях с несколькими репозиториями см. раздел [на что указывает `$CLAUDE_PROJECT_DIR`](#repository-settings-in-sessions-with-several-repositories).

546 546 

547<h2 id="permissions-and-tool-approval">547<h2 id="permissions-and-tool-approval">

548 Разрешения и одобрение инструментов548 Разрешения и одобрение инструментов


571 571 

572Установите `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` для заполнения из другого пути или укажите его на пустой каталог для отключения заполнения.572Установите `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` для заполнения из другого пути или укажите его на пустой каталог для отключения заполнения.

573 573 

574Зафиксированный в репозитории `.claude/settings.json` накладывается сверху как настройки проекта. Сеансы также читают [`managed-settings.json`](/docs/ru/settings#where-settings-live) из стандартного системного пути в вашем образе средства выполнения. Применяются ли его ключи наряду с [управляемыми сервером настройками](/docs/ru/server-managed-settings) следует [как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources): по умолчанию, когда ваша организация доставляет любые управляемые сервером ключи, сеансы игнорируют файл образа средства выполнения, кроме [ключей, которые Claude Code читает из каждого источника администратора](/docs/ru/managed-settings#keys-read-from-every-admin-source), такие как блок `env`, блокировки песочницы, пути двоичных файлов песочницы и `forceRemoteSettingsRefresh`. См. [приоритет настроек](/docs/ru/settings#settings-precedence).574Закоммиченный в репозиторий `.claude/settings.json` накладывается сверху как настройки проекта. В сессии с несколькими репозиториями [действует файл не более чем одного репозитория](#repository-settings-in-sessions-with-several-repositories). Сессии также читают [`managed-settings.json`](/docs/ru/settings#where-settings-live) из стандартного системного пути в вашем образе средства выполнения. Применяются ли его ключи наряду с [управляемыми сервером настройками](/docs/ru/server-managed-settings), определяется тем, [как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources): по умолчанию, когда ваша организация доставляет какие-либо управляемые сервером ключи, сессии игнорируют файл из образа средства выполнения, за исключением [ключей, которые Claude Code читает из каждого источника администратора](/docs/ru/managed-settings#keys-read-from-every-admin-source), таких как блок `env`, блокировки песочницы, пути к исполняемым файлам песочницы и `forceRemoteSettingsRefresh`. См. [приоритет настроек](/docs/ru/settings#settings-precedence).

575 575 

576Когда плоскость управления Anthropic предоставляет сеансу [хуки Claude Code](/docs/ru/hooks), средство выполнения устанавливает их рядом, а не над вашей собственной конфигурацией. Требует Claude Code v2.1.229 или позже.576Когда плоскость управления Anthropic предоставляет сеансу [хуки Claude Code](/docs/ru/hooks), средство выполнения устанавливает их рядом, а не над вашей собственной конфигурацией. Требует Claude Code v2.1.229 или позже.

577 577 


583 583 

584Снимок `~/.claude/` хоста, который делает средство выполнения, не включает каталог `projects/`. Место хранения автоматической памяти по умолчанию находится внутри этого каталога. Если вы поместите туда файлы памяти, средство выполнения не перенесёт их в сессии, и они не включат автоматическую память.584Снимок `~/.claude/` хоста, который делает средство выполнения, не включает каталог `projects/`. Место хранения автоматической памяти по умолчанию находится внутри этого каталога. Если вы поместите туда файлы памяти, средство выполнения не перенесёт их в сессии, и они не включат автоматическую память.

585 585 

586<h3 id="repository-settings-in-sessions-with-several-repositories">

587 Настройки репозиториев в сессиях с несколькими репозиториями

588</h3>

589 

590В сессии с несколькими репозиториями Claude Code читает настройки проекта из каталога, в котором запускается сессия, поэтому как настройки проекта действует `.claude/settings.json` не более чем одного репозитория. Хук, определённый в файле другого репозитория, не выполняется, правило deny в нём не применяется, а его `env` не задаётся.

591 

592* **`--capacity 1` (по умолчанию) со встроенным извлечением репозиториев**: сессия запускается в первом репозитории из своего списка репозиториев. `.claude/settings.json` этого репозитория действует как настройки проекта, и загружается его `.mcp.json`, а файлы остальных репозиториев — нет.

593* **`--capacity` больше единицы или [хук `checkout`](#checkout)**: сессия запускается в отдельном каталоге сессии, содержащем извлечённые репозитории. Ни один `.claude/settings.json` репозиториев не действует как настройки проекта, ни один `.mcp.json` репозиториев не загружается, а [`$CLAUDE_PROJECT_DIR`](/docs/ru/hooks#reference-scripts-by-path) в команде хука указывает на этот каталог, а не на извлечённый репозиторий.

594 

595`CLAUDE.md` и скиллы каждого репозитория загружаются независимо от того, где запускается сессия. Средство выполнения передаёт каждый репозиторий в Claude Code как [дополнительный каталог](/docs/ru/permissions#additional-directories-grant-file-access-not-configuration), поэтому Claude Code также читает ключи `enabledPlugins` и `extraKnownMarketplaces` из `.claude/settings.json` каждого репозитория.

596 

597Чтобы хук выполнялся или правило разрешений применялось в каждой сессии, поместите его в `~/.claude/settings.json` на хосте средства выполнения. Средство выполнения [переносит файл хоста в каждую сессию](#how-each-session’s-config-is-assembled), где бы сессия ни запускалась. Указывайте путь в правиле `Read` или `Edit` как абсолютный [шаблон](/docs/ru/permissions#read-and-edit) с `//` или шаблон относительно домашнего каталога с `~/`, поскольку другие шаблоны привязываются к источнику настроек или к текущему каталогу.

598 

586<h3 id="repository-committed-permission-rules">599<h3 id="repository-committed-permission-rules">

587 Правила разрешений, зафиксированные в репозитории600 Правила разрешений, зафиксированные в репозитории

588</h3>601</h3>

Details

87 87 

88 Поскольку hooks выполняют команды оболочки, пользователи в интерактивных сеансах видят [диалог одобрения безопасности](#security-approval-dialogs) перед тем, как Claude Code применит их.88 Поскольку hooks выполняют команды оболочки, пользователи в интерактивных сеансах видят [диалог одобрения безопасности](#security-approval-dialogs) перед тем, как Claude Code применит их.

89 89 

90 Чтобы настроить [классификатор режима автоматизации](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) так, чтобы он знал, какие репозитории, бакеты и домены доверяет ваша организация, доставьте блок `autoMode` таким же образом; см. [Настройка режима автоматизации](/docs/ru/auto-mode-config) для информации о том, как записи `autoMode` влияют на то, что блокирует классификатор, и важные предупреждения о полях `environment`, `allow`, `soft_deny` и `hard_deny`.90 Чтобы настроить классификатор [авторежима](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) так, чтобы он знал, каким репозиториям, бакетам и доменам доверяет ваша организация, доставьте блок `autoMode` таким же образом; см. [Настройка авторежима](/docs/ru/auto-mode-config) для информации о том, как записи `autoMode` влияют на то, что блокирует классификатор, и важные предупреждения о полях `environment`, `allow`, `soft_deny` и `hard_deny`.

91 </Step>91 </Step>

92 92 

93 <Step title="Сохраните и разверните">93 <Step title="Сохраните и разверните">

94 Сохраните ваши изменения. Клиенты Claude Code получат обновленные параметры при следующем запуске или в цикле опроса каждый час.94 Сохраните ваши изменения. Клиенты Claude Code получат обновленные настройки при следующем запуске или в цикле опроса каждый час.

95 

96 Редактор проверяет ваш JSON по опубликованной JSON-схеме настроек Claude Code. Если он находит проблему в JSON, который успешно разбирается, он показывает предупреждение и меняет надпись на кнопке сохранения. Надпись будет **Update with errors**, если настройки уже сохранены, и **Add with errors**, если настройки еще не сохранены. Эта кнопка все равно сохраняет, поскольку предупреждение схемы не блокирует сохранение.

97 

98 Схема [может отставать от новейших релизов](/docs/ru/settings#edit-a-settings-file), поэтому редактор может пометить ключ или значение, которые описаны в [справочнике настроек](/docs/ru/settings-reference#all-settings). Claude Code получает сохраненные вами ключи и значения и выполняет [собственную проверку](#invalid-entries-in-delivered-settings) при их загрузке.

95 </Step>99 </Step>

96</Steps>100</Steps>

97 101 

settings.md +39 −39

Details

397<span id="where-settings-live" />397<span id="where-settings-live" />

398 398 

399<h2 id="settings-files-and-who-they-affect">399<h2 id="settings-files-and-who-they-affect">

400 Файлы параметров и кого они затрагивают400 Файлы настроек и кого они затрагивают

401</h2>401</h2>

402 402 

403Claude Code читает настройки из четырёх файлов, и организация также может доставлять управляемые настройки из консоли claude.ai. Каждый источник имеет область действия: круг людей и проектов, к которым применяется сохранённая в нём настройка, будь то только вы, все в проекте или все в вашей организации.403Claude Code читает настройки из четырёх файлов, и организация также может доставлять управляемые настройки из консоли claude.ai. Каждый источник имеет область действия: круг людей и проектов, к которым применяется сохранённая в нём настройка, будь то только вы, все в проекте или все в вашей организации.


405| Область действия | Файл | Кого это затрагивает | Используйте для |405| Область действия | Файл | Кого это затрагивает | Используйте для |

406| :- | :- | :- | :- |406| :- | :- | :- | :- |

407| Пользователь | `~/.claude/settings.json` | Вас, в каждом проекте на этой машине | Личные предпочтения: тема, режим редактора, модель по умолчанию, ваши собственные правила разрешений |407| Пользователь | `~/.claude/settings.json` | Вас, в каждом проекте на этой машине | Личные предпочтения: тема, режим редактора, модель по умолчанию, ваши собственные правила разрешений |

408| Общий проект | `.claude/settings.json` | Всех, кто работает в папке, которая его содержит. В репозитории git зафиксируйте его, чтобы товарищи по команде его получили | Разрешения команды, hooks, plugins и переменные окружения, которые нужны проекту |408| Общий проект | `.claude/settings.json` | Всех, кто работает в папке, которая его содержит. В репозитории git сделайте его коммит, чтобы товарищи по команде его получили | Разрешения команды, хуки, плагины и переменные окружения, которые нужны проекту |

409| Локальный проект | `.claude/settings.local.json` | Вас, только в этом одном проекте. Claude Code исключает его из git при создании файла; если вы создадите его вручную, добавьте его в `.gitignore` сами | Личные переопределения для одного проекта и тестирование перед тем, как вы поделитесь |409| Локальный проект | `.claude/settings.local.json` | Вас, только в этом одном проекте. Claude Code исключает его из git при создании файла; если вы создадите его вручную, добавьте его в `.gitignore` сами | Личные переопределения для одного проекта и тестирование перед тем, как вы поделитесь |

410| Управляемый | `managed-settings.json` и другие [управляемые источники](/docs/ru/managed-settings#delivery-mechanisms) | Всех, кому ваша организация его развёртывает; раздел [Приоритет настроек](#settings-precedence) описывает, что может его переопределить | Требования политики безопасности и соответствия |410| Управляемый | `managed-settings.json` и другие [управляемые источники](/docs/ru/managed-settings#delivery-mechanisms) | Всех, кому ваша организация его развёртывает; раздел [Приоритет настроек](#settings-precedence) описывает, что может его переопределить | Требования политики безопасности и соответствия |

411 411 

412В столбце File `~/.claude` — это папка `.claude` в вашем домашнем каталоге, а простой `.claude` — это папка `.claude` внутри вашего проекта.412В столбце «Файл» `~/.claude` — это папка `.claude` в вашем домашнем каталоге, а просто `.claude` — это папка `.claude` внутри вашего проекта.

413 413 

414<span id="where-each-file-applies" />414<span id="where-each-file-applies" />

415 415 

416<span id="compare-what-each-file-reaches" />416<span id="compare-what-each-file-reaches" />

417 417 

418<h3 id="compare-the-scope-of-each-settings-file">418<h3 id="compare-the-scope-of-each-settings-file">

419 Сравните область действия каждого файла параметров419 Сравните область действия каждого файла настроек

420</h3>420</h3>

421 421 

422Предположим, у вас есть три проекта на вашей машине: `website/`, `api/` и `acme-app/`, товарищ по команде имеет свой собственный клон `acme-app/`, и вы запускаете [облачный сеанс](#settings-in-cloud-sessions) на `acme-app/`.422Предположим, у вас есть три проекта на вашей машине: `website/`, `api/` и `acme-app/`, у товарища по команде есть свой собственный клон `acme-app/`, и вы запускаете [облачную сессию](#settings-in-cloud-sessions) для `acme-app/`.

423 423 

424На графике ниже показано, в каких из этих папок применяется параметр при запуске Claude Code из них. Нажмите на файл параметров, чтобы увидеть папки, которые он охватывает.424На графике ниже показано, в каких из этих папок применяется настройка при запуске Claude Code из них. Нажмите на файл настроек, чтобы увидеть папки, которые он охватывает.

425 425 

426<SettingsScope />426<SettingsScope />

427 427 

428* **`~/.claude/settings.json`**: каждый проект на вашей машине, и ничего на машине вашего товарища или в облачном сеансе428* **`~/.claude/settings.json`**: каждый проект на вашей машине, и ничего на машине вашего товарища или в облачной сессии

429* **`acme-app/.claude/settings.json`**: ваш `acme-app/`. Он охватывает клон вашего товарища и облачный сеанс только если вы зафиксируете файл в системе контроля версий; до этого это файл на вашем диске, как и любой другой, и никто другой его не имеет429* **`acme-app/.claude/settings.json`**: ваш `acme-app/`. Он охватывает клон вашего товарища и облачную сессию, только если вы зафиксируете файл в системе контроля версий; до этого это файл на вашем диске, как и любой другой, и ни у кого больше его нет

430* **`acme-app/.claude/settings.local.json`**: только ваш `acme-app/`. Claude Code добавляет его в ваши глобальные исключения git при первом написании файла, поэтому он остаётся вне ваших коммитов; если вы создадите файл вручную, [добавьте его в `.gitignore` сами](#keep-personal-settings-out-of-a-repository)430* **`acme-app/.claude/settings.local.json`**: только ваш `acme-app/`. Claude Code добавляет его в ваши глобальные исключения git при первой записи файла, поэтому он остаётся вне ваших коммитов; если вы создадите файл вручную, [добавьте его в `.gitignore` сами](#keep-personal-settings-out-of-a-repository)

431* **Управляемые параметры**, будь то файл `managed-settings.json`, политика MDM или [управляемые сервером параметры](/docs/ru/server-managed-settings) из консоли claude.ai: каждый проект на каждой машине, на которую ваша организация его развёртывает, или на которую вы входите с учётной записью вашей организации. Только управляемые сервером параметры охватывают облачный сеанс431* **Управляемые настройки**, будь то файл `managed-settings.json`, политика MDM или [управляемые сервером настройки](/docs/ru/server-managed-settings) из консоли claude.ai: каждый проект на каждой машине, на которую ваша организация их развёртывает, или на которую вы входите с учётной записью вашей организации. Только управляемые сервером настройки охватывают облачную сессию

432 432 

433<span id="which-files-you-have" />433<span id="which-files-you-have" />

434 434 

435<h3 id="find-or-create-your-settings-files">435<h3 id="find-or-create-your-settings-files">

436 Найдите или создайте ваши файлы параметров436 Найдите или создайте ваши файлы настроек

437</h3>437</h3>

438 438 

439Установка Claude Code не создаёт никакой файл параметров. Если на вашей машине или в проекте уже есть один, он пришёл из одного из этих источников:439Установка Claude Code не создаёт никакого файла настроек. Если на вашей машине или в проекте он уже есть, он пришёл из одного из этих источников:

440 440 

441* **Управляемый**: ваша организация его развёртывает. Вы его не создаёте и не редактируете.441* **Управляемый**: ваша организация его развёртывает. Вы его не создаёте и не редактируете.

442* **Общий проект**: проект, который уже использует Claude Code, может иметь один зафиксированный. Если нет, создайте его в `.claude/settings.json` в папке проекта.442* **Общий проект**: в проекте, который уже использует Claude Code, он может быть зафиксирован. Если нет, создайте его в `.claude/settings.json` в папке проекта.

443* **Пользователь** и **Локальный проект**: создайте их сами или позвольте Claude Code их создать. Он записывает `~/.claude/settings.json` при первом изменении опции в меню `/config`, которую он сохраняет в пользовательские параметры, такой как тема, и `.claude/settings.local.json` при первом предоставлении постоянного одобрения на запрос разрешения, такой как "Да, и больше не спрашивайте" для команды Bash. Несколько опций `/config`, включая **Show tips**, сохраняются в `.claude/settings.local.json` вместо файла пользователя.443* **Пользователь** и **Локальный проект**: создайте их сами или позвольте Claude Code их создать. Он записывает `~/.claude/settings.json` при первом изменении опции в меню `/config`, которую он сохраняет в пользовательские настройки, например темы, и `.claude/settings.local.json` при первом предоставлении постоянного подтверждения на запрос разрешения, например "Да, и больше не спрашивайте" для команды Bash. Несколько опций `/config`, включая **Show tips**, сохраняются в `.claude/settings.local.json` вместо файла пользователя.

444 444 

445<Info>445<Info>

446 На Windows `~/.claude` означает `%USERPROFILE%\.claude`. Чтобы хранить файлы домашнего каталога в другом месте, установите [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars); Claude Code затем сохраняет ваши параметры, историю сеансов и plugins там вместо этого.446 В Windows `~/.claude` означает `%USERPROFILE%\.claude`. Чтобы хранить файлы домашнего каталога в другом месте, установите [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars); тогда Claude Code будет сохранять ваши настройки, историю сессий и плагины там.

447</Info>447</Info>

448 448 

449Claude Code также хранит пятый файл, [`~/.claude.json`](/docs/ru/claude-directory#ce-claude-json), который он записывает для себя; вам не нужно его редактировать. Он содержит вашу сессию входа, конфигурации [MCP server](/docs/ru/mcp), состояние для каждого проекта, такое как решения о доверии, и [глобальные ключи конфигурации](/docs/ru/settings-reference#global-config-settings), которые `/config` записывает для вас.449Claude Code также хранит пятый файл, [`~/.claude.json`](/docs/ru/claude-directory#ce-claude-json), который он записывает для себя; вам не нужно его редактировать. Он содержит вашу сессию входа, конфигурации [MCP-серверов](/docs/ru/mcp), состояние для каждого проекта, такое как решения о доверии, и [глобальные ключи конфигурации](/docs/ru/settings-reference#global-config-settings), которые `/config` записывает для вас.

450 450 

451<h3 id="share-settings-with-your-team">451<h3 id="share-settings-with-your-team">

452 Поделитесь параметрами с вашей командой452 Поделитесь настройками с вашей командой

453</h3>453</h3>

454 454 

455Зафиксируйте `.claude/settings.json`, чтобы все, кто клонирует репозиторий, получили одинаковые разрешения, hooks и plugins. Каждый товарищ по команде всё ещё может переопределить его для себя в своём собственном `.claude/settings.local.json`, поэтому личные исключения не нуждаются в коммите. Для полного файла команды см. [общие параметры команды](/docs/ru/settings-example#a-teams-shared-settings).455Сделайте коммит `.claude/settings.json`, чтобы все, кто клонирует репозиторий, получили одинаковые разрешения, хуки и плагины. Каждый товарищ по команде всё ещё может переопределить его для себя в своём собственном `.claude/settings.local.json`, поэтому личные исключения не требуют коммита. Полный файл команды см. в разделе [общие настройки команды](/docs/ru/settings-example#a-teams-shared-settings).

456 456 

457Некоторые из того, что вы зафиксируете, ждут, пока каждый товарищ по команде [доверит папку](/docs/ru/permissions#project-allow-rules-and-workspace-trust), и несколько ключей никогда не вступают в силу из файла репозитория; [Troubleshoot a setting that doesn't apply](#common-cases) охватывает оба случая.457Часть того, что вы зафиксируете, ждёт, пока каждый товарищ по команде [доверит папку](/docs/ru/permissions#project-allow-rules-and-workspace-trust), а некоторые ключи никогда не вступают в силу из файла репозитория; раздел [Устранение неполадок с настройкой, которая не применяется](#common-cases) охватывает оба случая.

458 458 

459<span id="local-settings-file" />459<span id="local-settings-file" />

460 460 


465<span id="keep-personal-settings-out-of-the-repository" />465<span id="keep-personal-settings-out-of-the-repository" />

466 466 

467<h3 id="keep-personal-settings-out-of-a-repository">467<h3 id="keep-personal-settings-out-of-a-repository">

468 Держите личные параметры вне репозитория468 Держите личные настройки вне репозитория

469</h3>469</h3>

470 470 

471Чтобы изменить параметр для себя в одном проекте без изменения его для товарищей по команде, сохраните его в `.claude/settings.local.json` внутри проекта. Claude Code применяет этот файл поверх зафиксированного `.claude/settings.json`, поэтому если файл вашей команды устанавливает `"model": "claude-sonnet-5"` и вы хотите Opus, поместите `"model": "claude-opus-5-5"` в ваш локальный файл и только ваши сеансы изменятся.471Чтобы изменить настройку для себя в одном проекте, не меняя её для товарищей по команде, сохраните её в `.claude/settings.local.json` внутри проекта. Claude Code применяет этот файл поверх зафиксированного `.claude/settings.json`, поэтому если файл вашей команды устанавливает `"model": "claude-sonnet-5"`, а вы хотите Opus, поместите `"model": "claude-opus-5-5"` в ваш локальный файл, и изменятся только ваши сессии.

472 472 

473Claude Code также записывает в этот файл, держит его вне ваших коммитов и применяет его правила разрешений без шага доверия:473Claude Code также записывает в этот файл, держит его вне ваших коммитов и применяет его правила allow без шага доверия:

474 474 

475* **Claude Code также его записывает.** Когда Claude просит разрешение запустить команду Bash и вы выбираете "Да, и больше не спрашивайте", Claude Code сохраняет это [одобрение разрешения](/docs/ru/permissions#permission-system) здесь как правило `allow`.475* **Claude Code также его записывает.** Когда Claude запрашивает разрешение на запуск команды Bash и вы выбираете "Да, и больше не спрашивайте", Claude Code сохраняет это [подтверждение разрешения](/docs/ru/permissions#permission-system) здесь как правило `allow`.

476* **Вам не нужно его gitignore самостоятельно, если только вы не создали его вручную.** При первом написании файла Claude Code в репозитории git, который его ещё не игнорирует, он добавляет `**/.claude/settings.local.json` в ваш глобальный файл исключений git, поэтому файл остаётся вне ваших коммитов в каждом репозитории. Этот файл — это `core.excludesFile`, когда ваша глобальная конфигурация git устанавливает его на абсолютный путь или путь с префиксом `~`; в противном случае это `$XDG_CONFIG_HOME/git/ignore`, или `~/.config/git/ignore`, когда `XDG_CONFIG_HOME` не установлен. Если вы создали файл вручную и Claude Code ещё не писал в него, добавьте его в `.gitignore` сами.476* **Вам не нужно самостоятельно добавлять его в gitignore, если только вы не создали его вручную.** При первой записи файла Claude Code в репозитории git, который его ещё не игнорирует, он добавляет `**/.claude/settings.local.json` в ваш глобальный файл исключений git, поэтому файл остаётся вне ваших коммитов в каждом репозитории. Этот файл — `core.excludesFile`, когда ваша глобальная конфигурация git задаёт для него абсолютный путь или путь с префиксом `~`; в противном случае это `$XDG_CONFIG_HOME/git/ignore` или `~/.config/git/ignore`, когда `XDG_CONFIG_HOME` не установлен. Если вы создали файл вручную и Claude Code ещё не писал в него, добавьте его в `.gitignore` сами.

477* **Его правила allow не ждут доверия, пока файл остаётся неотслеживаемым.** Поскольку файл принадлежит вам, а не репозиторию, Claude Code применяет его правила `allow` без шага [workspace trust](/docs/ru/permissions#project-allow-rules-and-workspace-trust), который он требует для зафиксированного файла. Если файл отслеживается git, шаг доверия применяется к нему также; см. [When your local settings file needs trust](/docs/ru/permissions#when-your-local-settings-file-needs-trust).477* **Его правила allow не ждут доверия, пока файл остаётся неотслеживаемым.** Поскольку файл принадлежит вам, а не репозиторию, Claude Code применяет его правила `allow` без шага [доверия к рабочему пространству](/docs/ru/permissions#project-allow-rules-and-workspace-trust), который он требует для зафиксированного файла. Если файл отслеживается git, шаг доверия применяется и к нему; см. [Когда вашему локальному файлу настроек нужно доверие](/docs/ru/permissions#when-your-local-settings-file-needs-trust).

478 478 

479<span id="where-claude-code-looks-for-each-file" />479<span id="where-claude-code-looks-for-each-file" />

480 480 


486 Где Claude Code хранит локальный файл в репозитории git486 Где Claude Code хранит локальный файл в репозитории git

487</h4>487</h4>

488 488 

489Когда Claude просит разрешение запустить команду Bash и вы выбираете "Да, и больше не спрашивайте", Claude Code сохраняет это одобрение как правило `allow` в `.claude/settings.local.json`. Если вы запускаете Claude Code в подкаталоге репозитория git, он читает и записывает этот файл в корень репозитория и применяет одобрение по всему репозиторию. В [worktree](/docs/ru/worktrees) он использует файл в корне основного checkout.489Когда Claude запрашивает разрешение на запуск команды Bash и вы выбираете "Да, и больше не спрашивайте", Claude Code сохраняет это подтверждение как правило `allow` в `.claude/settings.local.json`. Если вы запускаете Claude Code в подкаталоге репозитория git, он читает и записывает этот файл в корне репозитория и применяет подтверждение ко всему репозиторию. В [worktree](/docs/ru/worktrees) он использует файл в корне основного checkout.

490 490 

491Два правила уточняют расположение корня:491Два правила уточняют расположение в корне:

492 492 

493* **Когда файл остаётся с `.claude/settings.json` вместо этого**: вне репозитория git, когда корень репозитория — это ваш домашний каталог, на Windows или когда корень репозитория или его запись `.git` или `.claude` не принадлежит вашему пользователю.493* **Когда файл вместо этого остаётся рядом с `.claude/settings.json`**: вне репозитория git, когда корень репозитория — это ваш домашний каталог, в Windows или когда корень репозитория либо его запись `.git` или `.claude` не принадлежит вашему пользователю.

494* **Пути в файле не привязаны к корню репозитория**: правило разрешения, которое начинается с `/` или относительный путь sandbox [привязывается к основному рабочему каталогу сеанса](/docs/ru/permissions#read-and-edit) вместо этого.494* **Пути в файле не привязаны к корню репозитория**: правило разрешений, которое начинается с `/`, или относительный путь песочницы [привязывается вместо этого к основному рабочему каталогу сессии](/docs/ru/permissions#read-and-edit).

495 495 

496До v2.1.211 Claude Code хранил файл в начальном каталоге. Он всё ещё читает файл, который более ранняя версия оставила там рядом с файлом корня; где оба устанавливают один и тот же ключ, применяется значение корня, и правила разрешений из обоих файлов применяются. Помощник Agent SDK [`resolveSettings()`](/docs/ru/agent-sdk/typescript#resolvesettings) всегда читает файл из начального каталога.496До v2.1.211 Claude Code хранил файл в начальном каталоге. Он всё ещё читает файл, который более ранняя версия оставила там, наряду с файлом в корне; если оба задают один и тот же ключ, применяется значение из корня, а правила разрешений из обоих файлов применяются. Вспомогательная функция Agent SDK [`resolveSettings()`](/docs/ru/agent-sdk/typescript#resolvesettings) всегда читает файл из начального каталога.

497 497 

498Claude Code читает общий `.claude/settings.json` из [основного рабочего каталога](/docs/ru/permissions#working-directories) сеанса, поэтому для использования файла, зафиксированного в корне репозитория, запустите Claude Code там. После того как вы [переместите сеанс с `/cd`](/docs/ru/permissions#move-the-session-to-another-directory), Claude Code читает оба файла проекта из нового каталога вместо этого, размещая локальный файл по тем же правилам. Чтение их из каталога, в который вы переместились, требует Claude Code v2.1.246 или позже.498Claude Code читает общий `.claude/settings.json` из [основного рабочего каталога](/docs/ru/permissions#working-directories) сессии, поэтому, чтобы использовать файл, зафиксированный в корне репозитория, запустите Claude Code там. После того как вы [переместите сессию с помощью `/cd`](/docs/ru/permissions#move-the-session-to-another-directory), Claude Code читает оба файла проекта из нового каталога, размещая локальный файл по тем же правилам. Чтение их из каталога, в который вы переместились, требует Claude Code v2.1.246 или более поздней версии.

499 499 

500<span id="managed-settings-delivery" />500<span id="managed-settings-delivery" />

501 501 


508<span id="settings-your-organization-manages" />508<span id="settings-your-organization-manages" />

509 509 

510<h3 id="check-what-your-organization-enforces">510<h3 id="check-what-your-organization-enforces">

511 Проверьте, что ваша организация требует511 Проверьте, что требует ваша организация

512</h3>512</h3>

513 513 

514Если ваша организация управляет Claude Code, некоторые параметры решены за вас и ничто из того, что вы поместили в ваши собственные файлы, их не изменяет. Чтобы увидеть, какие, запустите `/status`: строка `Setting sources` называет управляемый источник, который применяется к вам. Управляемые параметры применяются везде, где Claude Code работает на этой машине; [What a developer can change](/docs/ru/managed-settings#what-a-developer-can-change) охватывает права локального администратора и инструменты, отличные от Claude Code.514Если ваша организация управляет Claude Code, некоторые настройки определены за вас, и ничто из того, что вы поместите в ваши собственные файлы, их не изменит. Чтобы увидеть, какие именно, запустите `/status`: строка `Setting sources` называет управляемый источник, который применяется к вам. Управляемые настройки применяются везде, где Claude Code работает на этой машине; раздел [Что может изменить разработчик](/docs/ru/managed-settings#what-a-developer-can-change) охватывает права локального администратора и инструменты, отличные от Claude Code.

515 515 

516Управляемые параметры достигают вас через [механизмы доставки](/docs/ru/managed-settings#delivery-mechanisms) на странице управляемых параметров, чаще всего:516Управляемые настройки доходят до вас через [механизмы доставки](/docs/ru/managed-settings#delivery-mechanisms), описанные на странице управляемых настроек, чаще всего:

517 517 

518* [Server-managed settings](/docs/ru/server-managed-settings), которые Claude Code получает из консоли администратора claude.ai или самостоятельно размещённого [Claude apps gateway](/docs/ru/claude-apps-gateway)518* [Управляемые сервером настройки](/docs/ru/server-managed-settings), которые Claude Code получает из консоли администратора claude.ai или из самостоятельно размещённого [шлюза приложений Claude](/docs/ru/claude-apps-gateway)

519* Политики MDM или уровня ОС и файлы `managed-settings.json` в системном каталоге519* Политики MDM или уровня ОС и файлы `managed-settings.json` в системном каталоге

520* Хост встраивания, такой как Claude Desktop, через опцию SDK `managedSettings`; см. [Control policy from an embedding host](/docs/ru/managed-settings#parent-settings-from-embedding-hosts)520* Встраивающий хост, такой как Claude Desktop, через опцию SDK `managedSettings`; см. [Управление политикой из встраивающего хоста](/docs/ru/managed-settings#parent-settings-from-embedding-hosts)

521 521 

522В сеансе [Cowork](https://claude.com/docs/cowork/overview), который работает на вашей машине в приложении Claude Desktop, Claude Code не получает управляемые сервером параметры из консоли администратора claude.ai и читает политику, развёрнутую на вашем устройстве, если конфигурация Claude Desktop вашей организации не устанавливает `requireCoworkFullVmSandbox`. [Where and when a policy applies](/docs/ru/managed-settings#where-and-when-a-policy-applies) охватывает Cowork и облачные сеансы.522В сессии [Cowork](https://claude.com/docs/cowork/overview), которая работает на вашей машине в приложении Claude Desktop, Claude Code не получает управляемые сервером настройки из консоли администратора claude.ai и читает политику, развёрнутую на вашем устройстве, если только конфигурация Claude Desktop вашей организации не устанавливает `requireCoworkFullVmSandbox`. Раздел [Где и когда применяется политика](/docs/ru/managed-settings#where-and-when-a-policy-applies) охватывает Cowork и облачные сессии.

523 523 

524Если вы администратор, [Set up Claude Code for your organization](/docs/ru/admin-setup) проходит через выбор того, что требуется применить, и [Deploy managed settings](/docs/ru/managed-settings) охватывает доставку и как подтвердить, что политика действует.524Если вы администратор, руководство [Настройка Claude Code для вашей организации](/docs/ru/admin-setup) проводит через выбор того, что требовать, а [Развёртывание управляемых настроек](/docs/ru/managed-settings) охватывает доставку и то, как подтвердить, что политика действует. Сведения о предупреждении, которое может показывать редактор управляемых настроек в консоли администратора claude.ai, см. в разделе [Настройка управляемых сервером настроек](/docs/ru/server-managed-settings#configure-server-managed-settings).

525 525 

526<h2 id="change-a-setting">526<h2 id="change-a-setting">

527 Измените параметр527 Измените параметр


809 809 

810[Облачный сеанс](/docs/ru/claude-code-on-the-web) работает в [облачной среде](/docs/ru/cloud-environments) на свежем клоне вашего репозитория, не на вашей машине. Это изменяет, какие параметры его достигают:810[Облачный сеанс](/docs/ru/claude-code-on-the-web) работает в [облачной среде](/docs/ru/cloud-environments) на свежем клоне вашего репозитория, не на вашей машине. Это изменяет, какие параметры его достигают:

811 811 

812* **Общие параметры проекта** (`.claude/settings.json`): читаются в сеансе с одним репозиторием, потому что файл является частью клона и сеанс начинается внутри него. Зафиксируйте параметр там, чтобы применить его в этих сеансах. Сеанс с несколькими репозиториями начинается выше клонов и читает только ключи `enabledPlugins` и `extraKnownMarketplaces` из файла `.claude/settings.json` каждого репозитория, но не правила разрешений, hooks, `env` или другие ключи. Маркетплейсы и плагины, которые эти два ключа объявляют, по-прежнему [не загружаются в облачном сеансе](/docs/ru/cloud-environments#what-carries-over-from-your-setup).812* **Общие настройки проекта** (`.claude/settings.json`): читаются в сессии с одним репозиторием, потому что файл является частью клона и сессия начинается внутри него. Сделайте коммит настройки в этот файл, чтобы применить её в таких сессиях. В среде, размещённой Anthropic, сессия с несколькими репозиториями начинается выше клонов и читает только ключи `enabledPlugins` и `extraKnownMarketplaces` из файла `.claude/settings.json` каждого репозитория, но не правила разрешений, хуки, `env` или другие ключи. Маркетплейсы и плагины, которые объявляют эти два ключа, по-прежнему [не загружаются в облачной сессии](/docs/ru/cloud-environments#what-carries-over-from-your-setup). Для самостоятельно размещённой среды см. раздел [настройки какого репозитория применяются](/docs/ru/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

813* **Параметры пользователя и локальные параметры проекта** (`~/.claude/settings.json` и `.claude/settings.local.json`): не читаются. Оба остаются на вашей машине, и локальный файл не находится в клоне.813* **Параметры пользователя и локальные параметры проекта** (`~/.claude/settings.json` и `.claude/settings.local.json`): не читаются. Оба остаются на вашей машине, и локальный файл не находится в клоне.

814* **Managed settings**: файл `managed-settings.json` или профиль MDM на вашем устройстве не достигают облачного сеанса. [Параметры, управляемые сервером](/docs/ru/server-managed-settings) вашей организации достигают; [покрытие поверхности](/docs/ru/model-config#surface-coverage) перечисляет, какие облачные сеансы их получают. [Самостоятельно размещенная среда](/docs/ru/self-hosted-environments) также читает файл управляемых параметров в образе своего runner. [Как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) говорит, когда этот файл применяется.814* **Managed settings**: файл `managed-settings.json` или профиль MDM на вашем устройстве не достигают облачного сеанса. [Параметры, управляемые сервером](/docs/ru/server-managed-settings) вашей организации достигают; [покрытие поверхности](/docs/ru/model-config#surface-coverage) перечисляет, какие облачные сеансы их получают. [Самостоятельно размещенная среда](/docs/ru/self-hosted-environments) также читает файл управляемых параметров в образе своего runner. [Как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) говорит, когда этот файл применяется.

815* **`/config`**: в вашем браузере на claude.ai/code открывает раздел Claude Code ваших параметров claude.ai вместо изменения значения. Чтобы изменить параметр для облачного сеанса, установите [переменную окружения](/docs/ru/cloud-environments#set-environment-variables) в среде или в сеансе с одним репозиторием зафиксируйте ключ в файле `.claude/settings.json` этого репозитория.815* **`/config`**: в вашем браузере на claude.ai/code открывает раздел Claude Code ваших параметров claude.ai вместо изменения значения. Чтобы изменить параметр для облачного сеанса, установите [переменную окружения](/docs/ru/cloud-environments#set-environment-variables) в среде или в сеансе с одним репозиторием зафиксируйте ключ в файле `.claude/settings.json` этого репозитория.

skills.md +2 −0

Details

94| `migrate` | Обновить ваш существующий код Claude API на более новую модель | Ранее v2.1.221 |94| `migrate` | Обновить ваш существующий код Claude API на более новую модель | Ранее v2.1.221 |

95| `upgrade` | Переместить зависимость Anthropic SDK вашего проекта через основную версию, в настоящее время пакет Python `anthropic` с 0.x на 1.x | v2.1.236 или позже |95| `upgrade` | Переместить зависимость Anthropic SDK вашего проекта через основную версию, в настоящее время пакет Python `anthropic` с 0.x на 1.x | v2.1.236 или позже |

96| `managed-agents-onboard` | Пройти через создание нового Managed Agent | Ранее v2.1.221 |96| `managed-agents-onboard` | Пройти через создание нового Managed Agent | Ранее v2.1.221 |

97| `managed-agents-onboard <url>` | Создать Managed Agent, описанный на странице по указанному URL, например на странице в [документации Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) | v2.1.290 или позже |

98| `managed-agents-onboard <quickstart-name>` | Создать один из шаблонов быстрого старта Console, например `deep-researcher`. Если вы укажете одно слово, которое не является именем шаблона, Claude перечислит допустимые имена | v2.1.290 или позже |

97| `prompt-audit` | Отметить инструкции, написанные для более старых моделей в ваших промптах, skills и описаниях инструментов, и предложить исправления в виде diff | v2.1.221 или позже |99| `prompt-audit` | Отметить инструкции, написанные для более старых моделей в ваших промптах, skills и описаниях инструментов, и предложить исправления в виде diff | v2.1.221 или позже |

98| `cost-optimize` | Профилировать, куда идут расходы Claude API вашего проекта, и предложить экономию из таких опций, как кэширование промптов, сокращение ненужных входных и выходных токенов, пакетная обработка, усилие и выбор модели, по одному изменению за раз | v2.1.247 или позже |100| `cost-optimize` | Профилировать, куда идут расходы Claude API вашего проекта, и предложить экономию из таких опций, как кэширование промптов, сокращение ненужных входных и выходных токенов, пакетная обработка, усилие и выбор модели, по одному изменению за раз | v2.1.247 или позже |

99| `build-eval` | Построить набор eval для вашего приложения на базе Claude | v2.1.259 или позже |101| `build-eval` | Построить набор eval для вашего приложения на базе Claude | v2.1.259 или позже |

sub-agents.md +3 −1

Details

609Режим разрешений основного разговора решает, использует ли Claude Code значение, которое вы установили:609Режим разрешений основного разговора решает, использует ли Claude Code значение, которое вы установили:

610 610 

611* Когда основной разговор находится в `bypassPermissions`, `acceptEdits` или [auto mode](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), subagent работает в этом же режиме и Claude Code игнорирует `permissionMode`, который вы установили. Под auto mode классификатор оценивает вызовы инструментов subagent с правилами блокировки и разрешения основного разговора. Когда subagent завершается, классификатор также проверяет его работу и его финальный отчёт перед доставкой отчёта, как [How auto mode handles subagents](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) описывает.611* Когда основной разговор находится в `bypassPermissions`, `acceptEdits` или [auto mode](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), subagent работает в этом же режиме и Claude Code игнорирует `permissionMode`, который вы установили. Под auto mode классификатор оценивает вызовы инструментов subagent с правилами блокировки и разрешения основного разговора. Когда subagent завершается, классификатор также проверяет его работу и его финальный отчёт перед доставкой отчёта, как [How auto mode handles subagents](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) описывает.

612* Когда основной разговор находится в режиме `default`, `dontAsk` или `plan`, subagent работает в режиме разрешений, который вы установили, кроме `bypassPermissions`. Subagent, который объявляет `bypassPermissions`, сохраняет режим основного разговора вместо этого. Исключение `bypassPermissions` требует Claude Code v2.1.267 или позже.612* Когда основной диалог находится в режиме `default`, `dontAsk` или `plan`, субагент работает в заданном вами режиме разрешений. В следующих случаях он вместо этого сохраняет режим разрешений основного диалога:

613 * Вы задали `bypassPermissions`. Исключение для `bypassPermissions` требует Claude Code v2.1.267 или новее.

614 * Вы задали `auto`, а [авторежим недоступен](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) субагенту, например когда файл настроек задаёт [`disableAutoMode`](/docs/ru/settings-reference#disableautomode) или модель субагента не поддерживает авторежим.

613 615 

614`permissionMode` принимает эти значения и `manual` как псевдоним для `default`:616`permissionMode` принимает эти значения и `manual` как псевдоним для `default`:

615 617 

Details

666 666 

667* WebFetch отказывает `localhost` и любому другому имени хоста без точки, например простому имени интранета, перед выполнением запроса. [Ошибка, которую он возвращает](/docs/ru/errors#webfetch-cannot-fetch-localhost), говорит Claude достичь локальных серверов с помощью `curl` через Bash вместо этого.667* WebFetch отказывает `localhost` и любому другому имени хоста без точки, например простому имени интранета, перед выполнением запроса. [Ошибка, которую он возвращает](/docs/ru/errors#webfetch-cannot-fetch-localhost), говорит Claude достичь локальных серверов с помощью `curl` через Bash вместо этого.

668* HTTP URL-адреса автоматически обновляются до HTTPS.668* HTTP URL-адреса автоматически обновляются до HTTPS.

669* Большие страницы усекаются до фиксированного ограничения символов перед обработкой.669* WebFetch считывает до 100 000 символов содержимого страницы за один вызов. В Claude Code v2.1.290 или новее результат для более длинной страницы сообщает Claude, какой объём остался непрочитанным, чтобы Claude мог загрузить следующую часть.

670* WebFetch кэширует каждый ответ на 15 минут по умолчанию, поэтому повторные загрузки одного и того же URL возвращаются быстро. На Claude Code v2.1.233 или позже установите [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/ru/env-vars#variables) для изменения того, как долго WebFetch хранит каждый ответ.670* WebFetch кэширует каждый ответ на 15 минут по умолчанию, поэтому повторные загрузки одного и того же URL возвращаются быстро. На Claude Code v2.1.233 или позже установите [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/ru/env-vars#variables) для изменения того, как долго WebFetch хранит каждый ответ.

671* Страница, которая не завершила загрузку в течение пяти минут, включая любые перенаправления, которые следует WebFetch, завершается ошибкой истечения срока. На Claude Code v2.1.268 или позже установите [`CLAUDE_CODE_WEBFETCH_DEADLINE_MS`](/docs/ru/env-vars#variables) для изменения ограничения или на `0` для его удаления.671* Страница, которая не завершила загрузку в течение пяти минут, включая любые перенаправления, которые следует WebFetch, завершается ошибкой истечения срока. На Claude Code v2.1.268 или позже установите [`CLAUDE_CODE_WEBFETCH_DEADLINE_MS`](/docs/ru/env-vars#variables) для изменения ограничения или на `0` для его удаления.

672* Когда URL перенаправляет на другой хост, WebFetch возвращает текстовый результат, который называет исходный URL и цель перенаправления вместо его следования. Claude затем загружает новый URL со вторым вызовом WebFetch.672* Когда URL перенаправляет на другой хост, WebFetch возвращает текстовый результат, который называет исходный URL и цель перенаправления вместо его следования. Claude затем загружает новый URL со вторым вызовом WebFetch.

ultrareview.md +6 −6

Details

56 Анализ запроса на слияние56 Анализ запроса на слияние

57</h3>57</h3>

58 58 

59Чтобы анализировать запрос на слияние GitHub вместо локальной ветви, передайте номер PR:59Чтобы проанализировать pull request на `github.com` вместо локальной ветки, передайте номер PR:

60 60 

61```text theme={null}61```text theme={null}

62/code-review ultra 123462/code-review ultra 1234


64 64 

65Команда также принимает `#1234`, `PR 1234` и вставленные URL-адреса PR; вставленный URL должен указывать на репозиторий в вашем текущем каталоге.65Команда также принимает `#1234`, `PR 1234` и вставленные URL-адреса PR; вставленный URL должен указывать на репозиторий в вашем текущем каталоге.

66 66 

67В режиме PR удаленная изолированная среда клонирует запрос на слияние непосредственно с хоста, а не упаковывает ваше локальное рабочее дерево. Режим PR работает с репозиториями на `github.com` и на экземплярах [GitHub Enterprise Server](/docs/ru/github-enterprise-server), которые администратор подключил к Claude Code.67Для режима PR нужен репозиторий на `github.com`. Для репозитория на экземпляре [GitHub Enterprise Server](/docs/ru/github-enterprise-server) запустите `/code-review ultra` без номера PR, чтобы вместо этого проанализировать вашу локальную ветку.

68 68 

69Для репозиториев на `github.com` изолированная среда клонирует с учетной записью GitHub, подключенной к вашей учетной записи Claude, поэтому учетная запись должна иметь возможность читать репозиторий PR.69В режиме PR облачная песочница клонирует pull request с `github.com` вместо загрузки вашего рабочего дерева. Она использует учётную запись GitHub, подключённую к вашей учётной записи Claude, поэтому эта учётная запись должна иметь доступ на чтение к репозиторию.

70 70 

71Запустите [`/web-setup`](/docs/ru/web-quickstart#connect-from-your-terminal), чтобы подключить вашу учетную запись GitHub CLI к вашей учетной записи Claude.71Запустите [`/web-setup`](/docs/ru/web-quickstart#connect-from-your-terminal), чтобы подключить вашу учетную запись GitHub CLI к вашей учетной записи Claude.

72 72 


74 Опубликуйте результаты в запросе на слияние74 Опубликуйте результаты в запросе на слияние

75</h3>75</h3>

76 76 

77На Claude Code версии 2.1.227 или позже, когда вы анализируете запрос на слияние на `github.com`, вы можете попросить Claude опубликовать готовые результаты в PR как один простой комментарий от вашей собственной учетной записи GitHub. Комментарий не является рецензией или одобрением и заканчивается примечанием "Generated by Claude Code". Когда вы анализируете ветвь или запрос на слияние GitHub Enterprise Server, Claude Code показывает результаты только в вашей сессии.77В Claude Code версии 2.1.227 или новее, когда вы анализируете pull request на `github.com`, вы можете попросить Claude опубликовать готовые результаты в PR как один простой комментарий от вашей собственной учётной записи GitHub. Комментарий не является рецензией или одобрением и заканчивается примечанием "Generated by Claude Code". Когда вы анализируете ветку, Claude Code показывает результаты только в вашей сессии.

78 78 

79Claude Code никогда не публикует, если вы не выберете это на этом запуске, и `--no-post` является значением по умолчанию. Публикация — это выбор, который вы делаете для каждого запуска:79Claude Code никогда не публикует, если вы не выберете это на этом запуске, и `--no-post` является значением по умолчанию. Публикация — это выбор, который вы делаете для каждого запуска:

80 80 


106Claude Code рассматривает ваш текст как примечание только, когда он содержит более одного слова и не является именем ветви или ссылкой на PR. Он читает одно слово как имя ветви или ссылку на PR, поэтому неправильно введенное имя ветви получает ошибку ближайшей ветви из [Анализ относительно другой базы](#review-against-a-different-base) вместо запуска с примечанием. Если ваш текст объединяет ссылку на PR с другими словами, такие как `check PR 123 again`, Claude Code также не запускается; он просит вас повторно запустить только с номером PR для анализа этого PR или без ссылки для анализа вашей текущей ветви.106Claude Code рассматривает ваш текст как примечание только, когда он содержит более одного слова и не является именем ветви или ссылкой на PR. Он читает одно слово как имя ветви или ссылку на PR, поэтому неправильно введенное имя ветви получает ошибку ближайшей ветви из [Анализ относительно другой базы](#review-against-a-different-base) вместо запуска с примечанием. Если ваш текст объединяет ссылку на PR с другими словами, такие как `check PR 123 again`, Claude Code также не запускается; он просит вас повторно запустить только с номером PR для анализа этого PR или без ссылки для анализа вашей текущей ветви.

107 107 

108<Tip>108<Tip>

109 Если ваш репозиторий слишком большой для упаковки, Claude Code предложит вам вместо этого использовать режим PR. Отправьте вашу ветвь и откройте черновик PR, затем запустите `/code-review ultra <PR-number>`.109 Если ваш репозиторий слишком большой для упаковки, Claude Code предложит вам вместо этого использовать режим PR. Для репозитория на `github.com` отправьте вашу ветку и откройте черновик PR, затем запустите `/code-review ultra <PR-number>`.

110</Tip>110</Tip>

111 111 

112<h3 id="diff-limits-and-fallbacks">112<h3 id="diff-limits-and-fallbacks">


173claude ultrareview origin/main173claude ultrareview origin/main

174```174```

175 175 

176Без аргументов подкоманда проверяет разницу между вашей текущей веткой и веткой по умолчанию, с тем же [резервным вариантом для всего репозитория](#diff-limits-and-fallbacks), что и `/code-review ultra`, когда база слияния не существует. Передайте номер PR для проверки pull request или базовую ветку для проверки относительно неё; [обработка базовой ветки](#review-against-a-different-base) соответствует интерактивной команде.176Без аргументов подкоманда проверяет разницу между вашей текущей веткой и веткой по умолчанию, с тем же [резервным вариантом для всего репозитория](#diff-limits-and-fallbacks), что и `/code-review ultra`, когда база слияния не существует. Передайте номер PR, чтобы [проверить pull request на `github.com`](#review-a-pull-request), или базовую ветку для проверки относительно неё; [обработка базовой ветки](#review-against-a-different-base) соответствует интерактивной команде.

177 177 

178Вы даёте согласие на резервный вариант для всего репозитория и на подтверждение выставления счёта и условия при запуске подкоманды, поэтому выполнение начинается без ожидания ввода. Запуск её самостоятельно — это то, что считается согласием. Когда Claude запускает подкоманду для вас, например через инструмент Bash, Claude Code отказывает в проверке всего репозитория.178Вы даёте согласие на резервный вариант для всего репозитория и на подтверждение выставления счёта и условия при запуске подкоманды, поэтому выполнение начинается без ожидания ввода. Запуск её самостоятельно — это то, что считается согласием. Когда Claude запускает подкоманду для вас, например через инструмент Bash, Claude Code отказывает в проверке всего репозитория.

179 179 

workflows.md +27 −1

Details

354 354 

355Тело — это простой JavaScript с top-level `await`. `agent()` создаёт один подагент, `pipeline()` запускает один на элемент в списке, а `parallel()` запускает набор задач агента одновременно и ждёт завершения всех из них.355Тело — это простой JavaScript с top-level `await`. `agent()` создаёт один подагент, `pipeline()` запускает один на элемент в списке, а `parallel()` запускает набор задач агента одновременно и ждёт завершения всех из них.

356 356 

357Вызов `agent()` разрешается в `null`, если вы остановите его во время выполнения или он столкнётся с неустранимой ошибкой API. `pipeline()` сохраняет каждый `null` в массиве результатов, поэтому пример заканчивается на `.filter(Boolean)`, чтобы удалить эти записи.357Вызов `agent()` разрешается в `null`, если вы остановите его во время выполнения или он столкнётся с неустранимой ошибкой API. `pipeline()` сохраняет каждый `null` в массиве результатов, поэтому пример заканчивается на `.filter(Boolean)`, чтобы удалить эти записи, включая слот [агента, который зависал при каждой попытке](#when-an-agent-stalls-and-restarts).

358 358 

359В [режиме auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) подсказка, которую ваш скрипт передаёт в `agent()`, не считается запросом от вас, когда классификатор проверяет действия этого подагента, потому что Claude Code отмечает её как текст, вычисленный скриптом.359В [режиме auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) подсказка, которую ваш скрипт передаёт в `agent()`, не считается запросом от вас, когда классификатор проверяет действия этого подагента, потому что Claude Code отмечает её как текст, вычисленный скриптом.

360 360 


463* Лимит сбросится в течение 24 часов. Еженедельный лимит может сбросится позже.463* Лимит сбросится в течение 24 часов. Еженедельный лимит может сбросится позже.

464* Запуск ещё не ждал дважды. Когда он достигает лимита в третий раз, агент отказывает.464* Запуск ещё не ждал дважды. Когда он достигает лимита в третий раз, агент отказывает.

465 465 

466<h3 id="when-an-agent-stalls-and-restarts">

467 Когда агент зависает и перезапускается

468</h3>

469 

470Агент, вывод которого перестаёт поступать в течение достаточно долгого времени, начинает заново с того же промпта. В [`/workflows`](#watch-the-run) к его имени добавляется суффикс `(retry 1)`, а в его подробностях отображается `attempt 2 (stalled)`. Перезапуск происходит автоматически, поэтому вам ничего не нужно делать.

471 

472Новая попытка начинается без транскрипта зависшей попытки. Файлы, которые зависшая попытка уже изменила, остаются изменёнными, а потраченные ею токены остаются в общем итоге запуска. Окно зависания — это время, в течение которого Claude Code ждёт вывода от агента, прежде чем завершить попытку. Время, которое агент проводит в ожидании собственных вызовов инструментов или [сброса лимита использования](#when-a-run-hits-your-usage-limit), не учитывается в окне зависания.

473 

474Агент перезапускается не более пяти раз, включая любой перезапуск, запрошенный вами с помощью `r`. Если шестая попытка тоже зависает, вызов `agent()` завершается ошибкой, и в начале ошибки указывается причина:

475 

476* `agent stalled on all 6 attempts`: каждая попытка провела всё окно без вывода. Если работа агента заставляет его молчать так долго, увеличьте окно

477* `agent lost its reply on all 6 attempts`: поток ответа каждой попытки замолкал, и Claude Code прекращал его ожидание. Увеличение окна зависания не помогает, поскольку [сторожевой таймер простоя потоковой передачи](/docs/ru/network-config#streaming-idle-watchdogs) завершил ответ раньше, а `CLAUDE_STREAM_IDLE_TIMEOUT_MS` задаёт таймаут этого сторожевого таймера

478* `agent abandoned after 6 attempts`: попытки завершились по-разному, и ошибка перечисляет их по порядку

479 

480Чтобы дать агенту больше времени на вывод до окончания окна:

481 

482* **Один агент**: передайте `stallMs` в миллисекундах в его вызове `agent()`, например `agent(prompt, { stallMs: 1800000 })` для 30 минут

483* **Все агенты**: задайте [`CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`](/docs/ru/env-vars#variables), который также применяется к субагентам вне workflows

484 

485Продолжится ли запуск после сбоя, зависит от того, как ваш скрипт вызвал агента:

486 

487* **Внутри [`parallel()` или `pipeline()`](#what-the-saved-script-looks-like)**: запуск продолжается с `null` вместо результата агента

488* **При прямом ожидании**: запуск завершается с ошибкой

489 

490Чтобы попробовать снова, попросите Claude перезапустить workflow. В разделе [Возобновить после паузы](#resume-after-a-pause) описано, что запускается снова.

491 

466<h3 id="cost">492<h3 id="cost">

467 Стоимость493 Стоимость

468</h3>494</h3>

worktrees.md +1 −1

Details

104* **Перенаправления git**: Claude Code блокирует команду Bash или Monitor, которая перенаправляет git в основную копию. Перенаправление может поступать через `git -C`, `--git-dir`, переменную `GIT_DIR` или `GIT_WORK_TREE` или `cd` в основную копию перед запуском git.104* **Перенаправления git**: Claude Code блокирует команду Bash или Monitor, которая перенаправляет git в основную копию. Перенаправление может поступать через `git -C`, `--git-dir`, переменную `GIT_DIR` или `GIT_WORK_TREE` или `cd` в основную копию перед запуском git.

105* **Форма команды**: Claude Code блокирует команду Bash или Monitor, когда он не может проверить из текста команды, что любой git, который запускает команда, остаётся внутри worktree. Это происходит, например, когда имя команды вычисляется во время выполнения, когда синтаксис не может быть проанализирован, или когда расширение, такое как `${!name}` или `${ command; }`, может запустить команду, которую текст не указывает явно. Claude Code сообщает Claude, как переписать отказанную команду, например разделив её на простые отдельные команды. Вы не можете отключить эту проверку.105* **Форма команды**: Claude Code блокирует команду Bash или Monitor, когда он не может проверить из текста команды, что любой git, который запускает команда, остаётся внутри worktree. Это происходит, например, когда имя команды вычисляется во время выполнения, когда синтаксис не может быть проанализирован, или когда расширение, такое как `${!name}` или `${ command; }`, может запустить команду, которую текст не указывает явно. Claude Code сообщает Claude, как переписать отказанную команду, например разделив её на простые отдельные команды. Вы не можете отключить эту проверку.

106 106 

107Эти проверки считывают путь, на который нацелена правка, каталог, в котором выполняется команда, и текст команды. Ни одна из них не отслеживает, какие файлы записывает shell-команда, поэтому команда, которая записывает в основную копию, не запуская там git, например `cp` или перенаправление оболочки, ими не отклоняется. Claude Code обрабатывает такую команду как любую другую shell-команду, поэтому будет ли она выполнена или запросит у вас подтверждение, зависит от вашего [режима разрешений](/docs/ru/permission-modes) и правил.107Эти проверки считывают путь, на который нацелена правка, каталог, в котором выполняется команда, и текст команды. Ни одна из них не отслеживает, какие файлы записывает shell-команда, поэтому команда, которая записывает в основную копию, не запуская там git, например `cp` или перенаправление оболочки, ими не отклоняется. Claude Code обрабатывает такую команду как любую другую shell-команду в соответствии с вашими настройками [разрешений](/docs/ru/permissions) и [изоляции в песочнице](/docs/ru/sandboxing).

108 108 

109Проверки применяются к репозиторию, из которого вы запустили Claude Code. Они также охватывают основную копию, на которую ссылается связанный worktree. Для команд PowerShell Claude Code применяет только проверку рабочего каталога.109Проверки применяются к репозиторию, из которого вы запустили Claude Code. Они также охватывают основную копию, на которую ссылается связанный worktree. Для команд PowerShell Claude Code применяет только проверку рабочего каталога.

110 110