SpyBara
Go Premium

Documentation 2026-11-09 23:02 UTC to 2026-11-10 21:57 UTC

80 files changed +1,244 −945. View all changes and history on the product overview
2026
Thu 12 21:00 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57

advisor.md +1 −1

Details

160* **Выставление счёта по API**: вы платите по входным и выходным ставкам модели советника за токены советника160* **Выставление счёта по API**: вы платите по входным и выходным ставкам модели советника за токены советника

161* **Планы подписки**: использование советника учитывается в пределах лимитов использования вашего плана, за исключением того, что советник Fable выставляет счёт на [кредиты использования](https://code.claude.com/docs/ru/model-config.md#fable-and-usage-credits) на планах, где это применяется161* **Планы подписки**: использование советника учитывается в пределах лимитов использования вашего плана, за исключением того, что советник Fable выставляет счёт на [кредиты использования](https://code.claude.com/docs/ru/model-config.md#fable-and-usage-credits) на планах, где это применяется

162 162 

163Если ваша учётная запись требует согласия на использование кредитов, советник Fable не выставляет счёт до тех пор, пока вы его не дадите, потому что Claude Code [не применяет выбор](#fable-advisor-and-usage-credits) до этого момента.163О том, как советник Fable работает с кредитами использования, см. [Советник Fable и кредиты использования](#fable-advisor-and-usage-credits).

164 164 

165Claude вызывает советника в точках принятия решений, а не на каждом ходу, поэтому объединение более быстрой основной модели с более мощным советником обычно стоит меньше, чем запуск более мощной модели на протяжении всего процесса. Использование советника учитывается в итогах сеанса, показанных [`/usage`](https://code.claude.com/docs/ru/costs#track-your-costs).165Claude вызывает советника в точках принятия решений, а не на каждом ходу, поэтому объединение более быстрой основной модели с более мощным советником обычно стоит меньше, чем запуск более мощной модели на протяжении всего процесса. Использование советника учитывается в итогах сеанса, показанных [`/usage`](https://code.claude.com/docs/ru/costs#track-your-costs).

166 166 

Details

247* **Поля верхнего уровня** принимаются для каждого события: `systemMessage` показывает сообщение пользователю, и `continue` (`continue_` в Python) определяет, продолжает ли агент работать после этого хука. Некоторые события отбрасывают их или доставляют их в другое место. Раздел каждого [события](https://code.claude.com/docs/ru/hooks.md#hook-events) на странице хуков говорит, где они попадают.247* **Поля верхнего уровня** принимаются для каждого события: `systemMessage` показывает сообщение пользователю, и `continue` (`continue_` в Python) определяет, продолжает ли агент работать после этого хука. Некоторые события отбрасывают их или доставляют их в другое место. Раздел каждого [события](https://code.claude.com/docs/ru/hooks.md#hook-events) на странице хуков говорит, где они попадают.

248* **`hookSpecificOutput`** контролирует текущую операцию. Поля, которые вы устанавливаете внутри, зависят от типа события хука:248* **`hookSpecificOutput`** контролирует текущую операцию. Поля, которые вы устанавливаете внутри, зависят от типа события хука:

249 * Для хуков `PreToolUse` здесь вы устанавливаете `permissionDecision` (`"allow"`, `"deny"`, `"ask"` или `"defer"`), `permissionDecisionReason` и `updatedInput`. Если вы вернете `"defer"`, ход завершается сообщением с результатом, у которого `stop_reason` равен `"tool_deferred"`, чтобы вы могли [возобновить вызов позже](https://code.claude.com/docs/ru/hooks.md#defer-a-tool-call-for-later).249 * Для хуков `PreToolUse` здесь вы устанавливаете `permissionDecision` (`"allow"`, `"deny"`, `"ask"` или `"defer"`), `permissionDecisionReason` и `updatedInput`. Если вы вернете `"defer"`, ход завершается сообщением с результатом, у которого `stop_reason` равен `"tool_deferred"`, чтобы вы могли [возобновить вызов позже](https://code.claude.com/docs/ru/hooks.md#defer-a-tool-call-for-later).

250 * Для хуков `PostToolUse` вы можете установить `additionalContext` для добавления информации к результату инструмента. Чтобы заменить выходные данные инструмента перед тем, как Claude их увидит, установите `updatedToolOutput`, который работает для любого инструмента в обоих SDK. Более старое поле `updatedMCPToolOutput` заменяет только выходные данные MCP инструмента.250 * Для хуков `PostToolUse` вы можете установить `additionalContext` для добавления информации к результату инструмента. Чтобы заменить выходные данные инструмента перед тем, как Claude их увидит, установите `updatedToolOutput`, который работает для встроенных инструментов и инструментов MCP в обоих SDK. Более старое поле `updatedMCPToolOutput` заменяет только выходные данные MCP инструмента.

251 * В TypeScript SDK callback `PostToolUse` может также возвращать `classifierContext`, краткую заметку о результате вызова инструмента для классификатора разрешений [авторежима](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode). Поскольку ваш callback работает в собственном процессе вашего приложения, классификатор может учитывать заявление пользователя, которое вы передаете в заметке, как намерение пользователя. Поле требует TypeScript Agent SDK версии 0.3.236 или позже. В разделе [Аннотирование результата для классификатора авторежима](https://code.claude.com/docs/ru/hooks.md#annotate-a-result-for-the-auto-mode-classifier) описаны ограничение по длине, правило только синхронного выполнения и то, что не следует помещать в заметку.251 * В TypeScript SDK callback `PostToolUse` может также возвращать `classifierContext`, краткую заметку о результате вызова инструмента для классификатора разрешений [авторежима](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode). Поскольку ваш callback работает в собственном процессе вашего приложения, классификатор может учитывать заявление пользователя, которое вы передаете в заметке, как намерение пользователя. Поле требует TypeScript Agent SDK версии 0.3.236 или позже. В разделе [Аннотирование результата для классификатора авторежима](https://code.claude.com/docs/ru/hooks.md#annotate-a-result-for-the-auto-mode-classifier) описаны ограничение по длине, правило только синхронного выполнения и то, что не следует помещать в заметку.

252 252 

253Возвращайте `{}` для разрешения операции без изменений. SDK callback-хуки используют тот же формат вывода JSON, что и [хуки shell-команд Claude Code](https://code.claude.com/docs/ru/hooks.md#json-output), который документирует каждое поле и опцию, специфичную для события. Для определений типов SDK см. справочники [TypeScript](https://code.claude.com/docs/ru/agent-sdk/typescript.md#synchookjsonoutput) и [Python](https://code.claude.com/docs/ru/agent-sdk/python.md#synchookjsonoutput) SDK.253Возвращайте `{}` для разрешения операции без изменений. SDK callback-хуки используют тот же формат вывода JSON, что и [хуки shell-команд Claude Code](https://code.claude.com/docs/ru/hooks.md#json-output), который документирует каждое поле и опцию, специфичную для события. Для определений типов SDK см. справочники [TypeScript](https://code.claude.com/docs/ru/agent-sdk/typescript.md#synchookjsonoutput) и [Python](https://code.claude.com/docs/ru/agent-sdk/python.md#synchookjsonoutput) SDK.

Details

1858 1858 

1859### `TaskStartedMessage`1859### `TaskStartedMessage`

1860 1860 

1861Выдается при запуске фоновой задачи. Фоновая задача - это все, что отслеживается вне основного хода: фоновая команда Bash, наблюдение [Monitor](#monitor), подагент, порожденный через инструмент Agent, или удаленный агент. Поле `task_type` говорит вам, какой. Это именование не связано с переименованием инструмента `Task` на `Agent`.1861Выдается при запуске фоновой задачи. Фоновая задача - это все, что отслеживается вне основного хода: фоновая команда Bash, наблюдение [Monitor](#monitor), субагент, порожденный через инструмент Agent, или удаленный агент. Это именование не связано с переименованием инструмента `Task` на `Agent`.

1862 1862 

1863```python theme={null}1863```python theme={null}

1864@dataclass1864@dataclass


1878| `uuid` | `str` | Уникальный идентификатор сообщения |1878| `uuid` | `str` | Уникальный идентификатор сообщения |

1879| `session_id` | `str` | Идентификатор сеанса |1879| `session_id` | `str` | Идентификатор сеанса |

1880| `tool_use_id` | `str \| None` | Связанный ID использования инструмента |1880| `tool_use_id` | `str \| None` | Связанный ID использования инструмента |

1881| `task_type` | `str \| None` | Какой вид фоновой задачи: `"local_bash"` для фонового Bash и наблюдений Monitor, `"local_agent"` или `"remote_agent"` |1881| `task_type` | `str \| None` | Какой вид фоновой задачи: `"local_bash"` для фонового Bash и наблюдений Monitor, `"local_agent"` для субагентов, `"mcp_task"` для [фоновых вызовов инструментов MCP](https://code.claude.com/docs/ru/mcp.md#automatic-backgrounding-of-long-tool-calls) или `"remote_agent"` |

1882 1882 

1883### `TaskUsage`1883### `TaskUsage`

1884 1884 

Details

10 10 

11Для полной типобезопасности используйте [Zod](#type-safe-schemas-with-zod-and-pydantic) (TypeScript) или [Pydantic](#type-safe-schemas-with-zod-and-pydantic) (Python) для определения вашей схемы и получения строго типизированных объектов.11Для полной типобезопасности используйте [Zod](#type-safe-schemas-with-zod-and-pydantic) (TypeScript) или [Pydantic](#type-safe-schemas-with-zod-and-pydantic) (Python) для определения вашей схемы и получения строго типизированных объектов.

12 12 

13## Зачем нужны структурированные выводы?13## Зачем нужны структурированные выходные данные?

14 14 

15Агенты по умолчанию возвращают свободный текст, что подходит для чата, но не когда вам нужно использовать вывод программно. Структурированные выводы дают вам типизированные данные, которые вы можете передать непосредственно в логику приложения, базу данных или компоненты UI.15По умолчанию агенты возвращают произвольный текст, что подходит для чата, но не для случаев, когда выходные данные нужно использовать программно. Структурированные выходные данные предоставляют типизированные данные, которые можно передавать непосредственно в логику приложения, базу данных или компоненты пользовательского интерфейса.

16 16 

17Рассмотрим приложение рецептов, где агент ищет в интернете и приносит рецепты. Без структурированных выводов вы получаете свободный текст, который вам нужно было бы разбирать самостоятельно. Со структурированными выводами вы определяете нужную вам форму и получаете типизированные данные, которые можно использовать непосредственно в приложении.17Рассмотрим приложение с рецептами, в котором агент ищет рецепты в интернете и возвращает их. Без структурированных выходных данных вы получаете произвольный текст, который придётся разбирать самостоятельно. Со структурированными выходными данными вы определяете нужную структуру и получаете типизированные данные, которые можно сразу использовать в приложении.

18 18 

19> [accordion] Без структурированных выводов19> [accordion] Без структурированных выходных данных

20>20>

21> ```text theme={null}21> ```text theme={null}

22> Вот классический рецепт печенья с шоколадной крошкой!22> Here's a classic chocolate chip cookie recipe!

23>23>

24> **Печенье с шоколадной крошкой**24> **Chocolate Chip Cookies**

25> Время подготовки: 15 минут | Время приготовления: 10 минут25> Prep time: 15 minutes | Cook time: 10 minutes

26>26>

27> Ингредиенты:27> Ingredients:

28> - 2 1/4 чашки универсальной муки28> - 2 1/4 cups all-purpose flour

29> - 1 чашка масла, размягченного29> - 1 cup butter, softened

30> ...30> ...

31> ```31> ```

32>32>

33> Чтобы использовать это в приложении, вам нужно было бы разобрать название, преобразовать "15 минут" в число, отделить ингредиенты от инструкций и справиться с несогласованным форматированием в разных ответах.33> Чтобы использовать это в приложении, вам пришлось бы извлекать название, преобразовывать «15 minutes» в число, отделять ингредиенты от инструкций и учитывать непоследовательное форматирование в разных ответах.

34 34 

35> [accordion] Со структурированными выводами35> [accordion] Со структурированными выходными данными

36>36>

37> ```jsonc theme={null}37> ```jsonc theme={null}

38> {38> {

39> "name": "Печенье с шоколадной крошкой",39> "name": "Chocolate Chip Cookies",

40> "prep_time_minutes": 15,40> "prep_time_minutes": 15,

41> "cook_time_minutes": 10,41> "cook_time_minutes": 10,

42> "ingredients": [42> "ingredients": [

43> { "item": "универсальная мука", "amount": 2.25, "unit": "чашки" },43> { "item": "all-purpose flour", "amount": 2.25, "unit": "cups" },

44> { "item": "масло, размягченное", "amount": 1, "unit": "чашка" }44> { "item": "butter, softened", "amount": 1, "unit": "cup" }

45> // ...45> // ...

46> ],46> ],

47> "steps": ["Разогрейте духовку до 375°F", "Взбейте масло и сахар" /* ... */]47> "steps": ["Preheat oven to 375°F", "Cream butter and sugar" /* ... */]

48> }48> }

49> ```49> ```

50>50>

51> Типизированные данные, которые вы можете использовать непосредственно в вашем UI.51> Типизированные данные, которые можно сразу использовать в пользовательском интерфейсе.

52 52 

53## Быстрый старт53## Быстрый старт

54 54 


81 }81 }

82 })) {82 })) {

83 // Сообщение результата содержит structured_output с валидированными данными83 // Сообщение результата содержит structured_output с валидированными данными

84 if (message.type === "result" && message.subtype === "success" && message.structured_output) {84 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

85 console.log(message.structured_output);85 console.log(message.structured_output);

86 // { company_name: "Anthropic", founded_year: 2021, headquarters: "San Francisco, CA" }86 // { company_name: "Anthropic", founded_year: 2021, headquarters: "San Francisco, CA" }

87 }87 }


118 ),118 ),

119 ):119 ):

120 # Сообщение результата содержит structured_output с валидированными данными120 # Сообщение результата содержит structured_output с валидированными данными

121 if isinstance(message, ResultMessage) and message.structured_output:121 if (

122 isinstance(message, ResultMessage)

123 and not message.is_error

124 and message.structured_output

125 ):

122 print(message.structured_output)126 print(message.structured_output)

123 # {'company_name': 'Anthropic', 'founded_year': 2021, 'headquarters': 'San Francisco, CA'}127 # {'company_name': 'Anthropic', 'founded_year': 2021, 'headquarters': 'San Francisco, CA'}

124 except Exception as error:128 except Exception as error:


173 }177 }

174 }178 }

175 })) {179 })) {

176 if (message.type === "result" && message.subtype === "success" && message.structured_output) {180 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

177 // Валидируйте и получите полностью типизированный результат181 // Валидируйте и получите полностью типизированный результат

178 const parsed = FeaturePlan.safeParse(message.structured_output);182 const parsed = FeaturePlan.safeParse(message.structured_output);

179 if (parsed.success) {183 if (parsed.success) {


223 }227 }

224 ),228 ),

225 ):229 ):

226 if isinstance(message, ResultMessage) and message.structured_output:230 if (

231 isinstance(message, ResultMessage)

232 and not message.is_error

233 and message.structured_output

234 ):

227 # Валидируйте и получите полностью типизированный результат235 # Валидируйте и получите полностью типизированный результат

228 plan = FeaturePlan.model_validate(message.structured_output)236 plan = FeaturePlan.model_validate(message.structured_output)

229 print(f"Feature: {plan.feature_name}")237 print(f"Feature: {plan.feature_name}")


297 }305 }

298 }306 }

299 })) {307 })) {

300 if (message.type === "result" && message.subtype === "success" && message.structured_output) {308 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

301 const data = message.structured_output as { total_count: number; todos: Array<{ file: string; line: number; text: string; author?: string; date?: string }> };309 const data = message.structured_output as { total_count: number; todos: Array<{ file: string; line: number; text: string; author?: string; date?: string }> };

302 console.log(`Found ${data.total_count} TODOs`);310 console.log(`Found ${data.total_count} TODOs`);

303 data.todos.forEach((todo) => {311 data.todos.forEach((todo) => {


352 output_format={"type": "json_schema", "schema": todo_schema}360 output_format={"type": "json_schema", "schema": todo_schema}

353 ),361 ),

354 ):362 ):

355 if isinstance(message, ResultMessage) and message.structured_output:363 if (

364 isinstance(message, ResultMessage)

365 and not message.is_error

366 and message.structured_output

367 ):

356 data = message.structured_output368 data = message.structured_output

357 print(f"Found {data['total_count']} TODOs")369 print(f"Found {data['total_count']} TODOs")

358 for todo in data["todos"]:370 for todo in data["todos"]:


383 395 

384Генерация структурированного вывода может не удаться, когда агент не может создать валидный JSON, соответствующий вашей схеме. Это обычно происходит, когда схема слишком сложна для задачи, сама задача неоднозначна или агент достигает лимита повторных попыток при попытке исправить ошибки валидации. Это также может произойти без каких-либо ошибок валидации: [переключение на резервную модель](https://code.claude.com/docs/ru/model-config.md#automatic-model-fallback) может отменить уже завершённый вывод в середине потока, и если никакая повторная попытка его не заменит, выполнение завершится с той же ошибкой. Проверьте список `errors` в сообщении результата с ошибкой, чтобы различить две причины перед отладкой вашей схемы.396Генерация структурированного вывода может не удаться, когда агент не может создать валидный JSON, соответствующий вашей схеме. Это обычно происходит, когда схема слишком сложна для задачи, сама задача неоднозначна или агент достигает лимита повторных попыток при попытке исправить ошибки валидации. Это также может произойти без каких-либо ошибок валидации: [переключение на резервную модель](https://code.claude.com/docs/ru/model-config.md#automatic-model-fallback) может отменить уже завершённый вывод в середине потока, и если никакая повторная попытка его не заменит, выполнение завершится с той же ошибкой. Проверьте список `errors` в сообщении результата с ошибкой, чтобы различить две причины перед отладкой вашей схемы.

385 397 

386Когда происходит ошибка, сообщение результата имеет `subtype`, указывающий, что пошло не так:398Проверьте `subtype` сообщения результата:

387 399 

388| Subtype | Значение |400| Subtype | Значение |

389| - | - |401| - | - |

390| `success` | Вывод был успешно сгенерирован и валидирован |402| `success` | Выполнение завершилось без subtype ошибки |

391| `error_max_structured_output_retries` | После нескольких попыток не осталось валидного вывода (ошибки валидации или отмена вывода при переключении на резервную модель без успешной повторной попытки) |403| `error_max_structured_output_retries` | После нескольких попыток не осталось валидного вывода (ошибки валидации или отмена вывода при переключении на резервную модель без успешной повторной попытки) |

392 404 

393Результат также может завершиться с subtype `success`, но без значения `structured_output`, например, когда выполнение завершается без того, чтобы агент создал структурированный вывод. Этот случай также рассматривайте как ошибку. Запись по устранению неполадок [structured\_output is None but the result says success](https://code.claude.com/docs/ru/agent-sdk/troubleshooting.md#structured_output-is-none-but-the-result-says-success) охватывает этот случай. Пример ниже рассматривает результат как успешный только когда `subtype` равен `success` и `structured_output` присутствует, и обрабатывает все остальные результаты как ошибку:405Subtype `success` сам по себе не означает, что выполнение дало ответ. Рассматривайте результат как ошибку, когда `is_error` результата равен `true` или `structured_output` отсутствует:

406 

407* **`is_error` в результате равен `true`**: например, последний запрос к модели завершился ошибкой API или отказом. Не используйте значение `structured_output` из такого результата.

408* **`structured_output` отсутствует**: чтобы найти причину, см. [structured\_output is None but the result says success](https://code.claude.com/docs/ru/agent-sdk/troubleshooting.md#structured_output-is-none-but-the-result-says-success)

409 

410Пример ниже применяет эти проверки:

394 411 

395```typescript TypeScript theme={null}412```typescript TypeScript theme={null}

396import { query } from "@anthropic-ai/claude-agent-sdk";413import { query } from "@anthropic-ai/claude-agent-sdk";


415 }432 }

416 })) {433 })) {

417 if (msg.type === "result") {434 if (msg.type === "result") {

418 if (msg.subtype === "success" && msg.structured_output) {435 if (msg.subtype === "success" && !msg.is_error && msg.structured_output) {

419 // Use the validated output436 // Use the validated output

420 console.log(msg.structured_output);437 console.log(msg.structured_output);

421 } else if (msg.subtype === "error_max_structured_output_retries") {438 } else if (msg.subtype === "error_max_structured_output_retries") {

422 console.error("Could not produce valid output");439 console.error("Could not produce valid output");

423 } else {440 } else {

424 console.error("Run ended without a structured output");441 console.error("Run ended with an error or without a structured output");

425 }442 }

426 }443 }

427 }444 }


456 ),473 ),

457 ):474 ):

458 if isinstance(message, ResultMessage):475 if isinstance(message, ResultMessage):

459 if message.subtype == "success" and message.structured_output:476 if (

477 message.subtype == "success"

478 and not message.is_error

479 and message.structured_output

480 ):

460 # Use the validated output481 # Use the validated output

461 print(message.structured_output)482 print(message.structured_output)

462 elif message.subtype == "error_max_structured_output_retries":483 elif message.subtype == "error_max_structured_output_retries":

463 print("Could not produce valid output")484 print("Could not produce valid output")

464 else:485 else:

465 print("Run ended without a structured output")486 print("Run ended with an error or without a structured output")

466 except Exception as error:487 except Exception as error:

467 # A single-shot query() raises after yielding an error result. If the488 # A single-shot query() raises after yielding an error result. If the

468 # failure was an error result, the error subtype branches above have489 # failure was an error result, the error subtype branches above have

Details

142 142 

143Сообщение результата может заканчиваться `subtype: "success"`, пока `structured_output` равен `None` в Python или `undefined` в TypeScript. Запуск завершается, но проверенный выход не существует.143Сообщение результата может заканчиваться `subtype: "success"`, пока `structured_output` равен `None` в Python или `undefined` в TypeScript. Запуск завершается, но проверенный выход не существует.

144 144 

145Рассматривайте этот результат как сбой в коде приложения. Проверьте как то, что `subtype` равен `success`, так и то, что `structured_output` присутствует, прежде чем использовать его. Раздел [Error handling](https://code.claude.com/docs/ru/agent-sdk/structured-outputs.md#error-handling) показывает этот паттерн для обоих SDK. Затем проверьте следующие причины:145Рассматривайте этот результат как сбой в коде приложения. Раздел [Error handling](https://code.claude.com/docs/ru/agent-sdk/structured-outputs.md#error-handling) показывает этот паттерн для обоих SDK. Затем проверьте следующие причины:

146 146 

147* **Запрос, который Claude отклонил**: чтобы обнаружить этот случай в коде, проверьте, равен ли `stop_reason` в сообщении результата значению `"refusal"`. О том, что попробовать дальше, см. [Отказ по Usage Policy](https://code.claude.com/docs/ru/errors.md#usage-policy-refusal).147* **Запрос, который Claude отклонил**: чтобы обнаружить этот случай в коде, проверьте, равен ли `stop_reason` в сообщении результата значению `"refusal"`. О том, что попробовать дальше, см. [Отказ по Usage Policy](https://code.claude.com/docs/ru/errors.md#usage-policy-refusal).

148* **Схема, которую не может удовлетворить никакой выход**: например, строка, у которой `minLength` больше, чем `maxLength`. Если `structured_output` повторно отсутствует со схемой, которую вы считаете правильной, поищите ограничения, противоречащие друг другу. Если таких нет, упрощайте схему до тех пор, пока выходы не начнут проходить проверку, а затем возвращайте ограничения по одному.148* **Схема, которую не может удовлетворить никакой выход**: например, строка, у которой `minLength` больше, чем `maxLength`. Если `structured_output` повторно отсутствует со схемой, которую вы считаете правильной, поищите ограничения, противоречащие друг другу. Если таких нет, упрощайте схему до тех пор, пока выходы не начнут проходить проверку, а затем возвращайте ограничения по одному.

Details

1923| `extra_usage_disabled` | Кредиты использования отключены для учётной записи |1923| `extra_usage_disabled` | Кредиты использования отключены для учётной записи |

1924| `network_error` | [Проверка доступности](https://code.claude.com/docs/ru/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) не смогла связаться с `api.anthropic.com` |1924| `network_error` | [Проверка доступности](https://code.claude.com/docs/ru/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) не смогла связаться с `api.anthropic.com` |

1925| `unknown` | Claude Code не смог определить доступность |1925| `unknown` | Claude Code не смог определить доступность |

1926| `not_first_party` | Сессия использует поставщика, отличного от Anthropic API |1926| `not_first_party` | Сессия использует провайдера, который не предлагает быстрый режим |

1927| `disabled_by_env` | Установлена переменная [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/ru/env-vars) |1927| `disabled_by_env` | Установлена переменная [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/ru/env-vars) или регион модели в [Google Cloud's Agent Platform](https://code.claude.com/docs/ru/fast-mode.md#use-fast-mode-on-agent-platform) не предлагает быстрый режим |

1928| `model_not_allowed` | Модель Opus для быстрого режима отсутствует в списке разрешённых моделей [`availableModels`](https://code.claude.com/docs/ru/model-config#restrict-model-selection) организации |1928| `model_not_allowed` | Модель быстрого режима отсутствует в списке разрешённых моделей [`availableModels`](https://code.claude.com/docs/ru/model-config#restrict-model-selection) организации или провайдер отказал в быстром режиме для модели сессии |

1929| `sdk_opt_in_required` | Сессия не включила быстрый режим: передайте `fastMode: true` в опции [`settings`](#options) или через [`applyFlagSettings()`](#applyflagsettings) |1929| `sdk_opt_in_required` | Сессия не включила быстрый режим: передайте `fastMode: true` в опции [`settings`](#options) или через [`applyFlagSettings()`](#applyflagsettings) |

1930| `pending` | Проверка доступности ещё не завершена |1930| `pending` | Проверка доступности ещё не завершена |

1931 1931 


2007 2007 

2008#### `startup_failure_reason`2008#### `startup_failure_reason`

2009 2009 

2010Почему Claude Code отказался запускаться, чтобы ваше приложение могло предложить исправление вместо повторной попытки. Claude Code устанавливает его в результате `error_during_execution`, который он записывает перед выходом при известной ошибке запуска. Этот результат содержит обнулённые итоги, а его массив `errors` содержит тот же текст, что и stderr. Во всех остальных результатах это поле отсутствует. Требует Agent SDK v0.3.274 или позже.2010Почему Claude Code отказался запускаться, чтобы ваше приложение могло предложить исправление вместо повторной попытки. Claude Code устанавливает его в результате `error_during_execution`, который он записывает перед выходом при известной ошибке запуска. Этот результат содержит обнулённые итоги, а его массив `errors` содержит сообщение об ошибке. Во всех остальных результатах поле отсутствует. Требуется Agent SDK v0.3.274 или новее.

2011 2011 

2012Установите `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` в `1` в [`env`](#options), чтобы получать этот результат для каждого значения `SDKStartupFailureReason`. Без этой переменной Claude Code записывает результат только для следующих ошибок, а остальные завершаются выводом в stderr, ненулевым кодом выхода и без сообщения результата:2012Установите `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` в `1` в [`env`](#options), чтобы получать этот результат для каждого значения `SDKStartupFailureReason`. Без этой переменной Claude Code записывает результат только для следующих ошибок, а остальные завершаются выводом в stderr, ненулевым кодом выхода и без сообщения результата:

2013 2013 


5087 5087 

5088### `ApiKeySource`5088### `ApiKeySource`

5089 5089 

5090Источник API-ключа для запросов сессии, сообщаемый как `apiKeySource` в инициализирующем сообщении [`SDKSystemMessage`](#sdksystemmessage).5090Источник API-ключа для запросов сессии; передаётся как `apiKeySource` в инициализирующем сообщении [`SDKSystemMessage`](#sdksystemmessage).

5091 5091 

5092```typescript theme={null}5092```typescript theme={null}

5093type ApiKeySource =5093type ApiKeySource =


5106 5106 

5107| Значение | Используемый ключ |5107| Значение | Используемый ключ |

5108| - | - |5108| - | - |

5109| `ANTHROPIC_API_KEY` | Ключ в переменной окружения `ANTHROPIC_API_KEY` |5109| `ANTHROPIC_API_KEY` | Ключ из переменной окружения `ANTHROPIC_API_KEY` |

5110| `apiKeyHelper` | Ключ, возвращённый вашей командой [`apiKeyHelper`](https://code.claude.com/docs/ru/settings-reference#apikeyhelper) |5110| `apiKeyHelper` | Ключ, возвращённый вашей командой [`apiKeyHelper`](https://code.claude.com/docs/ru/settings-reference#apikeyhelper) |

5111| `/login managed key` | Ключ, сохранённый Claude Code при входе с учётной записью [Claude Console](https://code.claude.com/docs/ru/authentication.md#claude-console-authentication) |5111| `/login managed key` | Ключ, который Claude Code сохранил при входе с [учётной записью Claude Console](https://code.claude.com/docs/ru/authentication.md#claude-console-authentication) |

5112| `none` | Нет API-ключа. Сессия аутентифицируется другим способом, например через вход в claude.ai, Bearer-токен или облачного провайдера |5112| `none` | API-ключа нет. Сессия проходит аутентификацию другим способом, например через вход в claude.ai, Bearer-токен или облачного провайдера |

5113 5113 

5114Agent SDK v0.3.234 и более поздние версии перечисляют в типе эти четыре значения. Тип также сохраняет `user`, `project`, `org`, `temporary` и `oauth`, чтобы старый код продолжал компилироваться, но Claude Code их не сообщает.5114В Agent SDK v0.3.234 и более поздних версиях тип перечисляет эти четыре значения. Тип также сохраняет `user`, `project`, `org`, `temporary` и `oauth`, чтобы старый код продолжал компилироваться, но Claude Code их не сообщает.

5115 5115 

5116### `SdkBeta`5116### `SdkBeta`

5117 5117 

5118Доступные бета-функции, которые можно включить через опцию `betas`. См. [Beta headers](https://platform.claude.com/docs/en/api/beta-headers) для дополнительной информации.5118Доступные бета-функции, которые можно включить с помощью параметра `betas`. Подробнее см. в разделе [Beta headers](https://platform.claude.com/docs/en/api/beta-headers).

5119 5119 

5120```typescript theme={null}5120```typescript theme={null}

5121type SdkBeta = "context-1m-2025-08-07";5121type SdkBeta = "context-1m-2025-08-07";


5123 5123 

5124> [!WARNING]5124> [!WARNING]

5125>5125>

5126> В Claude API бета `context-1m-2025-08-07` снята с поддержки для Claude Sonnet 4.5 и Claude Sonnet 4. Если вы по-прежнему передаёте её с любой из этих моделей, запросы, превышающие стандартное контекстное окно в 200K токенов, возвращают ошибку, поэтому удалите её из `betas`. Чтобы запустить сессию с контекстным окном в 1M токенов, установите в `model` модель, которая [по умолчанию работает с окном 1M](https://code.claude.com/docs/ru/model-config.md#extended-context), например `claude-sonnet-5-5` или `claude-opus-5-5`. Для модели, которая получает 1M только через свой вариант `[1m]`, добавьте суффикс к идентификатору модели, как в `claude-opus-4-6[1m]`.5126> В Claude API бета-функция `context-1m-2025-08-07` выведена из эксплуатации для Claude Sonnet 4.5 и Claude Sonnet 4. Если вы всё ещё передаёте её с любой из этих моделей, запросы, превышающие стандартное контекстное окно в 200K токенов, возвращают ошибку, поэтому удалите её из `betas`. Чтобы запустить сессию с контекстным окном в 1M токенов, задайте в `model` модель, которая [по умолчанию работает с окном 1M](https://code.claude.com/docs/ru/model-config.md#extended-context), например `claude-sonnet-5-5` или `claude-opus-5-5`. Для модели, которая получает 1M только через вариант `[1m]`, добавьте суффикс к ID модели, например `claude-opus-4-6[1m]`.

5127 5127 

5128### `SlashCommand`5128### `SlashCommand`

5129 5129 


5139};5139};

5140```5140```

5141 5141 

5142`builtin` имеет значение `true` в строке, когда команда является собственной командой Claude Code и ввод `/name` её запускает. Поле отсутствует для команды, определённой пользователем, проектом, плагином или MCP-сервером, а также для встроенной команды, которую одна из них [заменяет по имени](https://code.claude.com/docs/ru/skills.md#resolve-skills-that-share-a-name). Требует Agent SDK v0.3.277 или более поздней версии.5142`builtin` имеет значение `true` в записи, когда команда принадлежит самому Claude Code и ввод `/name` запускает её. Поле отсутствует для команды, определённой пользователем, проектом, плагином или MCP-сервером, а также для встроенной команды, которую один из них [заменяет по имени](https://code.claude.com/docs/ru/skills.md#resolve-skills-that-share-a-name). Требуется Agent SDK v0.3.277 или более поздняя версия.

5143 5143 

5144### `ModelInfo`5144### `ModelInfo`

5145 5145 


5161 5161 

5162| Поле | Тип | Описание |5162| Поле | Тип | Описание |

5163| :- | :- | :- |5163| :- | :- | :- |

5164| `value` | `string` | Идентификатор модели для передачи в вызовы API |5164| `value` | `string` | Идентификатор модели для передачи в вызовах API |

5165| `resolvedModel` | `string \| undefined` | Идентификатор модели, в который разрешается `value` этой записи, например `claude-sonnet-5-5` для записи псевдонима `sonnet`. Требуется Claude Code v2.1.197 или более поздней версии. |5165| `resolvedModel` | `string \| undefined` | ID модели, в который разрешается `value` этой записи, например `claude-sonnet-5-5` для записи с псевдонимом `sonnet`. Требуется Claude Code v2.1.197 или более поздняя версия. |

5166| `displayName` | `string` | Удобочитаемое отображаемое имя |5166| `displayName` | `string` | Понятное человеку отображаемое имя |

5167| `description` | `string` | Описание возможностей модели |5167| `description` | `string` | Описание возможностей модели |

5168| `supportsEffort` | `boolean \| undefined` | Поддерживает ли эта модель уровни effort |5168| `supportsEffort` | `boolean \| undefined` | Поддерживает ли модель уровни effort |

5169| `supportedEffortLevels` | `("low" \| "medium" \| "high" \| "xhigh" \| "max")[] \| undefined` | Уровни effort, которые принимает эта модель |5169| `supportedEffortLevels` | `("low" \| "medium" \| "high" \| "xhigh" \| "max")[] \| undefined` | Уровни effort, которые принимает эта модель |

5170| `supportsAdaptiveThinking` | `boolean \| undefined` | Поддерживает ли эта модель адаптивное мышление, при котором Claude решает, когда и сколько думать |5170| `supportsAdaptiveThinking` | `boolean \| undefined` | Поддерживает ли модель адаптивное мышление, при котором Claude сам решает, когда и сколько размышлять |

5171| `supportsFastMode` | `boolean \| undefined` | Поддерживает ли эта модель быстрый режим |5171| `supportsFastMode` | `boolean \| undefined` | Поддерживает ли модель быстрый режим |

5172| `supportsAutoMode` | `boolean \| undefined` | Поддерживает ли эта модель авторежим |5172| `supportsAutoMode` | `boolean \| undefined` | Поддерживает ли модель авторежим |

5173 5173 

5174### `AgentInfo`5174### `AgentInfo`

5175 5175 

5176Информация о доступном субагенте, который может быть вызван через инструмент Agent.5176Информация о доступном субагенте, которого можно вызвать через инструмент Agent.

5177 5177 

5178```typescript theme={null}5178```typescript theme={null}

5179type AgentInfo = {5179type AgentInfo = {


5187| :- | :- | :- |5187| :- | :- | :- |

5188| `name` | `string` | Идентификатор типа агента (например, `"Explore"`, `"general-purpose"`) |5188| `name` | `string` | Идентификатор типа агента (например, `"Explore"`, `"general-purpose"`) |

5189| `description` | `string` | Описание того, когда использовать этого агента |5189| `description` | `string` | Описание того, когда использовать этого агента |

5190| `model` | `string \| undefined` | Модель, которую использует этот агент: псевдоним или идентификатор модели, или `'inherit'` для модели родителя. Когда значение `undefined`, Claude Code выбирает модель в [порядке выбора модели субагента](https://code.claude.com/docs/ru/sub-agents.md#choose-a-model) |5190| `model` | `string \| undefined` | Модель, которую использует этот агент: псевдоним или ID модели либо `'inherit'` для модели родителя. Если значение `undefined`, Claude Code выбирает модель в [порядке выбора модели для субагента](https://code.claude.com/docs/ru/sub-agents.md#choose-a-model) |

5191 5191 

5192### `McpServerProvenance`5192### `McpServerProvenance`

5193 5193 

5194MCP-сервер, который обслуживает инструмент `mcp__*`, и источник определения этого сервера. Входные данные хуков [`PreToolUse`](#pretoolusehookinput), `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` и `PermissionDenied` содержат его как `mcp_server`, а опции [`CanUseTool`](#canusetool) содержат его как `mcpServer`. Оба опускают его для инструментов, которые не поступают от MCP-сервера.5194MCP-сервер, предоставляющий инструмент `mcp__*`, и источник определения этого сервера. Входные данные хуков [`PreToolUse`](#pretoolusehookinput), `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` и `PermissionDenied` передают его как `mcp_server`, а параметры [`CanUseTool`](#canusetool) — как `mcpServer`. И там, и там он отсутствует для инструментов, которые не поступают от MCP-сервера.

5195 5195 

5196```typescript theme={null}5196```typescript theme={null}

5197type McpServerProvenance = {5197type McpServerProvenance = {


5202 5202 

5203| Поле | Тип | Описание |5203| Поле | Тип | Описание |

5204| :- | :- | :- |5204| :- | :- | :- |

5205| `name` | `string` | Имя, под которым зарегистрирован сервер, то же значение, которое [`mcpServerStatus()`](#query-object) сообщает для него |5205| `name` | `string` | Имя, под которым зарегистрирован сервер; то же значение, которое сообщает для него [`mcpServerStatus()`](#query-object) |

5206| `source` | `string` | Источник определения сервера: `sdk`, `plugin` или область действия конфигурации |5206| `source` | `string` | Откуда взято определение сервера: `sdk`, `plugin` или область действия конфигурации |

5207 5207 

5208`source` принимает одно из следующих значений. Набор открыт, поэтому рассматривайте незнакомое значение как настроенный источник, но никогда не как `sdk`:5208`source` принимает одно из следующих значений. Набор открыт, поэтому считайте незнакомое значение настроенным источником, но никогда не `sdk`:

5209 5209 

5210* **`sdk`**: встроенный в процесс сервер, который зарегистрировало ваше приложение. Зарегистрировать такой сервер может только приложение-хост SDK, поэтому настроенный сервер никогда не сообщает `sdk`, независимо от его имени.5210* **`sdk`**: внутрипроцессный сервер, зарегистрированный вашим приложением. Зарегистрировать его может только хост-приложение SDK, поэтому настроенный сервер никогда не сообщает `sdk`, каким бы ни было его имя.

5211* **`plugin`**: сервер, который предоставляет [плагин](https://code.claude.com/docs/ru/agent-sdk/plugins.md). Его `name` имеет форму с областью `plugin:<plugin-name>:<server-name>`, описанную в разделе [MCP-серверы, предоставляемые плагинами](https://code.claude.com/docs/ru/mcp.md#plugin-provided-mcp-servers).5211* **`plugin`**: сервер, предоставляемый [плагином](https://code.claude.com/docs/ru/agent-sdk/plugins.md). Его `name` имеет ограниченную форму `plugin:<plugin-name>:<server-name>`, описанную в разделе [MCP-серверы, предоставляемые плагинами](https://code.claude.com/docs/ru/mcp.md#plugin-provided-mcp-servers).

5212* **Область действия конфигурации**: `user`, `project`, `local`, `dynamic`, `managed`, `enterprise`, `claudeai` или `agent`. Сервер из `.mcp.json` сообщает `project`, а [области действия установки MCP](https://code.claude.com/docs/ru/mcp.md#mcp-installation-scopes) определяют `local`, `project` и `user`. Серверы, которые ваше приложение передаёт в опции [`mcpServers`](#options), кроме встроенных в процесс SDK-серверов, сообщают `dynamic`.5212* **Область действия конфигурации**: `user`, `project`, `local`, `dynamic`, `managed`, `enterprise`, `claudeai` или `agent`. Сервер из `.mcp.json` сообщает `project`, а раздел [Области действия установки MCP](https://code.claude.com/docs/ru/mcp.md#mcp-installation-scopes) определяет `local`, `project` и `user`. Серверы, которые ваше приложение передаёт в [параметре `mcpServers`](#options), кроме внутрипроцессных серверов SDK, сообщают `dynamic`.

5213 5213 

5214Основывайте решения о доверии на `source`, а не на `name` или префиксе имени инструмента `mcp__<server>__`. Для любого источника, кроме `sdk`, `name` является недоверенным текстом: экранируйте его перед отображением.5214Принимайте решения о доверии на основе `source`, а не `name` или префикса имени инструмента `mcp__<server>__`. Для любого источника, кроме `sdk`, `name` — недоверенный текст: экранируйте его перед отображением.

5215 5215 

5216`McpServerProvenance` и поля, которые его содержат, требуют Agent SDK v0.3.274 или более поздней версии.5216`McpServerProvenance` и поля, которые его передают, требуют Agent SDK v0.3.274 или более поздней версии.

5217 5217 

5218### `McpServerStatus`5218### `McpServerStatus`

5219 5219 


5246 5246 

5247Используйте `source`, чтобы решить, насколько доверять серверу, а `_meta` в каждой записи `tools` — чтобы найти UI-ресурс, который сервер прикрепил к этому инструменту:5247Используйте `source`, чтобы решить, насколько доверять серверу, а `_meta` в каждой записи `tools` — чтобы найти UI-ресурс, который сервер прикрепил к этому инструменту:

5248 5248 

5249* **`source`**: откуда поступило определение сервера, с теми же значениями, что и у `source` в [`McpServerProvenance`](#mcpserverprovenance). Основывайте решения о доверии на `source`, а не на `name`, потому что только ваш собственный встроенный в процесс сервер сообщает `sdk`, под каким бы именем ни был зарегистрирован любой другой сервер. Если значение `source` вам незнакомо, обращайтесь с этим сервером так же, как с любым сервером, у которого `source` не равен `sdk`. Требует Agent SDK v0.3.274 или более поздней версии5249* **`source`**: откуда взято определение сервера; значения те же, что у `source` в [`McpServerProvenance`](#mcpserverprovenance). Принимайте решения о доверии на основе `source`, а не `name`, потому что только ваш собственный внутрипроцессный сервер сообщает `sdk`, под каким бы именем ни был зарегистрирован любой другой сервер. Если вы не распознаёте значение `source`, обращайтесь с этим сервером так же, как с любым сервером, чей `source` не равен `sdk`. Требуется Agent SDK v0.3.274 или более поздняя версия

5250* **`_meta`**: объект `ui` и строка `ui/resourceUri` из `_meta`, который сервер объявил для инструмента. Claude Code скрывает все остальные ключи `_meta`. `ui/resourceUri` — это более старое написание `ui.resourceUri` на верхнем уровне. Когда сервер прикрепляет к инструменту [UI-ресурс MCP Apps](https://code.claude.com/docs/ru/mcp.md#reference-mcp-resources), `ui.resourceUri` или `ui/resourceUri` содержит URI `ui://` этого ресурса. Получите ресурс по этому URI с помощью [`readMcpResource()`](#query-object) и отобразите его в своём приложении. Требует Agent SDK v0.3.280 или более поздней версии5250* **`_meta`**: объект `ui` и строка `ui/resourceUri` из `_meta`, которые сервер объявил для инструмента. Все остальные ключи `_meta` Claude Code не передаёт. `ui/resourceUri` — более старое написание `ui.resourceUri` на верхнем уровне. Когда сервер прикрепляет к инструменту [UI-ресурс MCP Apps](https://code.claude.com/docs/ru/mcp.md#reference-mcp-resources), `ui.resourceUri` или `ui/resourceUri` содержит URI ресурса вида `ui://`. Получите этот URI с помощью [`readMcpResource()`](#query-object) и отрисуйте ресурс в своём приложении. Требуется Agent SDK v0.3.280 или более поздняя версия

5251 5251 

5252Claude Code отправляет `_meta`, только когда массив [`capabilities`](#sdksystemmessage) сообщения `system` с подтипом `init` содержит `mcp_tool_ui_meta_v1`. Включать `mcp_tool_ui_meta_v1` самостоятельно не нужно.5252Claude Code отправляет `_meta` только тогда, когда массив [`capabilities`](#sdksystemmessage) сообщения `system` с подтипом `init` содержит `mcp_tool_ui_meta_v1`. Включать `mcp_tool_ui_meta_v1` самостоятельно не нужно.

5253 5253 

5254#### Когда `_meta.ui` инструмента содержит только `visibility`5254#### Когда `_meta.ui` инструмента содержит только `visibility`

5255 5255 

5256Если ваш сервер объявляет `ui.resourceUri` для инструмента, но `_meta.ui`, который получает ваше приложение, содержит только `visibility`, значит объект `ui`, отправленный сервером, не прошёл одну из проверок Claude Code. Сравните `_meta` в ответе `tools/list` вашего сервера с проверками для каждого ключа:5256Если ваш сервер объявляет `ui.resourceUri` для инструмента, но `_meta.ui`, которое получает ваше приложение, содержит только `visibility`, значит объект `ui`, отправленный сервером, не прошёл одну из проверок Claude Code. Сравните `_meta` в ответе `tools/list` вашего сервера с проверками для каждого ключа:

5257 5257 

5258* **`ui`**: доходит до вашего приложения без изменений, включая любые члены помимо `resourceUri` и `visibility`, если пройдены все три проверки:5258* **`ui`**: доходит до вашего приложения без изменений, включая любые члены, кроме `resourceUri` и `visibility`, если пройдены все три проверки:

5259 5259 

5260 * `resourceUri` отсутствует или является строкой, которая начинается с `ui://`5260 * `resourceUri` отсутствует или является строкой, начинающейся с `ui://`

5261 * `visibility` отсутствует или содержит только `"model"` и `"app"`5261 * `visibility` отсутствует или содержит только `"model"` и `"app"`

5262 * Весь объект при сериализации в JSON занимает не более 4096 символов5262 * Весь объект при сериализации в JSON занимает не более 4096 символов

5263 5263 

5264 Если какая-либо из проверок не пройдена, ваше приложение получает самое большее `ui`, единственным членом которого является массив `visibility` с теми записями `"model"` и `"app"`, которые перечислил сервер.5264 Если какая-либо проверка не пройдена, ваше приложение получает в лучшем случае `ui`, единственный член которого — массив `visibility` с записями `"model"` и `"app"`, перечисленными сервером.

5265* **`ui/resourceUri`**: доходит до вашего приложения, если это строка, которая начинается с `ui://` и занимает не более 4096 символов. В противном случае Claude Code отбрасывает её5265* **`ui/resourceUri`**: доходит до вашего приложения, если это строка, начинающаяся с `ui://`, длиной не более 4096 символов. В противном случае Claude Code отбрасывает его

5266 5266 

5267Когда у Claude Code не остаётся ни члена `ui`, ни строки `ui/resourceUri` для отправки, запись `tools` вообще не содержит `_meta`.5267Когда у Claude Code не остаётся ни члена `ui`, ни строки `ui/resourceUri` для отправки, запись `tools` вообще не содержит `_meta`.

5268 5268 

5269### `McpServerStatusConfig`5269### `McpServerStatusConfig`

5270 5270 

5271Конфигурация MCP-сервера в том виде, в каком её сообщает `mcpServerStatus()`. Это объединение всех типов транспорта MCP-сервера.5271Конфигурация MCP-сервера, возвращаемая `mcpServerStatus()`. Это объединение всех типов транспорта MCP-серверов.

5272 5272 

5273```typescript theme={null}5273```typescript theme={null}

5274type McpServerStatusConfig =5274type McpServerStatusConfig =


5279 | McpClaudeAIProxyServerConfig;5279 | McpClaudeAIProxyServerConfig;

5280```5280```

5281 5281 

5282См. [`McpServerConfig`](#mcpserverconfig) для деталей по каждому типу транспорта.5282Подробнее о каждом типе транспорта см. в [`McpServerConfig`](#mcpserverconfig).

5283 5283 

5284### `AccountInfo`5284### `AccountInfo`

5285 5285 


5297 5297 

5298### `ModelUsage`5298### `ModelUsage`

5299 5299 

5300Статистика использования для каждой модели, возвращаемая в сообщениях результата. Значение `costUSD` — это оценка на стороне клиента. См. [Отслеживание затрат и использования](https://code.claude.com/docs/ru/agent-sdk/cost-tracking.md) для оговорок о биллинге.5300Статистика использования по каждой модели, возвращаемая в сообщениях с результатом. Значение `costUSD` — оценка на стороне клиента. Оговорки, касающиеся биллинга, см. в разделе [Отслеживание стоимости и использования](https://code.claude.com/docs/ru/agent-sdk/cost-tracking.md).

5301 5301 

5302```typescript theme={null}5302```typescript theme={null}

5303type ModelUsage = {5303type ModelUsage = {


5316};5316};

5317```5317```

5318 5318 

5319`thinkingTokens` подсчитывает токены размышлений, которые сгенерировала эта модель. `outputTokens` уже включает их, поэтому не складывайте эти два значения. Поле отсутствует до тех пор, пока ход не выполнится на версии Claude Code, которая его записывает, поэтому возобновлённая сессия, начатая на более ранней версии, сообщает частичный подсчёт. `thinkingTokens` требует Agent SDK v0.3.257 или более поздней версии.5319`thinkingTokens` подсчитывает токены размышлений, сгенерированные этой моделью. `outputTokens` уже включает их, поэтому не складывайте эти два значения. Поле отсутствует, пока не будет выполнен ход в версии Claude Code, которая его записывает, поэтому возобновлённая сессия, начатая в более ранней версии, сообщает частичный подсчёт. `thinkingTokens` требует Agent SDK v0.3.257 или более поздней версии.

5320 5320 

5321Поля `canonicalModel` и `provider` требуют Claude Code v2.1.218 или более поздней версии. `canonicalModel` — это канонический идентификатор модели, который используется для поиска цены; он может отличаться от исходной строки модели, которая является ключом записи, например когда эта строка является идентификатором конкретного провайдера или псевдонимом.5321Поля `canonicalModel` и `provider` требуют Claude Code v2.1.218 или более поздней версии. `canonicalModel` — канонический ID модели, который используется при поиске цены; он может отличаться от исходной строки модели, служащей ключом записи, например когда эта строка — ID конкретного провайдера или псевдоним.

5322 5322 

5323`provider` называет API-бэкенд, который обслуживал модель, например `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle` или `gateway`.5323`provider` указывает бэкенд API, обслуживший модель, например `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle` или `gateway`.

5324 5324 

5325`costBasis` называет таблицу цен, по которой был оценён последний запрос модели: `list` для прейскурантной цены, `managed` для таблицы [`modelPricing`](https://code.claude.com/docs/ru/settings-reference#modelpricing) или `unknown`, когда ни одна из них не совпала с идентификатором модели. Поле требует Claude Code v2.1.246 или более поздней версии.5325`costBasis` указывает таблицу цен, по которой был тарифицирован последний запрос модели: `list` для прейскурантной цены, `managed` для таблицы [`modelPricing`](https://code.claude.com/docs/ru/settings-reference#modelpricing) или `unknown`, если ни одна из них не совпала с ID модели. Поле требует Claude Code v2.1.246 или более поздней версии.

5326 5326 

5327### `ConfigScope`5327### `ConfigScope`

5328 5328 


5332 5332 

5333### `NonNullableUsage`5333### `NonNullableUsage`

5334 5334 

5335Версия [`Usage`](#usage), в которой все nullable поля сделаны non-nullable, кроме `fallback_credit`, который по-прежнему может быть `null`.5335Версия [`Usage`](#usage), в которой все допускающие null поля сделаны не допускающими null, кроме `fallback_credit`, который по-прежнему может быть `null`.

5336 5336 

5337```typescript theme={null}5337```typescript theme={null}

5338type NonNullableUsage = {5338type NonNullableUsage = {


5368 5368 

5369`BetaServerToolUsage`, `BetaIterationsUsage`, `BetaOutputTokensDetails` и `BetaFallbackCreditUsage` определены в `@anthropic-ai/sdk`.5369`BetaServerToolUsage`, `BetaIterationsUsage`, `BetaOutputTokensDetails` и `BetaFallbackCreditUsage` определены в `@anthropic-ai/sdk`.

5370 5370 

5371`output_tokens_details` разбивает тарифицируемый вывод по категориям. В настоящее время он содержит одно поле, `thinking_tokens: number`, подсчитывающее выходные токены, которые модель сгенерировала как внутренние рассуждения, включая разделители блоков размышлений. Поле `output_tokens_details` требует TypeScript SDK v0.3.228 или более поздней версии, которая поставляется с Claude Code v2.1.228.5371`output_tokens_details` разбивает тарифицируемый вывод по категориям. Сейчас оно содержит одно поле, `thinking_tokens: number`, которое подсчитывает выходные токены, сгенерированные моделью как внутренние рассуждения, включая разделители блоков размышлений. Поле `output_tokens_details` требует TypeScript SDK v0.3.228 или более поздней версии, которая включает Claude Code v2.1.228.

5372 5372 

5373* **Биллинг**: используйте разбивку для наблюдаемости, а не для биллинга. `output_tokens` остаётся авторитетным итогом, а `output_tokens - thinking_tokens` приблизительно соответствует выводу без рассуждений.5373* **Биллинг**: используйте эту разбивку для наблюдаемости, а не для биллинга. `output_tokens` остаётся авторитетным итогом, а `output_tokens - thinking_tokens` приблизительно соответствует выводу без рассуждений.

5374* **Что охватывает подсчёт**: исходные рассуждения, которые произвела модель и которые могут быть длиннее текста размышлений, возвращённого в теле ответа. API вычисляет его путём повторной токенизации этого исходного текста, поэтому он может отличаться от точного числа сгенерированных моделью токенов на несколько токенов.5374* **Что охватывает подсчёт**: необработанные рассуждения модели, которые могут быть длиннее текста размышлений, возвращаемого в теле ответа. API вычисляет значение повторной токенизацией этого необработанного текста, поэтому оно может отличаться от точного числа сгенерированных моделью токенов на несколько токенов.

5375* **Потоковая передача**: в потоковых сообщениях ассистента эта разбивка, как и `output_tokens`, является заполнителем `message_start` и не содержит реального подсчёта, поэтому читайте её из `usage` сообщения результата, как описано в разделе [Чтение выходных токенов из сообщения результата](https://code.claude.com/docs/ru/agent-sdk/cost-tracking.md#read-output-tokens-from-the-result-message). В сообщении результата `thinking_tokens` имеет значение `0`, когда модель или провайдер не сообщает разбивку.5375* **Потоковая передача**: в потоковых сообщениях ассистента эта разбивка, как и `output_tokens`, является заглушкой `message_start` и не содержит реального значения, поэтому считывайте её из `usage` сообщения с результатом, как описано в разделе [Чтение выходных токенов из сообщения с результатом](https://code.claude.com/docs/ru/agent-sdk/cost-tracking.md#read-output-tokens-from-the-result-message). В сообщении с результатом `thinking_tokens` равно `0`, если модель или провайдер не сообщает разбивку.

5376* **Случаи `null`**: сам `output_tokens_details` имеет значение `null` в сообщениях ассистента, которые синтезирует Claude Code, например в сообщениях об ошибках API.5376* **Случаи `null`**: само `output_tokens_details` равно `null` в сообщениях ассистента, которые синтезирует Claude Code, например в сообщениях об ошибках API.

5377 5377 

5378Содержит ли `Usage` поле `fallback_credit`, зависит от установленной у вас версии `@anthropic-ai/sdk`, в которой оно появилось начиная с 0.115.0.5378Содержит ли `Usage` поле `fallback_credit`, зависит от установленной версии `@anthropic-ai/sdk`, в которой оно появилось в 0.115.0.

5379 5379 

5380### `CallToolResult`5380### `CallToolResult`

5381 5381 

5382Тип результата MCP-инструмента (из `@modelcontextprotocol/sdk/types.js`). `structuredContent` — это объект JSON, который может быть возвращён вместе с `content`, включая блоки изображений. См. [Возврат структурированных данных](https://code.claude.com/docs/ru/agent-sdk/custom-tools.md#return-structured-data).5382Тип результата инструмента MCP (из `@modelcontextprotocol/sdk/types.js`). `structuredContent` — JSON-объект, который можно вернуть вместе с `content`, включая блоки изображений. См. [Возврат структурированных данных](https://code.claude.com/docs/ru/agent-sdk/custom-tools.md#return-structured-data).

5383 5383 

5384```typescript theme={null}5384```typescript theme={null}

5385type CallToolResult = {5385type CallToolResult = {

5386 content: Array<{5386 content: Array<{

5387 type: "text" | "image" | "audio" | "resource" | "resource_link";5387 type: "text" | "image" | "audio" | "resource" | "resource_link";

5388 // Дополнительные поля варьируются по типу5388 // Дополнительные поля зависят от типа

5389 }>;5389 }>;

5390 structuredContent?: Record<string, unknown>;5390 structuredContent?: Record<string, unknown>;

5391 isError?: boolean;5391 isError?: boolean;


5394 5394 

5395### `SDKMcpResourceLink`5395### `SDKMcpResourceLink`

5396 5396 

5397Один файл, который MCP-инструмент вернул по ссылке. Claude Code создаёт каждую запись из блока `resource_link` в результате инструмента и доставляет список как `resourceLinks` в [`SDKUserMessage.tool_use_result`](#sdkusermessage) или как `resource_links` в [`SDKTaskNotificationMessage`](#sdktasknotificationmessage), когда вызов завершился в фоне. Требует Agent SDK v0.3.257 или более поздней версии.5397Один файл, возвращённый инструментом MCP по ссылке. Claude Code строит каждую запись из блока `resource_link` в результате инструмента и передаёт список как `resourceLinks` в [`SDKUserMessage.tool_use_result`](#sdkusermessage) или как `resource_links` в [`SDKTaskNotificationMessage`](#sdktasknotificationmessage), если вызов завершился в фоне. Требуется Agent SDK v0.3.257 или более поздняя версия.

5398 5398 

5399```typescript theme={null}5399```typescript theme={null}

5400type SDKMcpResourceLink = {5400type SDKMcpResourceLink = {


5414| :- | :- | :- |5414| :- | :- | :- |

5415| `uri` | `string` | URI ресурса в том виде, в каком его вернул сервер |5415| `uri` | `string` | URI ресурса в том виде, в каком его вернул сервер |

5416| `name` | `string` | Имя, которое сервер дал ресурсу |5416| `name` | `string` | Имя, которое сервер дал ресурсу |

5417| `title` | `string \| undefined` | Отображаемое название, если сервер его установил |5417| `title` | `string \| undefined` | Отображаемый заголовок, если сервер его задал |

5418| `description` | `string \| undefined` | Описание, если сервер его установил |5418| `description` | `string \| undefined` | Описание, если сервер его задал |

5419| `mimeType` | `string \| undefined` | MIME-тип, если сервер его установил |5419| `mimeType` | `string \| undefined` | MIME-тип, если сервер его задал |

5420| `size` | `number \| undefined` | Размер в байтах, если сервер его установил |5420| `size` | `number \| undefined` | Размер в байтах, если сервер его задал |

5421| `annotations` | `Record<string, unknown> \| undefined` | Объект MCP-аннотаций блока, если сервер его установил |5421| `annotations` | `Record<string, unknown> \| undefined` | Объект аннотаций MCP блока, если сервер его задал |

5422 5422 

5423### `ThinkingConfig`5423### `ThinkingConfig`

5424 5424 


5428type ThinkingDisplay = "summarized" | "omitted";5428type ThinkingDisplay = "summarized" | "omitted";

5429 5429 

5430type ThinkingConfig =5430type ThinkingConfig =

5431 | { type: "adaptive"; display?: ThinkingDisplay } // Модель определяет, когда и сколько рассуждать (Opus 4.6+)5431 | { type: "adaptive"; display?: ThinkingDisplay } // Модель сама определяет, когда и сколько рассуждать (Opus 4.6+)

5432 | { type: "enabled"; budgetTokens?: number; display?: ThinkingDisplay } // Фиксированный бюджет токенов мышления5432 | { type: "enabled"; budgetTokens?: number; display?: ThinkingDisplay } // Фиксированный бюджет токенов мышления

5433 | { type: "disabled" }; // Без расширенного мышления5433 | { type: "disabled" }; // Без расширенного мышления

5434```5434```

5435 5435 

5436Необязательное поле `display` управляет тем, возвращается ли текст размышлений как `"summarized"` или `"omitted"`. На Claude Opus 4.7 и более поздних версиях значение API по умолчанию — `"omitted"`, поэтому установите `"summarized"`, чтобы получать содержимое размышлений в блоках `thinking`. У таких провайдеров, как Amazon Bedrock и Google Cloud's Agent Platform, Claude Code не передаёт `display` для распознаваемых им более ранних моделей. Это Opus 4.6, Sonnet 4.6, Haiku 4.5 и более ранние модели, которые используют своё значение по умолчанию.5436Необязательное поле `display` определяет, возвращается ли текст размышлений как `"summarized"` или `"omitted"`. В Claude Opus 4.7 и более поздних версиях значение API по умолчанию — `"omitted"`, поэтому задайте `"summarized"`, чтобы получать содержимое размышлений в блоках `thinking`. У таких провайдеров, как Amazon Bedrock и Agent Platform от Google Cloud, Claude Code не передаёт `display` для распознаваемых им более ранних моделей. Это Opus 4.6, Sonnet 4.6, Haiku 4.5 и более ранние модели, которые используют своё значение по умолчанию.

5437 5437 

5438### `SpawnedProcess`5438### `SpawnedProcess`

5439 5439 

5440Интерфейс для пользовательского запуска процесса (используется с опцией `spawnClaudeCodeProcess`). `ChildProcess` уже удовлетворяет этому интерфейсу.5440Интерфейс для пользовательского запуска процессов (используется с параметром `spawnClaudeCodeProcess`). `ChildProcess` уже удовлетворяет этому интерфейсу.

5441 5441 

5442```typescript theme={null}5442```typescript theme={null}

5443interface SpawnedProcess {5443interface SpawnedProcess {


5466 5466 

5467### `SpawnOptions`5467### `SpawnOptions`

5468 5468 

5469Опции, передаваемые пользовательской функции spawn.5469Параметры, передаваемые пользовательской функции запуска.

5470 5470 

5471```typescript theme={null}5471```typescript theme={null}

5472interface SpawnOptions {5472interface SpawnOptions {


5480 5480 

5481> [!NOTE]5481> [!NOTE]

5482>5482>

5483> Поле `signal` сообщает вашей функции spawn, когда нужно завершить процесс. Передайте его как опцию `signal` в `spawn()` Node или передайте его обработчику завершения вашей VM или контейнера.5483> Поле `signal` сообщает вашей функции запуска, когда нужно завершить процесс. Передайте его как параметр `signal` в `spawn()` из Node или передайте его в свой обработчик завершения ВМ или контейнера.

5484>5484>

5485> Этот сигнал не срабатывает в тот же момент, когда отменяется [`Options.abortController`](#options). SDK сначала закрывает stdin процесса и ждёт около двух секунд, чтобы CLI мог корректно завершить работу, а затем отменяет этот сигнал. Чтобы реагировать сразу в момент отмены вызывающей стороной, слушайте собственный `Options.abortController.signal`, на который ваша функция spawn может ссылаться из охватывающей области видимости.5485> Этот сигнал срабатывает не в момент прерывания [`Options.abortController`](#options). Сначала SDK закрывает stdin процесса и ждёт около двух секунд, чтобы CLI мог корректно завершиться, и только затем прерывает этот сигнал. Чтобы реагировать сразу в момент прерывания вызывающей стороной, подпишитесь на собственный `Options.abortController.signal`, на который ваша функция запуска может ссылаться из охватывающей области видимости.

5486 5486 

5487### `McpSetServersResult`5487### `McpSetServersResult`

5488 5488 


5496};5496};

5497```5497```

5498 5498 

5499Промис `setMcpServers()` разрешается после того, как вновь добавленные stdio-, HTTP- и SSE-серверы подключатся или не смогут подключиться, поэтому инструменты подключившихся серверов доступны на следующем ходу.5499Промис `setMcpServers()` разрешается после того, как вновь добавленные серверы stdio, HTTP и SSE подключатся или завершатся неудачей, поэтому инструменты подключившихся серверов доступны на следующем ходе.

5500 5500 

5501Когда вы вызываете `setMcpServers()`, Claude Code применяет следующие правила:5501При вызове `setMcpServers()` Claude Code применяет следующие правила:

5502 5502 

5503* **Серверы, которые вызов не называет**: вне [облачной сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) Claude Code отключает серверы, добавленные предыдущим вызовом `setMcpServers()`, и встроенные в процесс SDK-серверы, и перечисляет их в `removed`. Остальные серверы продолжают работать и не перечисляются в `removed`, в том числе stdio-, HTTP- и SSE-серверы из опции [`mcpServers`](#options), серверы из файлов настроек и серверы, предоставленные плагинами.5503* **Серверы, не названные в вызове**: вне [облачной сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) Claude Code отключает серверы, добавленные предыдущим вызовом `setMcpServers()`, и внутрипроцессные серверы SDK и перечисляет их в `removed`. Остальные серверы продолжают работать и не перечисляются в `removed`, в том числе серверы stdio, HTTP и SSE из параметра [`mcpServers`](#options), серверы из файлов настроек и серверы, предоставляемые плагинами.

5504* **Stdio-, HTTP- и SSE-серверы, добавленные предыдущим вызовом `setMcpServers()`**: вне облачной сессии сервер, который вы снова называете с идентичной конфигурацией, сохраняет своё подключение и инструменты. Он не появляется ни в `added`, ни в `removed`. Если вы передаёте изменённую конфигурацию, Claude Code переподключает сервер с этой конфигурацией и перечисляет его в `added`, а не в `removed`.5504* **Серверы stdio, HTTP и SSE, добавленные предыдущим вызовом `setMcpServers()`**: вне облачной сессии сервер, который вы снова называете с идентичной конфигурацией, сохраняет своё подключение и инструменты. Он не появляется ни в `added`, ни в `removed`. Если вы передаёте изменённую конфигурацию, Claude Code переподключает сервер с этой конфигурацией и перечисляет его в `added`, а не в `removed`.

5505* **Stdio-, HTTP- и SSE-серверы, которые вызов называет и которые не добавлял ни один предыдущий вызов**: вне облачной сессии Claude Code добавляет сервер и перечисляет его в `added` или в `errors`, если отказывается его принять.5505* **Серверы stdio, HTTP и SSE, названные в вызове, которые не добавлял ни один предыдущий вызов**: вне облачной сессии Claude Code добавляет сервер и перечисляет его в `added` или в `errors`, если отклоняет сервер.

5506* **Встроенные в процесс SDK-серверы, которые называет вызов**: сервер, уже зарегистрированный через `mcpServers` или предыдущим вызовом, сохраняет свой работающий экземпляр и таймаут. Если вы передаёте для него [список политик `tools`](#mcpsdkserverconfigwithinstance), даже пустой, вы заменяете его политики; в противном случае они сохраняются. Чтобы запустить новый экземпляр вне облачной сессии, исключите сервер из одного вызова и назовите его в следующем.5506* **Внутрипроцессные серверы SDK, названные в вызове**: сервер, уже зарегистрированный через `mcpServers` или предыдущий вызов, сохраняет свой запущенный экземпляр и таймаут. Если вы передаёте для него [список политик `tools`](#mcpsdkserverconfigwithinstance), даже пустой, вы заменяете его политики; в противном случае они сохраняются. Чтобы запустить новый экземпляр вне облачной сессии, не указывайте сервер в одном вызове и укажите его в следующем.

5507* **Встроенные серверы, которые CLI запустил при старте**: если вызов называет такой сервер, Claude Code отбрасывает эту запись и сообщает о ней в `errors`.5507* **Встроенные серверы, которые CLI запустил при старте**: если вызов называет один из них, Claude Code отбрасывает эту запись и сообщает о ней в `errors`.

5508* **Stdio-, HTTP- или SSE-серверы, имя которых совпадает с именем сервера из области действия установки MCP, например `.mcp.json`**: под этим именем сессия использует инструменты вашего сервера, а не [сервера из области действия установки](https://code.claude.com/docs/ru/mcp.md#mcp-installation-scopes). До Claude Code v2.1.305 Claude Code мог отключить ваш сервер и подключить сервер из области действия установки, когда ваше приложение [перезагружало плагины](#query-object).5508* **Серверы stdio, HTTP или SSE, имя которых совпадает с сервером из области действия установки MCP, например `.mcp.json`**: под этим именем сессия использует инструменты вашего сервера, а не [сервера из области действия установки](https://code.claude.com/docs/ru/mcp.md#mcp-installation-scopes). До Claude Code v2.1.305 Claude Code мог отключить ваш сервер и подключить сервер из области действия установки, когда ваше приложение [перезагружало плагины](#query-object).

5509 5509 

5510`added` перечисляет серверы, которые Claude Code добавил или заменил, независимо от того, подключились они или нет. Сервер, который не смог подключиться, появляется и в `added`, и в `errors`, с текстом ошибки в `errors` и строкой `failed` в [`mcpServerStatus()`](#methods). До Claude Code v2.1.257 сервер, попытка подключения которого выбросила исключение, сообщался только в `errors`.5510`added` перечисляет серверы, которые Claude Code добавил или заменил, независимо от того, подключились ли они. Сервер, который не удалось подключить, появляется и в `added`, и в `errors`: текст ошибки находится в `errors`, а в [`mcpServerStatus()`](#methods) есть строка со статусом `failed`. До Claude Code v2.1.257 сервер, попытка подключения которого выбрасывала исключение, сообщался только в `errors`.

5511 5511 

5512Значение в `errors`, начинающееся с `Blocked by enterprise`, означает, что сервер отклонила политика, а не что подключение не удалось:5512Значение в `errors`, начинающееся с `Blocked by enterprise`, означает, что сервер отклонила политика, а не что не удалось подключиться:

5513 5513 

5514* `Blocked by enterprise policy (allowedMcpServers/deniedMcpServers)`: сервера нет в `added`. Ему соответствует запись [`deniedMcpServers`](https://code.claude.com/docs/ru/managed-mcp#policy-based-control-with-allowlists-and-denylists), либо задан список `allowedMcpServers`, в котором он отсутствует. Если этот список находится в файле настроек, который вы загружаете через [`settingSources`](#options), отредактируйте файл. Если он находится в управляемых настройках, попросите администраторов изменить его.5514* `Blocked by enterprise policy (allowedMcpServers/deniedMcpServers)`: сервера нет в `added`. Ему соответствует запись [`deniedMcpServers`](https://code.claude.com/docs/ru/managed-mcp#policy-based-control-with-allowlists-and-denylists), либо задан список `allowedMcpServers`, в котором его нет. Если этот список находится в файле настроек, который вы загружаете через [`settingSources`](#options), отредактируйте файл. Если он находится в управляемых настройках, попросите администраторов изменить его.

5515* `Blocked by enterprise managed policy`: сервер есть в `added`, и для него в `mcpServerStatus()` есть строка `failed`. Спросите администратора, какая политика его блокирует.5515* `Blocked by enterprise managed policy`: сервер есть в `added`, а в `mcpServerStatus()` у него строка со статусом `failed`. Спросите администратора, какая политика его блокирует.

5516 5516 

5517### `RewindFilesResult`5517### `RewindFilesResult`

5518 5518 


5529};5529};

5530```5530```

5531 5531 

5532`skippedLinks` подсчитывает отслеживаемые пути, которые перемотка отказалась восстанавливать или удалять ради безопасности ссылок: символическая ссылка, жёсткая ссылка или другой необычный файл по отслеживаемому пути, родительский каталог, который больше не разрешается туда, куда он указывал при создании контрольной точки, или резервная копия, которую не удалось безопасно прочитать. Поле требует Claude Code v2.1.216 или более поздней версии. Предварительный вызов с `rewindFiles(userMessageId, { dryRun: true })` никогда его не устанавливает.5532`skippedLinks` подсчитывает отслеживаемые пути, которые откат отказался восстановить или удалить из соображений безопасности ссылок: символическая ссылка, жёсткая ссылка или другой нерегулярный файл по отслеживаемому пути, родительский каталог, который больше не разрешается в то место, на которое указывал при создании чекпоинта, или резервная копия, которую не удалось безопасно прочитать. Поле требует Claude Code v2.1.216 или более поздней версии. Вызов предварительного просмотра `rewindFiles(userMessageId, { dryRun: true })` никогда его не задаёт.

5533 5533 

5534### `SDKStatusMessage`5534### `SDKStatusMessage`

5535 5535 

5536Сообщение об обновлении статуса (например, компактирование).5536Сообщение об обновлении статуса (например, о сжатии).

5537 5537 

5538```typescript theme={null}5538```typescript theme={null}

5539type SDKStatusMessage = {5539type SDKStatusMessage = {


5548 5548 

5549### `SDKTaskNotificationMessage`5549### `SDKTaskNotificationMessage`

5550 5550 

5551Уведомление о том, что фоновая задача завершилась, завершилась с ошибкой или была остановлена. Фоновые задачи включают команды Bash с `run_in_background`, наблюдения [Monitor](#monitor) и фоновых субагентов. Описание полей `run_id` и `ambient` и требования к версии для них см. в [`SDKTaskStartedMessage`](#sdktaskstartedmessage).5551Уведомление о том, что фоновая задача завершилась, завершилась с ошибкой или была остановлена. К фоновым задачам относятся команды Bash с `run_in_background`, наблюдения [Monitor](#monitor) и фоновые субагенты. О полях `run_id` и `ambient` см. [`SDKTaskStartedMessage`](#sdktaskstartedmessage), где они определены вместе с требованиями к версии.

5552 5552 

5553```typescript theme={null}5553```typescript theme={null}

5554type SDKTaskNotificationMessage = {5554type SDKTaskNotificationMessage = {


5573};5573};

5574```5574```

5575 5575 

5576`reason` устанавливается, когда задача завершается по причине, отличной от её собственного завершения, сбоя или остановки, и требует Agent SDK v0.3.273 или более поздней версии. Claude Code устанавливает его только в сессиях, которые подключаются через claude.ai: в облачных сессиях, включая сессии на self-hosted раннерах, и в сессиях Remote Control. Локальный вызов `query()` никогда его не устанавливает. Его единственное значение, `worker_restart`, означает, что процесс Claude Code, выполнявший задачу, перезапустился. Уведомление имеет статус `"stopped"`, поэтому считайте задачу ни завершённой, ни завершившейся с ошибкой.5576`reason` задаётся, когда задача завершается по причине, отличной от её собственного завершения, сбоя или остановки, и требует Agent SDK v0.3.273 или более поздней версии. Claude Code задаёт его только в сессиях, подключающихся через claude.ai: в облачных сессиях, включая сессии на самостоятельно размещённых раннерах, и в сессиях Remote Control. Локальный вызов `query()` никогда его не задаёт. Его единственное значение, `worker_restart`, означает, что процесс Claude Code, выполнявший задачу, перезапустился. Уведомление имеет статус `"stopped"`, поэтому считайте задачу ни завершённой, ни завершившейся с ошибкой.

5577 5577 

5578Когда Claude Code [переводит долгий вызов MCP-инструмента в фоновый режим](https://code.claude.com/docs/ru/mcp.md#automatic-backgrounding-of-long-tool-calls), блок `tool_result` для этого вызова содержит только заполнитель, а реальный результат вызова приходит в этом уведомлении. Сопоставьте уведомление с вызовом с помощью `tool_use_id`. В уведомлении `completed` поле `resource_links` перечисляет файлы, которые инструмент вернул по ссылке, как записи [`SDKMcpResourceLink`](#sdkmcpresourcelink), с теми же ограничениями в 50 ссылок и 64 KiB, что и у [`tool_use_result.resourceLinks`](#sdkusermessage). Claude Code опускает `resource_links`, когда в результате не было ссылок, а также в уведомлениях для задач, которые не являются вызовами MCP-инструментов. `resource_links` требует Agent SDK v0.3.257 или более поздней версии.5578Когда Claude Code [переводит длительный вызов инструмента MCP в фон](https://code.claude.com/docs/ru/mcp.md#automatic-backgrounding-of-long-tool-calls), блок `tool_result` для этого вызова содержит только заглушку, а реальный результат вызова приходит в этом уведомлении. Сопоставляйте уведомление с вызовом по `tool_use_id`. В уведомлении со статусом `completed` поле `resource_links` перечисляет файлы, возвращённые инструментом по ссылке, в виде записей [`SDKMcpResourceLink`](#sdkmcpresourcelink) с теми же ограничениями в 50 ссылок и 64 КиБ, что и у [`tool_use_result.resourceLinks`](#sdkusermessage). Claude Code опускает `resource_links`, если в результате не было ссылок, а также в уведомлениях о задачах, не являющихся вызовами инструментов MCP. `resource_links` требует Agent SDK v0.3.257 или более поздней версии.

5579 5579 

5580Claude Code добавляет пометку в начало каждого уведомления задачи, которое он отправляет модели, за исключением доставок, помеченных [подвидом `scheduled-trigger`](#task-notification-subkinds), которые вместо этого оформлены как назначенная задача. Пометка указывает, что никакого ввода от человека не было, поэтому модель не воспринимает уведомление как инструкцию или подтверждение пользователя.5580Claude Code добавляет в начало каждого уведомления о задаче, которое он отправляет модели, предупреждение, за исключением доставок с [подтипом `scheduled-trigger`](#task-notification-subkinds), которые вместо этого оформлены как назначенная задача. В предупреждении указано, что ввода от человека не было, поэтому модель не воспринимает уведомление как инструкцию или подтверждение пользователя.

5581 5581 

5582Чтобы обнаружить ход с уведомлением задачи, проверяйте `origin.kind === "task-notification"` в [`SDKUserMessage`](#sdkusermessage) или [`SDKResultMessage`](#sdkresultmessage), а не сопоставляйте текст пометки. Читайте `subkind` из того же поля, если вам нужно знать, что вызвало уведомление. До v2.1.205 Claude Code не добавлял пометку к уведомлениям, которые приходили, пока сессия была неактивна.5582Чтобы распознать ход с уведомлением о задаче, проверяйте `origin.kind === "task-notification"` в [`SDKUserMessage`](#sdkusermessage) или [`SDKResultMessage`](#sdkresultmessage), а не сопоставляйте текст предупреждения. Если нужно знать, что его вызвало, считайте `subkind` из того же поля. До v2.1.205 Claude Code не добавлял предупреждение к уведомлениям, поступавшим, пока сессия простаивала.

5583 5583 

5584### `SDKToolUseSummaryMessage`5584### `SDKToolUseSummaryMessage`

5585 5585 


5597 5597 

5598### `SDKHookStartedMessage`5598### `SDKHookStartedMessage`

5599 5599 

5600Выдаётся, когда хук начинает выполняться.5600Отправляется, когда хук начинает выполняться.

5601 5601 

5602Claude Code доставляет это сообщение, [`SDKHookProgressMessage`](#sdkhookprogressmessage) и [`SDKHookResponseMessage`](#sdkhookresponsemessage) в поток сообщений немедленно, в том числе пока хук `SessionStart` или `Setup` ещё выполняется во время запуска сессии. Claude Code с v2.1.169 по v2.1.203 доставлял эти сообщения одним пакетом после завершения хука `SessionStart` или `Setup`; v2.1.204 восстановил доставку в реальном времени.5602Claude Code доставляет это сообщение, [`SDKHookProgressMessage`](#sdkhookprogressmessage) и [`SDKHookResponseMessage`](#sdkhookresponsemessage) в поток сообщений немедленно, в том числе пока хук `SessionStart` или `Setup` ещё выполняется во время запуска сессии. Claude Code с v2.1.169 по v2.1.203 доставлял эти сообщения одним пакетом после завершения хука `SessionStart` или `Setup`; v2.1.204 восстановил доставку в реальном времени.

5603 5603 

5604Если вы запускаете сессию с помощью [`startup()`](#startup), эти сообщения поступают к вам, как только вы вызываете `.query()` и начинаете итерацию по результату.5604Если вы запускаете сессию с помощью [`startup()`](#startup), эти сообщения поступают к вам, когда вы вызываете `.query()` и итерируете результат.

5605 5605 

5606```typescript theme={null}5606```typescript theme={null}

5607type SDKHookStartedMessage = {5607type SDKHookStartedMessage = {


5617 5617 

5618### `SDKHookProgressMessage`5618### `SDKHookProgressMessage`

5619 5619 

5620Выдаётся во время выполнения хука с выводом stdout/stderr.5620Отправляется во время выполнения хука и содержит вывод stdout/stderr.

5621 5621 

5622```typescript theme={null}5622```typescript theme={null}

5623type SDKHookProgressMessage = {5623type SDKHookProgressMessage = {


5636 5636 

5637### `SDKHookResponseMessage`5637### `SDKHookResponseMessage`

5638 5638 

5639Выдаётся, когда хук завершает выполнение.5639Отправляется, когда хук завершает выполнение.

5640 5640 

5641```typescript theme={null}5641```typescript theme={null}

5642type SDKHookResponseMessage = {5642type SDKHookResponseMessage = {


5657 5657 

5658### `SDKToolProgressMessage`5658### `SDKToolProgressMessage`

5659 5659 

5660Выдаётся периодически во время выполнения инструмента для отображения прогресса.5660Периодически отправляется во время выполнения инструмента для индикации прогресса.

5661 5661 

5662```typescript theme={null}5662```typescript theme={null}

5663type SDKToolProgressMessage = {5663type SDKToolProgressMessage = {


5682};5682};

5683```5683```

5684 5684 

5685Пока вызов инструмента выполняется в основном диалоге, Claude Code выдаёт сообщение `tool_progress` каждые 30 секунд с `heartbeat: true`. Каждый heartbeat содержит имя инструмента и прошедшее время в секундах, поэтому вы можете отличить долго выполняющийся вызов от зависшей сессии. Claude Code не выдаёт heartbeat для вызовов инструментов внутри субагента. Поле `heartbeat` требует Agent SDK v0.3.214 или более поздней версии. До v2.1.257 Claude Code также не выдавал heartbeat для вызова инструмента Agent на переднем плане.5685Пока вызов инструмента выполняется в основном диалоге, Claude Code каждые 30 секунд отправляет сообщение `tool_progress` с `heartbeat: true`. Каждый такой сигнал активности содержит имя инструмента и прошедшее время в секундах, поэтому вы можете отличить длительный вызов от зависшей сессии. Claude Code не отправляет сигналы активности для вызовов инструментов внутри субагента. Поле `heartbeat` требует Agent SDK v0.3.214 или более поздней версии. До v2.1.257 Claude Code также не отправлял сигналы активности для вызова инструмента Agent на переднем плане.

5686 5686 

5687В сообщениях `tool_progress` для инструмента Agent, кроме heartbeat, `subagent_type` называет тип выполняющегося субагента, например `general-purpose`. `subagent_retry` присутствует, пока этот субагент выжидает паузу после ошибки API, такой как ограничение частоты запросов или перегрузка, с одним сообщением на каждую повторную попытку. Оба поля требуют Agent SDK v0.3.214 или более поздней версии.5687В сообщениях `tool_progress` для инструмента Agent, не являющихся сигналами активности, `subagent_type` указывает тип выполняющегося субагента, например `general-purpose`. `subagent_retry` присутствует, пока этот субагент выжидает интервал после ошибки API, например ограничения частоты запросов или перегрузки; на каждую повторную попытку приходится одно сообщение. Оба поля требуют Agent SDK v0.3.214 или более поздней версии.

5688 5688 

5689Чтобы отобразить индикатор повторной попытки из `subagent_retry`:5689Чтобы отрисовать индикатор повторной попытки на основе `subagent_retry`:

5690 5690 

5691* Отслеживайте индикатор по `parent_tool_use_id`, который уникален для каждого субагента. `tool_use_id` общий для параллельных субагентов из одного хода ассистента, поэтому при отслеживании по нему обновление одного субагента могло бы сбросить индикатор другого.5691* Отслеживайте индикатор по `parent_tool_use_id`, который уникален для каждого субагента. `tool_use_id` общий для параллельных субагентов из одного хода ассистента, поэтому при отслеживании по нему обновление одного субагента может сбросить индикатор другого.

5692* Сбрасывайте индикатор, когда для того же `parent_tool_use_id` приходит более поздний `tool_progress` без `subagent_retry` и без `heartbeat: true`, или когда приходит сообщение с результатом инструмента. Кадры с `heartbeat: true` сообщают только о том, что процесс жив, поэтому при их получении сохраняйте индикатор. `attempt` может превышать `max_retries` при постоянных повторных попытках, поэтому не определяйте момент сброса по счётчикам.5692* Сбрасывайте индикатор, когда для того же `parent_tool_use_id` приходит следующее сообщение `tool_progress` без `subagent_retry` и без `heartbeat: true` или когда приходит сообщение с результатом инструмента. Кадры с `heartbeat: true` сообщают только о том, что процесс жив, поэтому при их получении сохраняйте индикатор. При постоянных повторных попытках `attempt` может превышать `max_retries`, поэтому не выводите условие сброса из счётчиков.

5693* Рассматривайте `error_category` как токен для выбора собственного текста сообщения, а не как текст для отображения. Возможные значения: `rate_limit`, `overloaded`, `authentication_failed`, `server_error`, `cloud_credential_error` и `unknown`. Обрабатывайте незнакомое значение так же, как `unknown`, поскольку в более поздних выпусках могут появиться новые значения.5693* Рассматривайте `error_category` как токен для выбора собственного текста сообщения, а не как отображаемый текст. Возможные значения: `rate_limit`, `overloaded`, `authentication_failed`, `server_error`, `cloud_credential_error` и `unknown`. Обрабатывайте незнакомое значение так же, как `unknown`, потому что в будущих выпусках могут появиться новые значения.

5694 5694 

5695### `SDKAuthStatusMessage`5695### `SDKAuthStatusMessage`

5696 5696 

5697Выдаётся во время процессов аутентификации.5697Отправляется во время процессов аутентификации.

5698 5698 

5699```typescript theme={null}5699```typescript theme={null}

5700type SDKAuthStatusMessage = {5700type SDKAuthStatusMessage = {


5709 5709 

5710### `SDKTaskStartedMessage`5710### `SDKTaskStartedMessage`

5711 5711 

5712Выдаётся, когда задача начинается. Поле `task_type` имеет значение `"local_bash"` для команд Bash и наблюдений [Monitor](#monitor), `"local_agent"` для субагентов или `"remote_agent"`.5712Отправляется, когда начинается задача. `task_type` указывает вид задачи, например `"local_bash"` для команд Bash и наблюдений [Monitor](#monitor), `"local_agent"` для субагентов, `"mcp_task"` для [фоновых вызовов инструментов MCP](https://code.claude.com/docs/ru/mcp.md#automatic-backgrounding-of-long-tool-calls) или `"remote_agent"`.

5713 5713 

5714```typescript theme={null}5714```typescript theme={null}

5715type SDKTaskStartedMessage = {5715type SDKTaskStartedMessage = {


5731 5731 

5732`run_id` идентифицирует один запуск задачи. Когда задача снова запускается под тем же `task_id`, например [субагент, которого Claude возобновляет](https://code.claude.com/docs/ru/agent-sdk/subagents.md#resume-subagents), новый запуск получает новый `run_id`. Поле требует Agent SDK v0.3.292 или более поздней версии. Используйте его, чтобы различать запуски одной задачи:5732`run_id` идентифицирует один запуск задачи. Когда задача снова запускается под тем же `task_id`, например [субагент, которого Claude возобновляет](https://code.claude.com/docs/ru/agent-sdk/subagents.md#resume-subagents), новый запуск получает новый `run_id`. Поле требует Agent SDK v0.3.292 или более поздней версии. Используйте его, чтобы различать запуски одной задачи:

5733 5733 

5734* **Сопоставление сообщений с запуском**: сообщения `task_started`, [`task_progress`](#sdktaskprogressmessage), [`task_updated`](#sdktaskupdatedmessage) и [`task_notification`](#sdktasknotificationmessage) одного запуска содержат один и тот же `run_id`. Запись запуска в каждом [`SDKBackgroundTasksChangedMessage`](#sdkbackgroundtaskschangedmessage) также его содержит, как и [`runId`](#task-notification-subkinds) в origin пользовательского сообщения, которое доставляет уведомление этого запуска.5734* **Сопоставление сообщений с запуском**: сообщения `task_started`, [`task_progress`](#sdktaskprogressmessage), [`task_updated`](#sdktaskupdatedmessage) и [`task_notification`](#sdktasknotificationmessage) одного запуска содержат одинаковый `run_id`. Его содержит и запись запуска в каждом [`SDKBackgroundTasksChangedMessage`](#sdkbackgroundtaskschangedmessage), а также [`runId`](#task-notification-subkinds) в origin пользовательского сообщения, доставляющего уведомление о запуске.

5735* **Обнаружение запоздавшего сообщения**: при сравнении как обычных строк идентификаторы запусков одной задачи сортируются в порядке начала запусков, поэтому сообщение, чей `run_id` при сортировке идёт раньше отображаемого вами запуска, относится к более раннему запуску. Помимо этого сравнения, рассматривайте значение как непрозрачное.5735* **Обнаружение запоздавшего сообщения**: при сравнении как обычных строк ID запусков одной задачи сортируются в порядке начала запусков, поэтому сообщение, чей `run_id` сортируется раньше отображаемого запуска, относится к более раннему запуску. Помимо этого сравнения считайте значение непрозрачным.

5736* **Возврат к `task_id`**: когда сообщение не содержит `run_id`, например `task_notification`, которое возобновлённая сессия выдаёт, чтобы закрыть задачу, запущенную предыдущим процессом, относите его к задаче по `task_id`.5736* **Возврат к `task_id`**: если сообщение не содержит `run_id`, например `task_notification`, которое возобновлённая сессия отправляет, чтобы закрыть задачу, запущенную прежним процессом, относите его к задаче по `task_id`.

5737 5737 

5738Например, эти три сообщения, сокращённые до идентифицирующих полей, получены от фонового субагента, которого Claude возобновил один раз. Два сообщения `task_started` имеют общий `task_id`, а уведомление, завершившее первый запуск, содержит идентификатор первого запуска:5738Например, эти три сообщения, сокращённые до идентифицирующих полей, получены от фонового субагента, которого Claude возобновил один раз. Два сообщения `task_started` имеют общий `task_id`, а уведомление, завершившее первый запуск, содержит ID первого запуска:

5739 5739 

5740```json theme={null}5740```json theme={null}

5741{"subtype": "task_started", "task_id": "a5c2e8f41b09d7a36", "run_id": "0mubbs7i8-6f0c2d41"}5741{"subtype": "task_started", "task_id": "a5c2e8f41b09d7a36", "run_id": "0mubbs7i8-6f0c2d41"}


5743{"subtype": "task_started", "task_id": "a5c2e8f41b09d7a36", "run_id": "0mubc18m1-b7719e05"}5743{"subtype": "task_started", "task_id": "a5c2e8f41b09d7a36", "run_id": "0mubc18m1-b7719e05"}

5744```5744```

5745 5745 

5746`ambient` имеет значение `true` для задач, которые не являются частью работы сессии, например задач, которые Claude Code запускает для собственной работы. Наблюдатели живых обновлений также являются ambient, включая наблюдателей, запрошенных пользователем. Исключайте ambient-задачи из индикаторов активности. Поле требует Agent SDK v0.3.247 или более поздней версии.5746`ambient` имеет значение `true` для задач, не являющихся частью работы сессии, например задач, которые Claude Code выполняет для собственной работы. Наблюдатели за обновлениями в реальном времени также являются фоновыми служебными задачами, включая наблюдателей, о которых попросил пользователь. Исключайте такие задачи из индикаторов активности. Поле требует Agent SDK v0.3.247 или более поздней версии.

5747 5747 

5748`ambient` также присутствует в [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) и в записях [`SDKBackgroundTasksChangedMessage`](#sdkbackgroundtaskschangedmessage).5748`ambient` также присутствует в [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) и в записях [`SDKBackgroundTasksChangedMessage`](#sdkbackgroundtaskschangedmessage).

5749 5749 

5750`is_backgrounded` и `spawn_depth` описывают, как Claude Code запустил задачу. Оба поля требуют Agent SDK v0.3.238 или более поздней версии.5750`is_backgrounded` и `spawn_depth` описывают, как Claude Code запустил задачу. Оба поля требуют Agent SDK v0.3.238 или более поздней версии.

5751 5751 

5752* `is_backgrounded`: Claude Code устанавливает его для задач `"local_agent"` и `"local_bash"`. `true` означает, что задача выполняется в фоне. `false` означает, что задача выполняется на переднем плане, и вызов инструмента, который её запустил, остаётся заблокированным, пока задача не завершится или не перейдёт в фоновый режим.5752* `is_backgrounded`: Claude Code задаёт его для задач `"local_agent"` и `"local_bash"`. `true` означает, что задача выполняется в фоне. `false` означает, что задача выполняется на переднем плане, а вызов инструмента, запустивший её, остаётся заблокированным, пока задача не завершится или не перейдёт в фон.

5753* `spawn_depth`: Claude Code устанавливает его только для задач `"local_agent"`. Субагент, запущенный основным потоком, имеет глубину `1`. Субагент, запущенный субагентом глубины `1`, имеет глубину `2`, и так далее.5753* `spawn_depth`: Claude Code задаёт его только для задач `"local_agent"`. Субагент, порождённый основным потоком, имеет глубину `1`. Субагент, порождённый субагентом глубины `1`, имеет глубину `2` и так далее.

5754 5754 

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

5756 5756 

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

5758 5758 

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

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

5761* Задачу запустил [участник команды](https://code.claude.com/docs/ru/agent-teams.md) или агент внутри рабочего процесса5761* Задачу запустил [участник команды](https://code.claude.com/docs/ru/agent-teams.md) или агент внутри рабочего процесса

5762 5762 

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

5764 5764 

5765### `SDKTaskProgressMessage`5765### `SDKTaskProgressMessage`

5766 5766 

5767Выдаётся периодически во время выполнения субагента или фоновой задачи. Описание поля `run_id` и требование к версии для него см. в [`SDKTaskStartedMessage`](#sdktaskstartedmessage).5767Периодически отправляется, пока выполняется субагент или фоновая задача. О поле `run_id` см. [`SDKTaskStartedMessage`](#sdktaskstartedmessage), где оно определено вместе с требованием к версии.

5768 5768 

5769Для задачи субагента поле `summary` содержит сгенерированную моделью сводку прогресса и заполняется, только когда включён [`agentProgressSummaries`](#options). Для [вызова MCP-инструмента, переведённого в фоновый режим](https://code.claude.com/docs/ru/mcp.md#automatic-backgrounding-of-long-tool-calls), `summary` содержит последний прогресс, сообщённый MCP-сервером, и не зависит от этой опции.5769Для задачи субагента поле `summary` содержит сгенерированную моделью сводку прогресса и заполняется, только если включён параметр [`agentProgressSummaries`](#options). Для [вызова инструмента MCP, переведённого в фон](https://code.claude.com/docs/ru/mcp.md#automatic-backgrounding-of-long-tool-calls), `summary` содержит последний прогресс, сообщённый MCP-сервером, и не зависит от этого параметра.

5770 5770 

5771```typescript theme={null}5771```typescript theme={null}

5772type SDKTaskProgressMessage = {5772type SDKTaskProgressMessage = {


5791 5791 

5792### `SDKTaskUpdatedMessage`5792### `SDKTaskUpdatedMessage`

5793 5793 

5794Выдаётся при изменении состояния фоновой задачи, например когда она переходит из `running` в `completed`. Объединяйте `patch` с вашей локальной картой задач, индексированной по `task_id`. Поле `end_time` — это временная метка Unix epoch в миллисекундах, сравнимая с `Date.now()`. Описание поля `run_id` и требование к версии для него см. в [`SDKTaskStartedMessage`](#sdktaskstartedmessage).5794Отправляется при изменении состояния фоновой задачи, например при переходе из `running` в `completed`. Объединяйте `patch` с локальной картой задач, ключом которой служит `task_id`. Поле `end_time` — метка времени Unix в миллисекундах, сравнимая с `Date.now()`. О поле `run_id` см. [`SDKTaskStartedMessage`](#sdktaskstartedmessage), где оно определено вместе с требованием к версии.

5795 5795 

5796```typescript theme={null}5796```typescript theme={null}

5797type SDKTaskUpdatedMessage = {5797type SDKTaskUpdatedMessage = {


5814 5814 

5815### `SDKBackgroundTasksChangedMessage`5815### `SDKBackgroundTasksChangedMessage`

5816 5816 

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

5818 5818 

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

5820 5820 

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

5822 5822 

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

5824 5824 

5825Когда вы отправляете повторный управляющий запрос `initialize` работающей сессии, например с помощью [`reinitialize()`](#query-object) после разрыва транспорта, Claude Code отправляет после ответа снимок текущего активного набора, даже если он пуст. Таким образом, переподключающийся хост узнаёт, что выполняется, не дожидаясь следующего изменения состава. До Agent SDK v0.3.239 Claude Code не отправлял снимок после повторного `initialize`.5825Когда вы отправляете повторный управляющий запрос `initialize` работающей сессии, например с помощью [`reinitialize()`](#query-object) после разрыва транспорта, Claude Code отправляет вслед за ответом снимок текущего набора активных задач, даже если он пуст. Таким образом, переподключающийся хост узнаёт, что выполняется, не дожидаясь следующего изменения состава. До Agent SDK v0.3.239 Claude Code не отправлял снимок после повторного `initialize`.

5826 5826 

5827Требуется Claude Code v2.1.203 или более поздней версии.5827Требуется Claude Code v2.1.203 или более поздняя версия.

5828 5828 

5829```typescript theme={null}5829```typescript theme={null}

5830type SDKBackgroundTasksChangedMessage = {5830type SDKBackgroundTasksChangedMessage = {


5844};5844};

5845```5845```

5846 5846 

5847`subagent_type` называет тип субагента в записях, у которых [`task_type`](#sdktaskstartedmessage) имеет значение `"local_agent"`, например `general-purpose` или имя пользовательского субагента. Поле требует Agent SDK v0.3.293 или более поздней версии.5847`subagent_type` указывает тип субагента в записях, у которых [`task_type`](#sdktaskstartedmessage) равен `"local_agent"`, например `general-purpose` или имя пользовательского субагента. Поле требует Agent SDK v0.3.293 или более поздней версии.

5848 5848 

5849### `SDKThinkingTokensMessage`5849### `SDKThinkingTokensMessage`

5850 5850 

5851Выдаётся, пока Claude создаёт блок размышлений, в том числе скрытый (redacted). `estimated_tokens` — это текущая оценка числа токенов размышлений, сгенерированных к этому моменту в текущем блоке, а `estimated_tokens_delta` — приращение, которое несёт этот кадр. Используйте эти оценки для отображения прогресса.5851Отправляется, пока Claude создаёт блок размышлений, в том числе отредактированный. `estimated_tokens` — текущая оценка числа токенов размышлений, сгенерированных к этому моменту в текущем блоке, а `estimated_tokens_delta` — приращение, передаваемое этим кадром. Используйте эти оценки для отображения прогресса.

5852 5852 

5853Когда модель или провайдер сообщает разбивку, окончательный подсчёт для цикла агента верхнего уровня — это [`usage.output_tokens_details.thinking_tokens`](#usage) сообщения результата, который [не включает токены субагентов](https://code.claude.com/docs/ru/agent-sdk/cost-tracking.md#get-the-total-cost-of-a-query).5853Если модель или провайдер сообщает разбивку, итоговое значение для цикла агента верхнего уровня — это [`usage.output_tokens_details.thinking_tokens`](#usage) сообщения с результатом, которое [не включает токены субагентов](https://code.claude.com/docs/ru/agent-sdk/cost-tracking.md#get-the-total-cost-of-a-query).

5854 5854 

5855Требуется Claude Code v2.1.153 или более поздней версии.5855Требуется Claude Code v2.1.153 или более поздняя версия.

5856 5856 

5857```typescript theme={null}5857```typescript theme={null}

5858type SDKThinkingTokensMessage = {5858type SDKThinkingTokensMessage = {


5868 5868 

5869### `SDKSessionStateChangedMessage`5869### `SDKSessionStateChangedMessage`

5870 5870 

5871Выдаётся, когда Claude Code сообщает состояние сессии. Чтобы получать эти сообщения, установите [`CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS=1`](https://code.claude.com/docs/ru/env-vars#variables). Claude Code может сообщать одно и то же состояние несколько раз, поэтому воспринимайте сообщение как текущее состояние сессии, а не как переход.5871Отправляется, когда Claude Code сообщает состояние сессии. Чтобы получать эти сообщения, задайте [`CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS=1`](https://code.claude.com/docs/ru/env-vars#variables). Claude Code может сообщать одно и то же состояние несколько раз, поэтому воспринимайте сообщение как текущее состояние сессии, а не как переход.

5872 5872 

5873Поле `state` содержит одно из следующих значений:5873Поле `state` содержит одно из следующих значений:

5874 5874 

5875* `running`: сессия выполняет работу.5875* `running`: сессия работает.

5876* `idle`: Claude Code ожидает вашего следующего промпта.5876* `idle`: Claude Code ожидает ваш следующий промпт.

5877* `requires_action`: сессия заблокирована в ожидании ответа на запрос, который она отправила вашему хосту, например на запрос разрешения.5877* `requires_action`: сессия заблокирована в ожидании ответа на запрос, отправленный вашему хосту, например на запрос разрешения.

5878 5878 

5879Сообщение `idle` хода и его сообщение `result` могут прийти в любом порядке. Чтобы изменить, ожидает ли `idle` завершения фоновой работы, такой как фоновый субагент или запуск [рабочего процесса](https://code.claude.com/docs/ru/workflows.md), см. [`CLAUDE_CODE_BG_TASKS_REPORT_RUNNING`](https://code.claude.com/docs/ru/env-vars#variables).5879Сообщение `idle` хода и его сообщение `result` могут прийти в любом порядке. Чтобы изменить, ждёт ли `idle` фоновую работу, например фонового субагента или запуск [рабочего процесса](https://code.claude.com/docs/ru/workflows.md), см. [`CLAUDE_CODE_BG_TASKS_REPORT_RUNNING`](https://code.claude.com/docs/ru/env-vars#variables).

5880 5880 

5881```typescript theme={null}5881```typescript theme={null}

5882type SDKSessionStateChangedMessage = {5882type SDKSessionStateChangedMessage = {


5890 5890 

5891### `SDKFilesPersistedEvent`5891### `SDKFilesPersistedEvent`

5892 5892 

5893Выдаётся, когда контрольные точки файлов сохраняются на диск.5893Отправляется, когда чекпоинты файлов сохраняются на диск.

5894 5894 

5895```typescript theme={null}5895```typescript theme={null}

5896type SDKFilesPersistedEvent = {5896type SDKFilesPersistedEvent = {


5906 5906 

5907### `SDKRateLimitEvent`5907### `SDKRateLimitEvent`

5908 5908 

5909Выдаётся, когда сессия сталкивается с ограничением частоты запросов.5909Отправляется, когда сессия сталкивается с ограничением частоты запросов.

5910 5910 

5911```typescript theme={null}5911```typescript theme={null}

5912type SDKRateLimitEvent = {5912type SDKRateLimitEvent = {


5918 errorCode?: "credits_required";5918 errorCode?: "credits_required";

5919 canUserPurchaseCredits?: boolean;5919 canUserPurchaseCredits?: boolean;

5920 hasChargeableSavedPaymentMethod?: boolean;5920 hasChargeableSavedPaymentMethod?: boolean;

5921 overageEnabled?: boolean;

5921 };5922 };

5922 uuid: UUID;5923 uuid: UUID;

5923 session_id: string;5924 session_id: string;

5924};5925};

5925```5926```

5926 5927 

5927Когда `errorCode` имеет значение `"credits_required"`, отклонение вызвано подпиской claude.ai, у которой исчерпано включённое использование, и сессия не может продолжиться, пока пользователь не купит кредиты использования. `canUserPurchaseCredits` указывает, может ли аутентифицированный пользователь купить кредиты для учётной записи, а `hasChargeableSavedPaymentMethod` указывает, сохранён ли способ оплаты. Все три поля отсутствуют в событиях ограничения частоты запросов, которые не являются отклонениями из-за необходимости кредитов. Требуется Claude Code v2.1.181 или более поздней версии.5928Когда `errorCode` равен `"credits_required"`, отказ исходит от подписки claude.ai, включённое использование которой исчерпано, и сессия не может продолжиться, пока пользователь не купит кредиты использования. `canUserPurchaseCredits` указывает, может ли аутентифицированный пользователь купить кредиты для учётной записи, а `hasChargeableSavedPaymentMethod` — есть ли сохранённый способ оплаты. Все три поля отсутствуют в событиях ограничения частоты запросов, не являющихся отказами из-за отсутствия кредитов. Требуется Claude Code v2.1.181 или более поздняя версия.

5929 

5930В предупреждении о лимите использования тарифа, когда `status` равен `"allowed_warning"`, `overageEnabled` сообщает, включены ли для учётной записи [кредиты использования](https://code.claude.com/docs/ru/costs.md#add-usage-credits-to-your-subscription). Требуется Claude Code v2.1.295 или более поздняя версия.

5928 5931 

5929### `SDKLocalCommandOutputMessage`5932### `SDKLocalCommandOutputMessage`

5930 5933 

5931Claude Code не выдаёт этот тип сообщения. Когда вы отправляете команду, такую как `/context` или `/usage`, в качестве промпта, её вывод приходит как [`SDKAssistantMessage`](#sdkassistantmessage).5934Claude Code не отправляет сообщения этого типа. Когда вы отправляете команду, например `/context` или `/usage`, в качестве промпта, её вывод приходит как [`SDKAssistantMessage`](#sdkassistantmessage).

5932 5935 

5933```typescript theme={null}5936```typescript theme={null}

5934type SDKLocalCommandOutputMessage = {5937type SDKLocalCommandOutputMessage = {


5942 5945 

5943### `SDKCommandsChangedMessage`5946### `SDKCommandsChangedMessage`

5944 5947 

5945Выдаётся, когда набор доступных команд меняется во время сессии, например когда Claude Code обнаруживает скиллы при входе агента в подкаталог. Массив `commands` — это полный обновлённый список, поэтому заменяйте любой кэшированный список команд этими данными. Вызов [`supportedCommands()`](#query-object) после этого сообщения возвращает тот же обновлённый список, потому что метод отслеживает последнее полученное обновление; для этого требуется Agent SDK v0.3.216 или более поздней версии. В более ранних версиях SDK `supportedCommands()` возвращает снимок, сделанный при инициализации, и никогда не отражает изменения во время сессии.5948Отправляется, когда набор доступных команд меняется во время сессии, например когда Claude Code обнаруживает скиллы при переходе агента в подкаталог. Массив `commands` — полный обновлённый список, поэтому заменяйте любой кэшированный список команд этими данными. Вызов [`supportedCommands()`](#query-object) после этого сообщения возвращает тот же обновлённый список, поскольку метод отслеживает последнее обновление; для этого требуется Agent SDK v0.3.216 или более поздняя версия. В более ранних версиях SDK `supportedCommands()` возвращает снимок, сделанный при инициализации, и никогда не отражает изменения во время сессии.

5946 5949 

5947Claude Code также выдаёт это сообщение, когда [промпты](https://code.claude.com/docs/ru/mcp.md#use-mcp-prompts-as-commands) MCP-сервера добавляются в список или удаляются из него, например когда сервер завершает подключение после запуска сессии. Для этого требуется Claude Code v2.1.281 или более поздней версии.5950Claude Code также отправляет это сообщение, когда [промпты](https://code.claude.com/docs/ru/mcp.md#use-mcp-prompts-as-commands) MCP-сервера добавляются в список или удаляются из него, например когда сервер завершает подключение после начала сессии. Для этого требуется Claude Code v2.1.281 или более поздняя версия.

5948 5951 

5949```typescript theme={null}5952```typescript theme={null}

5950type SDKCommandsChangedMessage = {5953type SDKCommandsChangedMessage = {


5958 5961 

5959### `SDKPromptSuggestionMessage`5962### `SDKPromptSuggestionMessage`

5960 5963 

5961Выдаётся после хода, когда включён [`promptSuggestions`](#options) и Claude Code сгенерировал предложение для этого хода. Содержит предсказанный следующий промпт пользователя. О ходах, для которых предложения не создаются, см. [Когда Claude Code пропускает предложения](https://code.claude.com/docs/ru/interactive-mode.md#when-claude-code-skips-suggestions).5964Отправляется после хода, если включён параметр [`promptSuggestions`](#options) и Claude Code сгенерировал предложение для этого хода. Содержит предсказанный следующий промпт пользователя. О ходах, для которых предложение не создаётся, см. [Когда Claude Code пропускает предложения](https://code.claude.com/docs/ru/interactive-mode.md#when-claude-code-skips-suggestions).

5962 5965 

5963```typescript theme={null}5966```typescript theme={null}

5964type SDKPromptSuggestionMessage = {5967type SDKPromptSuggestionMessage = {


5971 5974 

5972### `SDKConversationResetMessage`5975### `SDKConversationResetMessage`

5973 5976 

5974Выдаётся, когда диалог сессии заменяется без завершения сессии. В вызове `query()` это сообщение порождают только `/clear` и его псевдонимы. Создайте пустой транскрипт под `new_conversation_id` и отбросьте любой кэшированный заголовок сессии.5977Отправляется, когда диалог сессии заменяется без завершения сессии. В вызове `query()` это сообщение создают только `/clear` и его псевдонимы. Подключите пустой транскрипт под `new_conversation_id` и отбросьте любой кэшированный заголовок сессии.

5975 5978 

5976```typescript theme={null}5979```typescript theme={null}

5977type SDKConversationResetMessage = {5980type SDKConversationResetMessage = {


5989 5992 

5990* `trigger`: что привело к отбрасыванию диалога. Сбрасывайте транскрипт при каждом сообщении `conversation_reset`, в том числе когда это поле отсутствует или содержит незнакомое значение.5993* `trigger`: что привело к отбрасыванию диалога. Сбрасывайте транскрипт при каждом сообщении `conversation_reset`, в том числе когда это поле отсутствует или содержит незнакомое значение.

5991* `user_message_uuid`: `uuid` пользовательского сообщения, содержавшего `/clear`. Используйте его, чтобы сопоставить сброс с этим сообщением.5994* `user_message_uuid`: `uuid` пользовательского сообщения, содержавшего `/clear`. Используйте его, чтобы сопоставить сброс с этим сообщением.

5992* `timestamp`: время сброса в виде строки ISO 8601 в UTC. Используйте его для отображения, а не для упорядочивания сообщений.5995* `timestamp`: когда произошёл сброс, в виде строки ISO 8601 в UTC. Используйте его для отображения, а не для упорядочивания сообщений.

5993 5996 

5994Поля `trigger`, `user_message_uuid` и `timestamp` требуют Claude Code v2.1.281 или более поздней версии.5997Поля `trigger`, `user_message_uuid` и `timestamp` требуют Claude Code v2.1.281 или более поздней версии.

5995 5998 

5996Опубликованные типизации SDK объявляют `SDKConversationResetMessage` в Claude Code v2.1.203 и более поздних версиях. До v2.1.203 `SDKMessage` ссылался на этот тип, не объявляя его, поэтому сужение по `type === "conversation_reset"` не проходило проверку типов, когда `skipLibCheck` был отключён.5999Опубликованные типизации SDK объявляют `SDKConversationResetMessage` в Claude Code v2.1.203 и более поздних версиях. До v2.1.203 `SDKMessage` ссылался на этот тип, не объявляя его, поэтому сужение по `type === "conversation_reset"` не проходило проверку типов при отключённом `skipLibCheck`.

5997 6000 

5998### `BUILTIN_TOOL_NAMES` и `LEGACY_TOOL_NAME_ALIASES`6001### `BUILTIN_TOOL_NAMES` и `LEGACY_TOOL_NAME_ALIASES`

5999 6002 

6000Используйте эти две константы, чтобы проверять имена инструментов, которые вводят пользователи вашего приложения. Обе записывают каждое имя так, как вы пишете его в правилах разрешений, matcher хуков и опциях `tools` и `disallowedTools`. Импортируйте их из `@anthropic-ai/claude-agent-sdk` или из `@anthropic-ai/claude-agent-sdk/core`. Они требуют Agent SDK v0.3.301 или более поздней версии и находятся в стадии альфа.6003Используйте эти две константы для проверки имён инструментов, которые вводят пользователи вашего приложения. Обе записывают каждое имя так, как вы пишете его в правилах разрешений, matcher хуков и параметрах `tools` и `disallowedTools`. Импортируйте их из `@anthropic-ai/claude-agent-sdk` или из `@anthropic-ai/claude-agent-sdk/core`. Они требуют Agent SDK v0.3.301 или более поздней версии и находятся в статусе альфа.

6001 6004 

6002Объявления типов SDK задают для `BUILTIN_TOOL_NAMES` тип readonly-кортежа, а для `LEGACY_TOOL_NAME_ALIASES` — тип записи (record), отображающей строки в строки:6005Объявления типов SDK задают для `BUILTIN_TOOL_NAMES` тип readonly-кортежа, а для `LEGACY_TOOL_NAME_ALIASES` — тип записи, сопоставляющей строку строке:

6003 6006 

6004```typescript theme={null}6007```typescript theme={null}

6005const BUILTIN_TOOL_NAMES: readonly ["Agent", /* ...другие имена... */ "Write"];6008const BUILTIN_TOOL_NAMES: readonly ["Agent", /* ...more names... */ "Write"];

6006const LEGACY_TOOL_NAME_ALIASES: Readonly<Record<string, string>>;6009const LEGACY_TOOL_NAME_ALIASES: Readonly<Record<string, string>>;

6007```6010```

6008 6011 

6009* **`BUILTIN_TOOL_NAMES`**: имена встроенных инструментов Claude Code в алфавитном порядке, например `Agent`, `Bash` и `Read`. Имена MCP-инструментов не включены. Поскольку тип является кортежем строковых литералов, `(typeof BUILTIN_TOOL_NAMES)[number]` даёт вам объединённый тип этих имён6012* **`BUILTIN_TOOL_NAMES`**: имена встроенных инструментов Claude Code в алфавитном порядке, например `Agent`, `Bash` и `Read`. Имена инструментов MCP не включены. Поскольку тип является кортежем строковых литералов, `(typeof BUILTIN_TOOL_NAMES)[number]` даёт тип-объединение этих имён

6010* **`LEGACY_TOOL_NAME_ALIASES`**: прежние имена инструментов, которые по-прежнему принимают правила разрешений, matcher хуков и опции `tools` и `disallowedTools`. Каждый ключ — прежнее имя, а его значение — текущее: например, `Task` соответствует `Agent`, а `KillShell` и `KillBash` соответствуют `TaskStop`6013* **`LEGACY_TOOL_NAME_ALIASES`**: прежние имена инструментов, которые по-прежнему принимаются правилами разрешений, matcher хуков и параметрами `tools` и `disallowedTools`. Каждый ключ — прежнее имя, а его значение — текущее: например, `Task` сопоставляется с `Agent`, а `KillShell` и `KillBash` — с `TaskStop`

6011 6014 

6012Подтвердить имя можно любой из двух проверок: `BUILTIN_TOOL_NAMES` содержит его или `Object.hasOwn(LEGACY_TOOL_NAME_ALIASES, name)` возвращает `true`. Имя, не прошедшее обе проверки, всё равно может быть допустимым, потому что `BUILTIN_TOOL_NAMES` не включает MCP-инструменты и некоторые встроенные инструменты. Если вы составляете список запретов из `BUILTIN_TOOL_NAMES`, Claude всё равно сможет использовать инструменты, которые константа не включает. Чтобы запретить все инструменты, вместо этого установите [`disallowedTools: ["*"]`](https://code.claude.com/docs/ru/agent-sdk/permissions#allow-and-deny-rules).6015Подтвердить имя можно любой из двух проверок: `BUILTIN_TOOL_NAMES` включает его или `Object.hasOwn(LEGACY_TOOL_NAME_ALIASES, name)` возвращает `true`. Имя, не прошедшее обе проверки, всё равно может быть допустимым, потому что `BUILTIN_TOOL_NAMES` не включает инструменты MCP и некоторые встроенные инструменты. Если вы составляете список запретов на основе `BUILTIN_TOOL_NAMES`, Claude по-прежнему сможет использовать инструменты, не вошедшие в константу. Чтобы запретить все инструменты, задайте вместо этого [`disallowedTools: ["*"]`](https://code.claude.com/docs/ru/agent-sdk/permissions#allow-and-deny-rules).

6013 6016 

6014Наличие имени в `BUILTIN_TOOL_NAMES` не означает, что у сессии есть этот инструмент: `TodoWrite` перечислен, хотя он [отключён по умолчанию](https://code.claude.com/docs/ru/tools-reference.md). Чтобы узнать, какие инструменты есть у сессии, прочитайте массив `tools` её [`SDKSystemMessage`](#sdksystemmessage). Этот массив включает MCP-инструменты и указывает инструмент Agent как `Task`, поэтому сопоставьте каждое имя через `LEGACY_TOOL_NAME_ALIASES`, прежде чем сравнивать его с `BUILTIN_TOOL_NAMES`.6017Наличие имени в `BUILTIN_TOOL_NAMES` не означает, что у сессии есть этот инструмент: `TodoWrite` присутствует в списке, хотя он [отключён по умолчанию](https://code.claude.com/docs/ru/tools-reference.md). Чтобы узнать, какие инструменты есть у сессии, прочитайте массив `tools` её [`SDKSystemMessage`](#sdksystemmessage). Этот массив включает инструменты MCP и перечисляет инструмент Agent как `Task`, поэтому перед сравнением с `BUILTIN_TOOL_NAMES` сопоставьте каждое имя через `LEGACY_TOOL_NAME_ALIASES`.

6015 6018 

6016### `AbortError`6019### `AbortError`

6017 6020 

6018Пользовательский класс ошибки для операций отмены.6021Пользовательский класс ошибки для операций прерывания.

6019 6022 

6020```typescript theme={null}6023```typescript theme={null}

6021class AbortError extends Error {}6024class AbortError extends Error {}

6022```6025```

6023 6026 

6024`AbortError` — единственный класс ошибки в типизированном API SDK. Другие сбои, например завершение процесса Claude Code или невозможность его запуска, отклоняют итерацию сообщений с ошибками, у которых нет класса SDK для сопоставления. В разделе [Устранение неполадок](https://code.claude.com/docs/ru/agent-sdk/troubleshooting.md) эти ошибки перечислены по тексту сообщения, с причиной и способом исправления для каждой.6027`AbortError` — единственный класс ошибок в типизированном API SDK. Другие сбои, например завершение процесса Claude Code или ошибка его запуска, отклоняют итерацию сообщений с ошибками, у которых нет класса SDK для сопоставления. В разделе [Устранение неполадок](https://code.claude.com/docs/ru/agent-sdk/troubleshooting.md) эти ошибки перечислены по тексту сообщения вместе с причиной и способом исправления для каждой.

6025 6028 

6026## Конфигурация Sandbox6029## Конфигурация Sandbox

6027 6030 

Details

647 647 

648 648 

649def parse_response(response: str, options: list) -> str:649def parse_response(response: str, options: list) -> str:

650 """Разберите пользовательский ввод как номер(а) варианта или свободный текст."""650 """Parse user input as option number(s) or free text."""

651 try:651 try:

652 indices = [int(s.strip()) - 1 for s in response.split(",")]652 indices = [int(s.strip()) - 1 for s in response.split(",")]

653 labels = [options[i]["label"] for i in indices if 0 <= i < len(options)]653 labels = [options[i]["label"] for i in indices if 0 <= i < len(options)]


657 657 

658 658 

659async def handle_ask_user_question(input_data: dict) -> PermissionResultAllow:659async def handle_ask_user_question(input_data: dict) -> PermissionResultAllow:

660 """Отобразите вопросы Claude и соберите ответы пользователя."""660 """Display Claude's questions and collect user answers."""

661 answers = {}661 answers = {}

662 662 

663 for q in input_data.get("questions", []):663 for q in input_data.get("questions", []):

agent-teams.md +37 −37

Details

8 8 

9> [!WARNING]9> [!WARNING]

10>10>

11> Команды агентов являются экспериментальными и отключены по умолчанию. Включите их, установив `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` в вашем [settings.json](https://code.claude.com/docs/ru/settings.md) или переменной окружения. Без этой переменной команда не будет установлена при запуске сеанса, директории команды не будут созданы, и Claude не будет создавать или предлагать товарищей по команде. Команды агентов имеют [известные ограничения](#limitations) в отношении возобновления сеанса, координации задач и поведения при завершении.11> Команды агентов являются экспериментальными и отключены по умолчанию. Включите их, задав `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` в вашем [settings.json](https://code.claude.com/docs/ru/settings.md) или переменной окружения. Команды агентов имеют [известные ограничения](#limitations) в отношении возобновления сессии, координации задач и поведения при завершении.

12 12 

13Команды агентов позволяют координировать несколько экземпляров Claude Code, работающих вместе. Один сеанс выступает в роли лидера команды, координируя работу, назначая задачи и синтезируя результаты. Товарищи по команде работают независимо, каждый в своем контекстном окне, и общаются друг с другом напрямую. Вы также можете общаться с любым товарищем по команде напрямую, не проходя через лидера.13Команды агентов позволяют координировать несколько экземпляров Claude Code, работающих вместе. Один сеанс выступает в роли лидера команды, координируя работу, назначая задачи и синтезируя результаты. Товарищи по команде работают независимо, каждый в своем контекстном окне, и общаются друг с другом напрямую. Вы также можете общаться с любым товарищем по команде напрямую, не проходя через лидера.

14 14 


225 225 

226### Как Claude запускает команды агентов226### Как Claude запускает команды агентов

227 227 

228Чтобы запустить команду, попросите Claude товарищей по команде. Claude запускает товарища по команде, когда он вызывает [инструмент Agent](https://code.claude.com/docs/ru/tools-reference.md) с [`name`](https://code.claude.com/docs/ru/sub-agents#subagent-names) при включенных командах агентов, если только вызов не является [fork](https://code.claude.com/docs/ru/sub-agents.md#fork-the-current-conversation) или не передает `isolation` при самом вызове. Claude Code не просит вас подтвердить запуск.228Чтобы запустить команду агентов, попросите Claude создать участников команды. Claude запускает участника команды, когда вызывает [инструмент Agent](https://code.claude.com/docs/ru/tools-reference.md) с [`name`](https://code.claude.com/docs/ru/sub-agents#subagent-names) при включенных командах агентов, если только вызов не является [fork](https://code.claude.com/docs/ru/sub-agents.md#fork-the-current-conversation) и не передает `isolation` в самом вызове. Claude Code не просит вас подтвердить запуск.

229 229 

230Claude также сам называет обычных subagent, чтобы позже отправлять им сообщения. Эти вызовы следуют тому же правилу, поэтому команды могут формироваться даже если вы их не запрашивали. Если вы хотите subagent вместо этого, [отключите команды агентов](#claude-spawns-teammates-instead-of-subagents).230Claude также сам дает имена обычным субагентам, чтобы позже отправлять им сообщения. Эти вызовы следуют тому же правилу, поэтому команды агентов могут формироваться, даже если вы их не запрашивали. Если вместо этого вам нужны субагенты, [отключите команды агентов](#claude-spawns-teammates-instead-of-subagents).

231 231 

232### Архитектура232### Архитектура

233 233 


235 235 

236| Компонент | Роль |236| Компонент | Роль |

237| :- | :- |237| :- | :- |

238| **Лидер команды** | Основной сеанс Claude Code, который порождает товарищей по команде и координирует работу |238| **Лидер команды** | Основная сессия Claude Code, которая порождает участников команды и координирует работу |

239| **Товарищи по команде** | Отдельные экземпляры Claude Code, которые каждый работают над назначенными задачами |239| **Участники команды** | Отдельные экземпляры Claude Code, каждый из которых работает над назначенными задачами |

240| **Список задач** | Общий список рабочих элементов, которые товарищи по команде берут и завершают |240| **Список задач** | Общий список рабочих элементов, которые участники команды берут и завершают |

241| **Почтовый ящик** | Система обмена сообщениями для коммуникации между агентами |241| **Почтовый ящик** | Система обмена сообщениями для коммуникации между агентами |

242 242 

243Почтовый ящик каждого агента — это JSON-файл в `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code проверяет каждую запись при чтении файла почтового ящика. Записи, которые не соответствуют формату сообщения, регистрируются как ошибки и удаляются из файла; корректные сообщения по-прежнему доставляются.243Почтовый ящик каждого агента — это JSON-файл в `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code проверяет каждую запись при чтении файла почтового ящика. Записи, которые не соответствуют формату сообщения, регистрируются как ошибки и удаляются из файла; корректные сообщения по-прежнему доставляются.

244 244 

245Claude Code сообщает о сообщении как отправленном только когда запись в файл почтового ящика получателя успешна, независимо от того, является ли сообщение простым текстом или структурированным протокольным сообщением, таким как одобрение плана или запрос на завершение. Когда запись не удается, например, потому что диск заполнен или директория почтового ящика не доступна для записи, отправляющий агент получает ошибку и ничего не отправляется. См. [Failed to write to a teammate's inbox](https://code.claude.com/docs/ru/errors.md#failed-to-write-to-a-teammate-inbox) для сообщений об ошибках и шагов восстановления.245Claude Code сообщает о сообщении как об отправленном только тогда, когда запись в файл почтового ящика получателя завершается успешно, независимо от того, является ли сообщение простым текстом или структурированным протокольным сообщением, таким как утверждение плана или запрос на завершение. Когда запись не удается, например потому что диск заполнен или директория почтового ящика недоступна для записи, отправляющий агент получает ошибку и ничего не отправляется. См. [Failed to write to a teammate's inbox](https://code.claude.com/docs/ru/errors.md#failed-to-write-to-a-teammate-inbox) для сообщений об ошибках и шагов восстановления.

246 246 

247Claude Code автоматически управляет зависимостями задач: когда товарищ по команде завершает задачу, от которой зависят другие задачи, он разблокирует зависимые задачи без каких-либо действий с вашей стороны.247Claude Code автоматически управляет зависимостями задач: когда участник команды завершает задачу, от которой зависят другие задачи, он разблокирует зависимые задачи без каких-либо действий с вашей стороны.

248 248 

249Команды и задачи хранятся локально под именем, производным от сеанса. Имя — это `session-` с последующими первыми восемью символами ID сеанса:249Команды агентов и задачи хранятся локально под именем, производным от сессии. Имя — это `session-` с последующими первыми восемью символами ID сессии:

250 250 

251* **Конфигурация команды**: `~/.claude/teams/{team-name}/config.json`. Claude Code удаляет директорию конфигурации команды при завершении сессии.251* **Конфигурация команды**: `~/.claude/teams/{team-name}/config.json`. Claude Code удаляет директорию конфигурации команды при завершении сессии.

252* **Список задач**: `~/.claude/tasks/{team-name}/`. Эта директория остается на диске после завершения сессии. Чтобы изменить, [как долго Claude Code ее хранит](https://code.claude.com/docs/ru/claude-directory.md#cleaned-up-automatically), задайте [`cleanupPeriodDays`](https://code.claude.com/docs/ru/settings-reference#cleanupperioddays).252* **Список задач**: `~/.claude/tasks/{team-name}/`. Эта директория остается на диске после завершения сессии. Чтобы изменить, [как долго Claude Code ее хранит](https://code.claude.com/docs/ru/claude-directory.md#cleaned-up-automatically), задайте [`cleanupPeriodDays`](https://code.claude.com/docs/ru/settings-reference#cleanupperioddays).

253 253 

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

255 255 

256Конфигурация команды содержит состояние выполнения, такое как ID сеансов и ID панелей tmux, поэтому не редактируйте ее вручную и не создавайте предварительно: ваши изменения будут перезаписаны при следующем обновлении состояния.256Конфигурация команды содержит состояние выполнения, такое как ID сессий и ID панелей tmux, поэтому не редактируйте ее вручную и не создавайте предварительно: ваши изменения будут перезаписаны при следующем обновлении состояния.

257 257 

258Чтобы определить переиспользуемые роли товарищей по команде, используйте [определения subagent](#use-subagent-definitions-for-teammates) вместо этого.258Чтобы определить переиспользуемые роли участников команды, используйте вместо этого [определения субагентов](#use-subagent-definitions-for-teammates).

259 259 

260Конфигурация команды содержит массив `members` с именем каждого товарища по команде и ID агента. Запись лидера всегда имеет тип агента `team-lead`. Запись товарища по команде имеет любой тип агента, который лидер назвал при его порождении, будь то [встроенный тип](https://code.claude.com/docs/ru/sub-agents.md#built-in-subagents) или [определение subagent](#use-subagent-definitions-for-teammates), и опускает поле, когда лидер ничего не назвал. Товарищи по команде могут читать этот файл для обнаружения других членов команды.260Конфигурация команды содержит массив `members` с именем и ID агента каждого участника. Запись лидера всегда имеет тип агента `team-lead`. Запись участника команды имеет тот тип агента, который лидер указал при его порождении, будь то [встроенный тип](https://code.claude.com/docs/ru/sub-agents.md#built-in-subagents) или [определение субагента](#use-subagent-definitions-for-teammates), и не содержит этого поля, если лидер ничего не указал. Участники команды могут читать этот файл, чтобы узнавать о других участниках команды.

261 261 

262Нет эквивалента конфигурации команды на уровне проекта. Файл вроде `.claude/teams/teams.json` в каталоге вашего проекта не распознается как конфигурация; Claude обрабатывает его как обычный файл.262Эквивалента конфигурации команды на уровне проекта нет. Файл вроде `.claude/teams/teams.json` в каталоге вашего проекта не распознается как конфигурация; Claude обрабатывает его как обычный файл.

263 263 

264### Использование определений subagent для товарищей по команде264### Использование определений субагентов для участников команды

265 265 

266При порождении участника команды в любом режиме отображения вы можете сослаться на тип [субагента](https://code.claude.com/docs/ru/sub-agents.md) из [области действия субагентов](https://code.claude.com/docs/ru/sub-agents.md#choose-the-subagent-scope) проекта, пользователя, управляемой области или плагина. Это позволяет один раз определить роль, например security-reviewer или test-runner, и переиспользовать ее как в качестве делегированного субагента, так и в качестве участника команды агентов.266При порождении участника команды в любом режиме отображения вы можете сослаться на тип [субагента](https://code.claude.com/docs/ru/sub-agents.md) из [области действия субагентов](https://code.claude.com/docs/ru/sub-agents.md#choose-the-subagent-scope) проекта, пользователя, управляемой области или плагина. Это позволяет один раз определить роль, например security-reviewer или test-runner, и переиспользовать ее как в качестве делегированного субагента, так и в качестве участника команды агентов.

267 267 

268Чтобы использовать определение subagent, упомяните его по имени при просьбе Claude порождать товарища по команде:268Чтобы использовать определение субагента, укажите его имя, когда просите Claude породить участника команды:

269 269 

270```text wrap theme={null}270```text wrap theme={null}

271Spawn a teammate using the security-reviewer agent type to audit the auth module.271Spawn a teammate using the security-reviewer agent type to audit the auth module.

272```272```

273 273 

274Claude Code читает определение subagent, которое вы назвали, и применяет эти части к товарищу по команде. Где часть зависит от [режима отображения](#choose-a-display-mode) товарища по команде, запись говорит об этом:274Claude Code читает указанное вами определение субагента и применяет к участнику команды следующие его части. Если часть зависит от [режима отображения](#choose-a-display-mode) участника команды, это указано в соответствующем пункте:

275 275 

276* **`tools`**: Claude Code ограничивает товарища по команде инструментами в списке `tools` определения. Для товарища по команде в процессе Claude Code добавляет `SendMessage` в этот список, и в [сеансе, который имеет инструменты Task](https://code.claude.com/docs/ru/tools-reference.md#task-tool-availability), он также добавляет `TaskCreate`, `TaskGet`, `TaskList` и `TaskUpdate`.276* **`tools`**: Claude Code ограничивает участника команды инструментами из списка `tools` определения. Для участника команды, работающего в процессе, Claude Code добавляет в этот список `SendMessage`, а в [сессии, где есть инструменты Task](https://code.claude.com/docs/ru/tools-reference.md#task-tool-availability), также добавляет `TaskCreate`, `TaskGet`, `TaskList` и `TaskUpdate`.

277* **`model`**: Claude Code использует `model` определения в любом режиме отображения, когда ваш запрос на порождение не называет один. См. [как Claude Code выбирает модель товарища по команде](#specify-teammates-and-models).277* **`model`**: Claude Code использует `model` из определения в любом режиме отображения, если ваш промпт порождения не указывает модель. См. [как Claude Code выбирает модель участника команды](#specify-teammates-and-models).

278* **`disallowedTools`**: для участника команды, работающего в процессе, Claude Code удаляет инструменты из `disallowedTools` определения из набора участника. `SendMessage` и добавляемые инструменты Task остаются доступными, даже если они указаны в этом списке.278* **`disallowedTools`**: для участника команды, работающего в процессе, Claude Code удаляет инструменты из `disallowedTools` определения из набора участника. `SendMessage` и добавляемые инструменты Task остаются доступными, даже если они указаны в этом списке.

279* **`effort`**: для участника команды, работающего в процессе, Claude Code применяет [`effort`](https://code.claude.com/docs/ru/sub-agents#supported-frontmatter-fields) из определения согласно [правилам effort во frontmatter](https://code.claude.com/docs/ru/model-config.md#set-the-effort-level).279* **`effort`**: для участника команды, работающего в процессе, Claude Code применяет [`effort`](https://code.claude.com/docs/ru/sub-agents#supported-frontmatter-fields) из определения согласно [правилам effort во frontmatter](https://code.claude.com/docs/ru/model-config.md#set-the-effort-level).

280* **`autoCompactWindow`**: для участника команды, работающего в процессе, Claude Code применяет [`autoCompactWindow`](https://code.claude.com/docs/ru/sub-agents#supported-frontmatter-fields) из определения согласно [правилам этого поля](https://code.claude.com/docs/ru/sub-agents.md#subagent-auto-compact-window). Участник команды в разделенной панели игнорирует это поле. Требуется Claude Code v2.1.296 или новее.280* **`autoCompactWindow`**: для участника команды, работающего в процессе, Claude Code применяет [`autoCompactWindow`](https://code.claude.com/docs/ru/sub-agents#supported-frontmatter-fields) из определения согласно [правилам этого поля](https://code.claude.com/docs/ru/sub-agents.md#subagent-auto-compact-window). Участник команды в разделенной панели игнорирует это поле. Требуется Claude Code v2.1.296 или новее.

281* **Body**: для товарища по команде в процессе Claude Code добавляет body определения к его системному запросу по умолчанию как дополнительные инструкции. Для товарища по команде в разделенной панели Claude Code использует body вместо его системного запроса по умолчанию.281* **Body**: для участника команды, работающего в процессе, Claude Code добавляет body определения к его системному промпту по умолчанию в качестве дополнительных инструкций. Для участника команды в разделенной панели Claude Code использует body вместо его системного промпта по умолчанию.

282* **`skills`**: Claude Code не применяет `skills` определения к товарищу по команде ни в одном режиме отображения. Товарищ по команде загружает skills из ваших параметров проекта и пользователя.282* **`skills`**: Claude Code не применяет `skills` определения к участнику команды ни в одном режиме отображения. Участник команды загружает скиллы из настроек вашего проекта и пользователя.

283* **`mcpServers`**: для товарища по команде в разделенной панели Claude Code применяет `mcpServers` определения в соответствии с [правилами для этого поля](https://code.claude.com/docs/ru/sub-agents.md#scope-mcp-servers-to-a-subagent), которые охватывают сеанс, запущенный с `--agent`. Товарищ по команде в процессе игнорирует поле и загружает MCP servers из ваших параметров проекта и пользователя.283* **`mcpServers`**: для участника команды в разделенной панели Claude Code применяет `mcpServers` определения в соответствии с [правилами для этого поля](https://code.claude.com/docs/ru/sub-agents.md#scope-mcp-servers-to-a-subagent), которые распространяются и на сессию, запущенную с `--agent`. Участник команды, работающий в процессе, игнорирует это поле и загружает MCP-серверы из настроек вашего проекта и пользователя.

284 284 

285Когда Claude отправляет сообщение товарищу по команде в процессе, который больше не работает, Claude Code возвращает его в тот же сеанс, восстанавливает любой сохраненный для него разговор и дает ему сообщение как его следующий запрос. После возобновления сеанса товарищи по команде не возвращаются таким образом, согласно [ограничению возобновления](#limitations).285Когда Claude отправляет сообщение участнику команды, работающему в процессе, который больше не запущен, Claude Code возвращает его в ту же сессию, восстанавливает сохраненный для него диалог и передает ему сообщение в качестве следующего промпта. После возобновления сессии участники команды таким образом не возвращаются, согласно [ограничению возобновления](#limitations).

286 286 

287Для товарища по команде, которого он возвращает, Claude Code повторно применяет определение, которое пришло из директории `.claude/agents/` проекта или директории `--add-dir` только если вы [доверили папке, в которой находится файл агента](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder). Доверие к родительской папке не считается. До тех пор товарищ по команде возвращается без инструментов или инструкций определения, сохраняя только инструменты, которые Claude Code добавляет к каждому товарищу по команде в процессе. См. [определение агента товарища по команде не было восстановлено](https://code.claude.com/docs/ru/errors.md#teammate-agent-definition-not-restored) для текста уведомления.287Для возвращаемого участника команды Claude Code повторно применяет определение, полученное из директории `.claude/agents/` проекта или из директории `--add-dir`, только если вы [доверили папке, в которой находится файл агента](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder). Доверие к родительской папке не учитывается. До тех пор участник команды возвращается без инструментов и инструкций из определения, сохраняя только инструменты, которые Claude Code добавляет каждому участнику команды, работающему в процессе. См. [определение агента участника команды не было восстановлено](https://code.claude.com/docs/ru/errors.md#teammate-agent-definition-not-restored) для текста уведомления.

288 288 

289### Разрешения289### Разрешения

290 290 


307 307 

308#### Сообщения между агентами308#### Сообщения между агентами

309 309 

310Когда один агент отправляет другому сообщение через `SendMessage`, Claude Code сообщает получающему агенту, что сообщение пришло от другого сеанса Claude, а не от вас. Товарищ по команде не может одобрить запрос разрешения или дать согласие от вашего имени, и товарищ по команде, которому было отказано в действии, не может передать его другому товарищу по команде, чтобы обойти проверку. Те же правила применяются к сообщению, которое поступает из [одного из ваших других сеансов Claude Code](https://code.claude.com/docs/ru/cross-session-messaging.md#how-a-session-treats-an-incoming-message), вне команды полностью.310Когда один агент отправляет другому сообщение через `SendMessage`, Claude Code сообщает получающему агенту, что сообщение пришло из другой сессии Claude, а не от вас. Участник команды не может подтвердить запрос разрешения или дать согласие от вашего имени, а участник команды, которому было отказано в действии, не может передать его другому участнику команды, чтобы обойти проверку. Те же правила применяются к сообщению, поступающему из [одной из ваших других сессий Claude Code](https://code.claude.com/docs/ru/cross-session-messaging.md#how-a-session-treats-an-incoming-message), полностью вне команды агентов.

311 311 

312В [автоматическом режиме](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) классификатор применяет две проверки к сообщениям между агентами:312В [авторежиме](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) классификатор применяет две проверки к сообщениям между агентами:

313 313 

314* Он рассматривает утверждение об одобрении, переданное от другого агента, как недоверенный ввод, а не подтверждение от вас.314* Он рассматривает заявление о подтверждении, переданное от другого агента, как недоверенный ввод, а не как подтверждение от вас.

315* Он проверяет каждое сообщение перед тем, как Claude Code доставляет его, будь то простое сообщение или структурированное протокольное сообщение, такое как запрос на завершение или ответ на одобрение плана. Сообщение, которое оно блокирует, никогда не достигает получателя.315* Он проверяет каждое сообщение перед тем, как Claude Code его доставит, будь то простое сообщение или структурированное протокольное сообщение, такое как запрос на завершение или ответ на утверждение плана. Заблокированное им сообщение никогда не достигает получателя.

316 316 

317### Контекст и коммуникация317### Контекст и коммуникация

318 318 

319Каждый товарищ по команде имеет свое собственное контекстное окно. При порождении товарищ по команде загружает тот же контекст проекта, что и обычный сеанс: CLAUDE.md, MCP servers и skills. Если вы запустите лидера с [`--setting-sources`](https://code.claude.com/docs/ru/cli-reference#cli-flags), товарищи по команде загружают из того же ограниченного списка источников. До версии 2.1.281 товарищи по команде в [разделенной панели](#choose-a-display-mode) загружали каждый источник параметров.319У каждого участника команды есть собственное контекстное окно. При порождении участник команды загружает тот же контекст проекта, что и обычная сессия: CLAUDE.md, MCP-серверы и скиллы. Если вы запустите лидера с [`--setting-sources`](https://code.claude.com/docs/ru/cli-reference#cli-flags), участники команды загружают настройки из того же ограниченного списка источников. До версии 2.1.281 участники команды в [разделенной панели](#choose-a-display-mode) загружали все источники настроек.

320 320 

321Товарищ по команде также получает запрос на порождение от лидера. История разговора лидера не переносится.321Участник команды также получает от лидера промпт порождения. История диалога лидера не переносится.

322 322 

323**Как товарищи по команде делятся информацией:**323**Как участники команды обмениваются информацией:**

324 324 

325* **Автоматическая доставка сообщений**: когда товарищи по команде отправляют сообщения, они автоматически доставляются получателям. Лидеру не нужно опрашивать обновления.325* **Автоматическая доставка сообщений**: когда участники команды отправляют сообщения, они автоматически доставляются получателям. Лидеру не нужно опрашивать обновления.

326* **Уведомления о неактивности**: когда товарищ по команде заканчивает и останавливается, он автоматически уведомляет лидера и включает свой окончательный ответ в уведомление. Товарищ по команде, чей ход заканчивается на ошибке API, уведомляет лидера о том, что он не удался, и включает текст ошибки.326* **Уведомления о простое**: когда участник команды заканчивает работу и останавливается, он автоматически уведомляет лидера и включает в уведомление свой окончательный ответ. Участник команды, чей ход завершается ошибкой API, уведомляет лидера о сбое и включает текст ошибки.

327* **Общий список задач**: [агенты, которые имеют инструменты Task](https://code.claude.com/docs/ru/tools-reference.md#task-tool-availability), могут видеть статус задачи и брать доступную работу.327* **Общий список задач**: [агенты, у которых есть инструменты Task](https://code.claude.com/docs/ru/tools-reference.md#task-tool-availability), могут видеть статус задач и брать доступную работу.

328* **Обмен сообщениями товарищей по команде**: отправить сообщение одному конкретному товарищу по команде по имени. Чтобы достичь всех, отправьте одно сообщение на получателя.328* **Обмен сообщениями между участниками команды**: отправьте сообщение одному конкретному участнику команды по имени. Чтобы связаться со всеми, отправьте по одному сообщению каждому получателю.

329 329 

330Лидер назначает каждому товарищу по команде имя при его порождении, и любой товарищ по команде может отправить сообщение любому другому по этому имени. Чтобы получить предсказуемые имена, которые вы можете использовать в более поздних запросах, скажите лидеру, как назвать каждого товарища по команде в вашей инструкции по порождению.330Лидер назначает каждому участнику команды имя при его порождении, и любой участник команды может отправить сообщение любому другому по этому имени. Чтобы получить предсказуемые имена, на которые можно ссылаться в последующих промптах, укажите лидеру в инструкции по порождению, как назвать каждого участника команды.

331 331 

332### Использование токенов332### Использование токенов

333 333 

334Команды агентов используют значительно больше токенов, чем один сеанс. Каждый товарищ по команде имеет свое собственное контекстное окно, и использование токенов масштабируется с количеством активных товарищей по команде. Для исследования, проверки и работы над новыми функциями дополнительные токены обычно стоят того. Для рутинных задач один сеанс более экономичен. См. [стоимость токенов команды агентов](https://code.claude.com/docs/ru/costs.md#agent-team-token-costs) для руководства по использованию.334Команды агентов используют значительно больше токенов, чем одна сессия. У каждого участника команды есть собственное контекстное окно, и использование токенов растет с количеством активных участников команды. Для исследования, проверки и работы над новыми функциями дополнительные токены обычно оправданы. Для рутинных задач одна сессия экономичнее. См. [стоимость токенов команды агентов](https://code.claude.com/docs/ru/costs.md#agent-team-token-costs) для рекомендаций по использованию.

335 335 

336Запросы товарища по команде в процессе выходят за пределы [TTL bucket кэша](https://code.claude.com/docs/ru/prompt-caching.md#which-ttl-each-request-gets) основного разговора, поэтому его кэш держится пять минут по умолчанию, включая подписку Claude. Чтобы сохранить его на час, установите [`subagentPromptCacheTtl`](https://code.claude.com/docs/ru/settings-reference#subagentpromptcachettl) на `1h`. API выставляет счета за записи кэша на 1 час по более высокой ставке.336Запросы участника команды, работающего в процессе, не попадают в [TTL bucket кэша](https://code.claude.com/docs/ru/prompt-caching.md#which-ttl-each-request-gets) основного диалога, поэтому его кэш по умолчанию хранится пять минут, в том числе при подписке Claude. Чтобы хранить его час, установите [`subagentPromptCacheTtl`](https://code.claude.com/docs/ru/settings-reference#subagentpromptcachettl) в значение `1h`. API тарифицирует записи в кэш на 1 час по более высокой ставке.

337 337 

338## Примеры вариантов использования338## Примеры вариантов использования

339 339 

agent-view.md +0 −2

Details

892 892 

893Команда также предупреждает, когда работающий супервизор находится на другой версии, чем `claude`, который вы вызвали, что происходит после обновления, на которое супервизор ещё не перезапустился. Предупреждение показывает обе версии и предлагает вам запустить `claude daemon stop --any`, чтобы перейти на новую версию.893Команда также предупреждает, когда работающий супервизор находится на другой версии, чем `claude`, который вы вызвали, что происходит после обновления, на которое супервизор ещё не перезапустился. Предупреждение показывает обе версии и предлагает вам запустить `claude daemon stop --any`, чтобы перейти на новую версию.

894 894 

895Сессии переживают такое несовпадение версий без потерь: более старая версия Claude Code, которая обновляет `state.json` сессии, сохраняет поля, которые она не распознаёт, и оставляет сессию в списке. Список сессий в `roster.json` следует тому же правилу, поэтому сессии, запущенные более новой версией, остаются доступными и продолжают принимать ввод после перезапуска супервизора.

896 

897### Отключение представления агента895### Отключение представления агента

898 896 

899Чтобы полностью отключить фоновых агентов и представление агента, установите [настройку](https://code.claude.com/docs/ru/settings.md) `disableAgentView` в значение `true` или установите переменную окружения `CLAUDE_CODE_DISABLE_AGENT_VIEW`. Администраторы могут применить это через [управляемые настройки](https://code.claude.com/docs/ru/managed-settings.md).897Чтобы полностью отключить фоновых агентов и представление агента, установите [настройку](https://code.claude.com/docs/ru/settings.md) `disableAgentView` в значение `true` или установите переменную окружения `CLAUDE_CODE_DISABLE_AGENT_VIEW`. Администраторы могут применить это через [управляемые настройки](https://code.claude.com/docs/ru/managed-settings.md).

Details

367| `ap-*` | `apac.` |367| `ap-*` | `apac.` |

368| Все остальные регионы | `global.` |368| Все остальные регионы | `global.` |

369 369 

370Установите `ANTHROPIC_BEDROCK_REGION_PREFIX` для выбора префикса, который Claude Code пытается использовать в первую очередь; когда Claude Code может проверить доступность профиля и не находит соответствующий профиль для модели, он переходит на резервный вариант, как описано в порядке разрешения ниже. Допустимые значения: `us`, `eu`, `apac`, `jp`, `au` и `global`. Например, установите его на `global`, когда в вашей учётной записи включены профили `global.`, но Claude Code выведет географически специфичный из вашего региона AWS. Требуется Claude Code версии 2.1.224 или позже.370Установите `ANTHROPIC_BEDROCK_REGION_PREFIX` для выбора префикса, который Claude Code пытается использовать в первую очередь. Допустимые значения: `us`, `eu`, `apac`, `jp`, `au` и `global`. Например, установите его на `global`, когда в вашей учётной записи включены профили `global.`, но Claude Code выведет географически специфичный из вашего региона AWS.

371 371 

372Этот пример маршрутизирует модели по умолчанию через профили `global.`:372Этот пример маршрутизирует модели по умолчанию через профили `global.`:

373 373 

artifacts.md +19 −2

Details

64| :- | :- |64| :- | :- |

65| Сессия находится в [режиме планирования](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode) | Спрашивает перед первой публикацией каждого артефакта |65| Сессия находится в [режиме планирования](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode) | Спрашивает перед первой публикацией каждого артефакта |

66| Публикация объявляет возможности выполнения для страницы, такие как [вызовы коннекторов](#pull-live-data-with-mcp-connectors) или [загрузки файлов](#offer-a-file-download) | Спрашивает перед этой публикацией |66| Публикация объявляет возможности выполнения для страницы, такие как [вызовы коннекторов](#pull-live-data-with-mcp-connectors) или [загрузки файлов](#offer-a-file-download) | Спрашивает перед этой публикацией |

67| Вы поделились артефактом публично | Спрашивает один раз за диалог перед его изменением |67| Вы поделились артефактом публично | Спрашивает один раз за диалог перед его изменением, а также перед каждым ответом на комментарий к нему |

68| Claude публикует в ходе, который запустила сработавшая в вашей сессии [запланированная задача уровня сессии](https://code.claude.com/docs/ru/scheduled-tasks.md), а не введенный вами промпт | Спрашивает перед первой публикацией каждого артефакта |68| Claude публикует в ходе, который запустила сработавшая в вашей сессии [запланированная задача уровня сессии](https://code.claude.com/docs/ru/scheduled-tasks.md), а не введенный вами промпт | Спрашивает перед первой публикацией каждого артефакта |

69| Claude не может прочитать файл без вашего подтверждения | Спрашивает перед его публикацией. Разрешающее правило для инструмента `Artifact` не позволяет пропустить этот запрос |69| Claude не может прочитать файл без вашего подтверждения | Спрашивает перед его публикацией. Разрешающее правило для инструмента `Artifact` не позволяет пропустить этот запрос |

70| В режиме [Manual](https://code.claude.com/docs/ru/permission-modes.md) или `acceptEdits` Claude вносит небольшое изменение в файл артефакта, который он не может редактировать без вашего подтверждения, например в файл проекта в режиме Manual | Спрашивает перед публикацией изменения. Запрос появляется, даже если разрешающее правило распространяется на инструмент `Artifact`, потому что изменение файла требует вашего подтверждения |70| В режиме [Manual](https://code.claude.com/docs/ru/permission-modes.md) или `acceptEdits` Claude вносит небольшое изменение в файл артефакта, который он не может редактировать без вашего подтверждения, например в файл проекта в режиме Manual | Спрашивает перед публикацией изменения. Запрос появляется, даже если разрешающее правило распространяется на инструмент `Artifact`, потому что изменение файла требует вашего подтверждения |


89Обновите https://claude.ai/code/artifact/5fbea6f3-... с сегодняшними числами.89Обновите https://claude.ai/code/artifact/5fbea6f3-... с сегодняшними числами.

90```90```

91 91 

92### Отключение одношаговых обновлений артефактов

93 

94Одношаговое обновление — это небольшое изменение, которое Claude вносит в файл артефакта в ходе публикации, а не через вызов `Edit` или `Write`.

95 

96Чтобы отключить одношаговые обновления, установите для [`CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS`](https://code.claude.com/docs/ru/env-vars) значение `0`. В этом примере переменная добавляется в блок `env` в `~/.claude/settings.json`:

97 

98```json theme={null}

99{

100 "env": {

101 "CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS": "0"

102 }

103}

104```

105 

106Затем закройте и снова запустите Claude Code, поскольку запущенная сессия не перечитывает эту переменную.

107 

92## Найти артефакт снова108## Найти артефакт снова

93 109 

94Выполните `/artifacts` в Claude Code, чтобы вывести список принадлежащих вам артефактов и артефактов, которые с вами поделились. Артефакты текущей сессии отображаются первыми, в разделе **This session**.110Выполните `/artifacts` в Claude Code, чтобы вывести список принадлежащих вам артефактов и артефактов, которые с вами поделились. Артефакты текущей сессии отображаются первыми, в разделе **This session**.


111Кого вы можете добавить в общий доступ, зависит от вашего плана:127Кого вы можете добавить в общий доступ, зависит от вашего плана:

112 128 

113* **В пределах вашей организации**: в планах Team и Enterprise предоставьте доступ определённым людям в вашей организации или всем в ней. Зрители входят в claude.ai как члены вашей организации, чтобы увидеть страницу.129* **В пределах вашей организации**: в планах Team и Enterprise предоставьте доступ определённым людям в вашей организации или всем в ней. Зрители входят в claude.ai как члены вашей организации, чтобы увидеть страницу.

130* **Люди с доступом к общей папке**: в планах Team и Enterprise переместите артефакт в папку, владельцем или редактором которой вы являетесь. Переместите его со [страницы Artifacts](https://claude.ai/artifacts), которая доступна, если вы можете использовать чат claude.ai. После этого все, у кого есть доступ к папке, смогут открыть его, а владелец и редакторы папки смогут его изменять.

114* **Публично**: поделитесь ссылкой, которую может открыть любой в интернете, без необходимости входа в claude.ai. В планах Team и Enterprise общедоступный доступ отключён до тех пор, пока владелец не [включит его для организации](#control-public-sharing).131* **Публично**: поделитесь ссылкой, которую может открыть любой в интернете, без необходимости входа в claude.ai. В планах Team и Enterprise общедоступный доступ отключён до тех пор, пока владелец не [включит его для организации](#control-public-sharing).

115 132 

116### Ссылка на определённое представление133### Ссылка на определённое представление


178Ваш [режим разрешений](https://code.claude.com/docs/ru/permission-modes.md) определяет, что делает Claude, когда приходит отправленный комментарий:195Ваш [режим разрешений](https://code.claude.com/docs/ru/permission-modes.md) определяет, что делает Claude, когда приходит отправленный комментарий:

179 196 

180* **Claude отвечает самостоятельно**: если вы находитесь в режиме разрешений, который позволяет Claude опубликовать ответ, не спрашивая вас, Claude читает тред и отвечает. Вы видите `Auto-replied to comment thread on Artifact: <name>`.197* **Claude отвечает самостоятельно**: если вы находитесь в режиме разрешений, который позволяет Claude опубликовать ответ, не спрашивая вас, Claude читает тред и отвечает. Вы видите `Auto-replied to comment thread on Artifact: <name>`.

181* **Claude ждёт вас**: вне режима плана, когда публикация ответа потребует вашего одобрения, вы видите `Comments are waiting on Artifact: <name>`. Claude затем просит у вас одобрение на чтение треда и снова на публикацию ответа.198* **Claude ждёт вас**: вне режима планирования, когда публикация ответа [потребует вашего подтверждения](#when-claude-code-asks-before-publishing), вы видите `Comments are waiting on Artifact: <name>`. Claude затем просит у вас подтверждение на чтение треда и снова на публикацию ответа.

182* **Claude делает паузу в режиме плана**: вы видите `Comments are waiting on Artifact: <name>`, и Claude не отвечает до тех пор, пока вы не выйдете из режима плана и не попросите его прочитать и ответить.199* **Claude делает паузу в режиме плана**: вы видите `Comments are waiting on Artifact: <name>`, и Claude не отвечает до тех пор, пока вы не выйдете из режима плана и не попросите его прочитать и ответить.

183 200 

184Claude также прекращает отвечать самостоятельно на артефакт после обработки 60 отправленных комментариев или активаций тредов на этом артефакте в течение часа. Вы видите `Comments are waiting on Artifact: <name>` один раз, и Claude возобновляет работу по мере того, как комментарии этого часа устаревают.201Claude также прекращает отвечать самостоятельно на артефакт после обработки 60 отправленных комментариев или активаций тредов на этом артефакте в течение часа. Вы видите `Comments are waiting on Artifact: <name>` один раз, и Claude возобновляет работу по мере того, как комментарии этого часа устаревают.

Details

34* **Запросы**: чтобы пропустить проверки, шлюз пересылает без изменений и заголовок `anthropic-beta`, и поле тела `safeguards`, поскольку [они передаются в паре](https://code.claude.com/docs/ru/llm-gateway-protocol.md#beta-header-and-body-field-pairs). В [формате Amazon Bedrock InvokeModel](https://code.claude.com/docs/ru/llm-gateway-protocol.md#api-formats) шлюз вместо заголовка пересылает поле тела `anthropic_beta`.34* **Запросы**: чтобы пропустить проверки, шлюз пересылает без изменений и заголовок `anthropic-beta`, и поле тела `safeguards`, поскольку [они передаются в паре](https://code.claude.com/docs/ru/llm-gateway-protocol.md#beta-header-and-body-field-pairs). В [формате Amazon Bedrock InvokeModel](https://code.claude.com/docs/ru/llm-gateway-protocol.md#api-formats) шлюз вместо заголовка пересылает поле тела `anthropic_beta`.

35* **Ответы**: шлюз возвращает ответы и события потоковой передачи, не удаляя поля и не переписывая идентификаторы использования инструментов. Чтобы пропустить результаты проверок, он сохраняет поле `safeguard_results`.35* **Ответы**: шлюз возвращает ответы и события потоковой передачи, не удаляя поля и не переписывая идентификаторы использования инструментов. Чтобы пропустить результаты проверок, он сохраняет поле `safeguard_results`.

36 36 

37Шлюз, пропускающий трафик таким образом, продолжает работать с этой функцией и с будущими. Новые сессии затем снова используют проверки сервера.37Как только ваш шлюз начнёт так работать, новые сессии снова будут использовать проверки сервера.

38 38 

39Если вы уже знаете, что ваш шлюз не может предоставить проверки сервера, скажите Claude Code не запрашивать их там, установив `CLAUDE_CODE_AUTO_MODE_SERVER` на `0` перед началом сеанса в вашей оболочке или в [ключе параметров `env`](https://code.claude.com/docs/ru/settings-reference#env):39Если вы уже знаете, что ваш шлюз не может предоставить проверки сервера, скажите Claude Code не запрашивать их там, установив `CLAUDE_CODE_AUTO_MODE_SERVER` на `0` перед началом сеанса в вашей оболочке или в [ключе параметров `env`](https://code.claude.com/docs/ru/settings-reference#env):

40 40 

Details

180 180 

181Claude Code сканирует в фоновом режиме, затем показывает вам черновик. Вы принимаете или отклоняете его целиком, поэтому отредактируйте `~/.claude/settings.json` впоследствии, чтобы отрегулировать отдельные записи. Когда вы принимаете, Claude Code записывает черновик и согласовывает его с параметрами, которые у вас уже есть:181Claude Code сканирует в фоновом режиме, затем показывает вам черновик. Вы принимаете или отклоняете его целиком, поэтому отредактируйте `~/.claude/settings.json` впоследствии, чтобы отрегулировать отдельные записи. Когда вы принимаете, Claude Code записывает черновик и согласовывает его с параметрами, которые у вас уже есть:

182 182 

183* Claude Code записывает список `environment` без `"$defaults"`, потому что черновик указывает встроенные записи, которые он оставил без изменений183* Если вы решили добавить записи в список `environment` в `~/.claude/settings.json`, любая запись `"$defaults"` в нём сохраняется. Если вы решили заменить этот список, эта запись теряется, поэтому добавьте `"$defaults"` обратно, если вам нужны записи по умолчанию

184* Claude Code включает `"$defaults"` в каждый из списков `allow`, `soft_deny` и `hard_deny`, к которым черновик добавляет записи, если вы уже не написали список `allow` без него, поэтому [встроенные правила](#override-the-block-and-allow-rules), которые вы не заменили, остаются в силе184* Claude Code включает `"$defaults"` в каждый из списков `allow`, `soft_deny` и `hard_deny`, к которым черновик добавляет записи, если вы уже не написали список `allow` без него, поэтому [встроенные правила](#override-the-block-and-allow-rules), которые вы не заменили, остаются в силе

185* После сохранения Claude Code предлагает удалить правила `permissions.allow` в `~/.claude/settings.json`, которые автоматический режим игнорирует, такие как `Bash(*)`, или которые автоматически одобряют деструктивные команды185* После сохранения Claude Code предлагает удалить правила `permissions.allow` в `~/.claude/settings.json`, которые автоматический режим игнорирует, такие как `Bash(*)`, или которые автоматически одобряют деструктивные команды

186 186 


216 216 

217Три дополнительных поля позволяют вам заменить встроенные списки правил классификатора:217Три дополнительных поля позволяют вам заменить встроенные списки правил классификатора:

218 218 

219* `autoMode.hard_deny`: безусловные границы безопасности219* `autoMode.hard_deny`: действия, которые нужно блокировать, даже когда пользователь сам о них просит

220* `autoMode.soft_deny`: деструктивные действия, которые намерение пользователя может отменить220* `autoMode.soft_deny`: деструктивные действия, которые намерение пользователя может отменить

221* `autoMode.allow`: исключения из правил мягкой блокировки221* `autoMode.allow`: исключения из правил мягкой блокировки

222 222 


231 231 

232Общие запросы не считаются явным намерением. Просьба Claude "очистить репо" не авторизует force-push, но просьба Claude "force-push эту ветку" авторизует.232Общие запросы не считаются явным намерением. Просьба Claude "очистить репо" не авторизует force-push, но просьба Claude "force-push эту ветку" авторизует.

233 233 

234Чтобы ослабить, добавьте в `allow`, когда классификатор повторно помечает обычный паттерн, который исключения по умолчанию не охватывают. Чтобы усилить, добавьте в `soft_deny` для деструктивных рисков, специфичных для вашего окружения, которые пропускают значения по умолчанию, или в `hard_deny` для границ безопасности, которые никогда не должны быть пересечены.234Чтобы ослабить, добавьте в `allow`, когда классификатор повторно помечает обычный паттерн, который исключения по умолчанию не охватывают. Чтобы усилить, добавьте в `soft_deny` для деструктивных рисков, специфичных для вашего окружения, которые пропускают значения по умолчанию, или в `hard_deny` для действий, которые нужно блокировать, даже когда пользователь сам о них просит.

235 235 

236Чтобы сохранить встроенные правила при добавлении своих собственных, включите буквальную строку `"$defaults"` в массив. Правила по умолчанию вставляются в эту позицию, поэтому ваши пользовательские правила могут идти до или после них, и вы продолжаете наследовать обновления по мере изменения встроенного списка в разных версиях.236Чтобы сохранить встроенные правила при добавлении своих собственных, включите буквальную строку `"$defaults"` в массив. Правила по умолчанию вставляются в эту позицию, поэтому ваши пользовательские правила могут идти до или после них, и вы продолжаете наследовать обновления по мере изменения встроенного списка в разных версиях.

237 237 


252 "soft_deny": [252 "soft_deny": [

253 "$defaults",253 "$defaults",

254 "Never run database migrations outside the migrations CLI, even against dev databases",254 "Never run database migrations outside the migrations CLI, even against dev databases",

255 "Never modify files under infra/terraform/prod/: production infrastructure changes go through the review workflow"255 "Running terraform apply in infra/terraform/prod/ needs an explicit request: production infrastructure changes go through the review workflow"

256 ],256 ],

257 "hard_deny": [257 "hard_deny": [

258 "$defaults",258 "$defaults",

Details

322 322 

323Вот полный `webhook.ts` с двусторонней поддержкой. Исходящие ответы передаются через `GET /events` с использованием [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) (SSE), поэтому `curl -N localhost:8788/events` может смотреть их в реальном времени; входящий чат поступает на `POST /`:323Вот полный `webhook.ts` с двусторонней поддержкой. Исходящие ответы передаются через `GET /events` с использованием [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) (SSE), поэтому `curl -N localhost:8788/events` может смотреть их в реальном времени; входящий чат поступает на `POST /`:

324 324 

325```ts title="Full webhook.ts with reply tool' expandable theme={null}325```ts title="Full webhook.ts with reply tool" expandable theme={null}

326#!/usr/bin/env bun326#!/usr/bin/env bun

327import { Server } from '@modelcontextprotocol/sdk/server/index.js'327import { Server } from '@modelcontextprotocol/sdk/server/index.js'

328import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'328import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'

Details

763. Прайс-лист для [`models[].id`](https://code.claude.com/docs/ru/claude-apps-gateway-config#models), который вы сопоставили этому ID upstream, для строк upstream, которые не содержат имя модели, например ARN профиля приложения-вывода Amazon Bedrock или имя развёртывания Microsoft Foundry. Требует версию 2.1.218 или позже.763. Прайс-лист для [`models[].id`](https://code.claude.com/docs/ru/claude-apps-gateway-config#models), который вы сопоставили этому ID upstream, для строк upstream, которые не содержат имя модели, например ARN профиля приложения-вывода Amazon Bedrock или имя развёртывания Microsoft Foundry. Требует версию 2.1.218 или позже.

774. Уровень неизвестной модели \$5/\$25 за миллион входных/выходных токенов, поэтому ID, который счётчик не может определить, никогда не бывает бесплатным. Шлюз предупреждает при загрузке и один раз за ID во время выполнения, когда использует этот уровень.774. Уровень неизвестной модели \$5/\$25 за миллион входных/выходных токенов, поэтому ID, который счётчик не может определить, никогда не бывает бесплатным. Шлюз предупреждает при загрузке и один раз за ID во время выполнения, когда использует этот уровень.

78 78 

79Независимо от того, какой тариф применяется, счётчик затем умножает сумму на [`pricing.multiplier`](https://code.claude.com/docs/ru/claude-apps-gateway-config#pricing), по умолчанию `1`.79Независимо от того, какой тариф применяется, счётчик затем умножает сумму на [`pricing.multiplier`](https://code.claude.com/docs/ru/claude-apps-gateway-config#pricing), по умолчанию `1`. Требуется сервер шлюза с Claude Code v2.1.227 или позже.

80 80 

81Прерывания клиентом также учитываются в счёте. Когда поток заканчивается без финального фрейма использования от upstream, счётчик выставляет счёт за минимальную оценку примерно четырёх символов на выходной токен для текста, уже отправленного клиенту, поэтому прерывание запросов на ранней стадии не позволяет избежать лимита.81Прерывания клиентом также учитываются в счёте. Когда поток заканчивается без финального фрейма использования от upstream, счётчик выставляет счёт за минимальную оценку примерно четырёх символов на выходной токен для текста, уже отправленного клиенту, поэтому прерывание запросов на ранней стадии не позволяет избежать лимита.

82 82 

Details

205* **Используя `/teleport`**: внутри существующей сессии CLI запустите `/teleport` или `/tp` для открытия того же выбора сессии без перезагрузки Claude Code.205* **Используя `/teleport`**: внутри существующей сессии CLI запустите `/teleport` или `/tp` для открытия того же выбора сессии без перезагрузки Claude Code.

206* **Из `/tasks`**: запустите `/tasks` для просмотра ваших фоновых сессий, затем нажмите `t` для телепортирования в одну из них.206* **Из `/tasks`**: запустите `/tasks` для просмотра ваших фоновых сессий, затем нажмите `t` для телепортирования в одну из них.

207* **Из claude.ai/code**: выберите **Open in > Terminal** из меню сессии для копирования команды, которую вы можете вставить в ваш терминал.207* **Из claude.ai/code**: выберите **Open in > Terminal** из меню сессии для копирования команды, которую вы можете вставить в ваш терминал.

208* **Из облачной сессии**: введите `/teleport` и Claude Code ответит точной командой `claude --teleport <session-id>` для этой сессии, готовой к запуску из checkout репозитория. Требует Claude Code v2.1.223 или более поздней версии в окружении сессии.208* **Из облачной сессии**: введите `/teleport` и Claude Code ответит точной командой `claude --teleport <session-id>` для этой сессии, готовой к запуску из checkout репозитория.

209 209 

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

211 211 


499* **Аутентификация репозитория**: вы можете извлечь облачный сеанс в свой терминал только при аутентификации в одной и той же учётной записи499* **Аутентификация репозитория**: вы можете извлечь облачный сеанс в свой терминал только при аутентификации в одной и той же учётной записи

500* **Ограничения платформы**: клонирование репозитория в средах, размещённых в Anthropic, и создание pull request требуют GitHub. Экземпляры [GitHub Enterprise Server](https://code.claude.com/docs/ru/github-enterprise-server.md) с собственным размещением поддерживаются для планов Team и Enterprise. Вы можете отправить репозиторий GitLab, Bitbucket или другой репозиторий, не являющийся GitHub, в облачную сессию как [локальный пакет](#send-local-repositories-without-github), установив `CCR_FORCE_BUNDLE=1`, но сессия не сможет отправить результаты обратно на этот удалённый сервер500* **Ограничения платформы**: клонирование репозитория в средах, размещённых в Anthropic, и создание pull request требуют GitHub. Экземпляры [GitHub Enterprise Server](https://code.claude.com/docs/ru/github-enterprise-server.md) с собственным размещением поддерживаются для планов Team и Enterprise. Вы можете отправить репозиторий GitLab, Bitbucket или другой репозиторий, не являющийся GitHub, в облачную сессию как [локальный пакет](#send-local-repositories-without-github), установив `CCR_FORCE_BUNDLE=1`, но сессия не сможет отправить результаты обратно на этот удалённый сервер

501 * **Самостоятельно размещённые среды**: для репозитория на другом Git-хостинге см. [требования для запуска сессии с `--environment`](https://code.claude.com/docs/ru/self-hosted-environments-deploy#start-a-session-on-a-repository-outside-github).501 * **Самостоятельно размещённые среды**: для репозитория на другом Git-хостинге см. [требования для запуска сессии с `--environment`](https://code.claude.com/docs/ru/self-hosted-environments-deploy#start-a-session-on-a-repository-outside-github).

502* **Список разрешённых IP-адресов организации**: облачные сессии вызывают API Anthropic из инфраструктуры, управляемой Anthropic, а не из вашей сети, в то время как сессии в [самостоятельно размещённой среде](https://code.claude.com/docs/ru/self-hosted-environments) вызывают его из вашей собственной сети. Если в вашей организации включён [список разрешённых IP-адресов](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting), каждая облачная сессия, размещённая в Anthropic, завершится ошибкой аутентификации.

503 * **Code Review и запланированные задачи**: то же самое относится к [Code Review](https://code.claude.com/docs/ru/code-review.md) и к [облачным запланированным задачам](https://code.claude.com/docs/ru/routines.md), которые выполняются в средах, размещённых в Anthropic. Запланированная задача, направленная в самостоятельно размещённую среду, вызывает API из вашей собственной сети.

504 * **Получение исключения**: обратитесь в [службу поддержки Anthropic](https://support.claude.com/), чтобы исключить размещённые в Anthropic сервисы из списка разрешённых IP-адресов вашей организации.

505 502 

506## Связанные ресурсы503## Связанные ресурсы

507 504 

Details

142Файлы сессий в `sessions/`, автоматическая память и транскрипты Claude Desktop и Cowork подчиняются собственным правилам хранения:142Файлы сессий в `sessions/`, автоматическая память и транскрипты Claude Desktop и Cowork подчиняются собственным правилам хранения:

143 143 

144* **`sessions/`**: содержит по одному небольшому файлу на каждую запущенную сессию; используется для обнаружения параллельных сессий и сбоев. Этот каталог не входит в очистку по возрасту: Claude Code удаляет каждый файл при завершении его сессии и очищает остатки после сбоев при следующем запуске.144* **`sessions/`**: содержит по одному небольшому файлу на каждую запущенную сессию; используется для обнаружения параллельных сессий и сбоев. Этот каталог не входит в очистку по возрасту: Claude Code удаляет каждый файл при завершении его сессии и очищает остатки после сбоев при следующем запуске.

145* **`seed-admin/`**: временные git-каталоги, которые Claude Code создаёт при упаковке вашего репозитория для [ultrareview](https://code.claude.com/docs/ru/ultrareview.md) или [загрузки в облачную сессию](https://code.claude.com/docs/ru/claude-code-on-the-web.md#send-local-repositories-without-github). Когда загрузка завершается (или в одной из последующих сессий, если загрузка была прервана), Claude Code удаляет каталог этой загрузки, а сам `seed-admin/` оставляет на месте.

145* **Автоматическая память**: очистка не удаляет файлы памяти в каталоге [автоматической памяти](https://code.claude.com/docs/ru/memory.md#auto-memory) проекта, `projects/<project>/memory/`. Claude Code удаляет этот каталог, только если он оставался пустым в течение всего срока хранения. До v2.1.228 очистка считала папки внутри каталога памяти данными сессий и могла удалять старые файлы в нём.146* **Автоматическая память**: очистка не удаляет файлы памяти в каталоге [автоматической памяти](https://code.claude.com/docs/ru/memory.md#auto-memory) проекта, `projects/<project>/memory/`. Claude Code удаляет этот каталог, только если он оставался пустым в течение всего срока хранения. До v2.1.228 очистка считала папки внутри каталога памяти данными сессий и могла удалять старые файлы в нём.

146* **Транскрипты Claude Desktop и Cowork**: Claude Code хранит транскрипт сессии, которую вы начали или последней продолжили в Claude Desktop или Cowork, независимо от её возраста. Чтобы задать для этих транскриптов ограничение по возрасту, установите [`desktopSessionCleanupPeriodDays`](https://code.claude.com/docs/ru/settings-reference#desktopsessioncleanupperioddays). Требуется Claude Code v2.1.248 или новее; более ранние версии удаляют их по истечении `cleanupPeriodDays`.147* **Транскрипты Claude Desktop и Cowork**: Claude Code хранит транскрипт сессии, которую вы начали или последней продолжили в Claude Desktop или Cowork, независимо от её возраста. Чтобы задать для этих транскриптов ограничение по возрасту, установите [`desktopSessionCleanupPeriodDays`](https://code.claude.com/docs/ru/settings-reference#desktopsessioncleanupperioddays). Требуется Claude Code v2.1.248 или новее; более ранние версии удаляют их по истечении `cleanupPeriodDays`.

147 148 


153Claude Code пропускает очистку по возрасту в следующих случаях:154Claude Code пропускает очистку по возрасту в следующих случаях:

154 155 

155* **Режим bare**: когда вы запускаете `claude -p` с [`--bare`](https://code.claude.com/docs/ru/headless#start-faster-with-bare-mode), Claude Code не выполняет очистку в этой сессии.156* **Режим bare**: когда вы запускаете `claude -p` с [`--bare`](https://code.claude.com/docs/ru/headless#start-faster-with-bare-mode), Claude Code не выполняет очистку в этой сессии.

156* **Приостановленная очистка**: если Claude Code не может надёжно определить срок хранения, он приостанавливает очистку по сроку хранения; [событие `retention_sweep`](https://code.claude.com/docs/ru/monitoring-usage#retention-sweep-event) перечисляет все конфигурации, которые её приостанавливают. Если причина — файл настроек, который не удаётся прочитать или разобрать, или ошибки настроек при явно заданных `cleanupPeriodDays` или `desktopSessionCleanupPeriodDays`, Claude Code также показывает предупреждение в `/status`, пока вы не исправите ошибки настроек. Когда [управляемые настройки](https://code.claude.com/docs/ru/server-managed-settings.md) задают `cleanupPeriodDays`, Claude Code в любом случае выполняет очистку с управляемым значением.157* **Приостановленная очистка**: если Claude Code не может надёжно определить срок хранения, он приостанавливает очистку; [событие `retention_sweep`](https://code.claude.com/docs/ru/monitoring-usage#retention-sweep-event) перечисляет все конфигурации, которые её приостанавливают. Если причина — файл настроек, который не удаётся прочитать или разобрать, или ошибки настроек при заданных `cleanupPeriodDays` или `desktopSessionCleanupPeriodDays`, `/status` показывает предупреждение, пока вы не устраните причину.

158 

159Когда [управляемые настройки](https://code.claude.com/docs/ru/managed-settings.md) задают `cleanupPeriodDays`, Claude Code выполняет очистку с управляемым значением, даже если в файле настроек с более низким приоритетом есть ошибки.

157 160 

158Чтобы убедиться, что компьютеры в вашей организации выполняют очистку с заданным вами сроком хранения, см. раздел [Проверка очистки по сроку хранения](https://code.claude.com/docs/ru/monitoring-usage.md#check-the-retention-sweep).161Чтобы убедиться, что компьютеры в вашей организации выполняют очистку с заданным вами сроком хранения, см. раздел [Проверка очистки по сроку хранения](https://code.claude.com/docs/ru/monitoring-usage.md#check-the-retention-sweep).

159 162 

claude-projects.md +98 −100

Details

20 20 

21* **Отправляете работу в одно место**: вставляйте отчет об ошибке, трассировку стека или список задач в разговор, когда они появляются. Claude запускает поток для каждого фрагмента работы или передает его потоку, который уже работает в этой области, и отвечает на быстрые вопросы на месте.21* **Отправляете работу в одно место**: вставляйте отчет об ошибке, трассировку стека или список задач в разговор, когда они появляются. Claude запускает поток для каждого фрагмента работы или передает его потоку, который уже работает в этой области, и отвечает на быстрые вопросы на месте.

22* **Устанавливаете контекст один раз**: каждый новый поток начинается с инструкций проекта, поэтому правило, которое вы указываете один раз, например какую ветку выбрать, достигает все потоки.22* **Устанавливаете контекст один раз**: каждый новый поток начинается с инструкций проекта, поэтому правило, которое вы указываете один раз, например какую ветку выбрать, достигает все потоки.

23* **Уходите и возвращаетесь к завершенной работе**: когда вы вернетесь через час или на следующее утро, панель **Overview** показывает, какие потоки завершены, какие pull request готовы к проверке и какой поток ждет вашего ответа.23* **Уходите и возвращаетесь к завершенной работе**: панель Overview показывает, какие потоки завершены, какие pull request готовы к проверке и какой поток ждет вашего ответа.

24 24 

25Если вы уже знаете работу, которую хотите, чтобы проект выполнил, переходите прямо к [Создание проекта](#create-a-project).25Если вы уже знаете работу, которую хотите, чтобы проект выполнил, переходите прямо к [Создание проекта](#create-a-project).

26 26 


28 28 

29Проект стоит создавать, когда работа имеет цель, которая выходит за рамки одного сеанса и продолжает создавать задачи. Эти виды работ хорошо подходят для проекта:29Проект стоит создавать, когда работа имеет цель, которая выходит за рамки одного сеанса и продолжает создавать задачи. Эти виды работ хорошо подходят для проекта:

30 30 

31* **Одна цель в нескольких репозиториях**: "Обновить каждый сервис на новую конфигурацию lint." Claude может запустить поток для каждого репозитория, каждый с собственным pull request, и панель [**Overview**](#see-what-needs-you-in-overview) показывает, какие готовы к проверке.31* **Одна цель в нескольких репозиториях**: "Обновить каждый сервис на новую конфигурацию lint." Claude может запустить поток для каждого репозитория, каждый с собственным pull request, и [панель Overview](#see-what-needs-you-in-overview) показывает, какие готовы к проверке.

32* **Область, которую вы постоянно пополняете**: ошибки, трассировки стека и запросы на проверку для одного сервиса, вставляемые в разговор по мере их поступления. Ошибка, которую вы просите Claude запомнить после одного исправления, находится в [памяти проекта](#give-a-project-standing-context) для следующей.32* **Область, которую вы постоянно пополняете**: ошибки, трассировки стека и запросы на проверку для одного сервиса, вставляемые в разговор по мере их поступления. Ошибка, которую вы просите Claude запомнить после одного исправления, находится в [памяти проекта](#give-a-project-standing-context) для следующей.

33* **Сборка или миграция больше, чем сеанс**: "Построить то, что описывает `docs/spec.md`" или "Перенести приложение с устаревшего ORM." Работа разбивается на потоки, каждый берет часть, решения, которые вы просите Claude запомнить в начале, достигают более поздние потоки, и изменения спецификации и ошибки, которые вы находите во время сборки, попадают в один разговор.33* **Сборка или миграция больше, чем сеанс**: "Построить то, что описывает `docs/spec.md`" или "Перенести приложение с устаревшего ORM." Работа разбивается на потоки, каждый берет часть, решения, которые вы просите Claude запомнить в начале, достигают более поздние потоки, и изменения спецификации и ошибки, которые вы находите во время сборки, попадают в один разговор.

34* **Работа, которая не является кодом**: папка контрактов или экспорт билетов поддержки, к которым вы постоянно возвращаетесь с новыми вопросами, например "найти десять наиболее распространенных ошибок интеграции в этих билетах." Загрузите документы вместо добавления репозитория, и потоки доставляют каждый отчет как файл на вкладке [**Library**](#see-what-needs-you-in-overview) проекта.34* **Работа, не связанная с кодом**: папка с контрактами или экспорт обращений в службу поддержки, к которым вы постоянно возвращаетесь с новыми вопросами, например «найди десять самых распространённых ошибок интеграции в этих обращениях». Загрузите документы вместо добавления репозитория, и потоки будут сохранять каждый отчёт в виде файла в [**Library**](#see-what-needs-you-in-overview) проекта.

35 35 

36В любом из этих случаев вы можете отправить пакет задач, попросить Claude начать без вашего подтверждения и уйти. Когда вы вернётесь, потоки, которым нужны вы, можно найти в разделе [**Waiting on you**](#see-what-needs-you-in-overview). Вы также можете попросить Claude поставить часть работы по расписанию как [облачную запланированную задачу](https://code.claude.com/docs/ru/routines.md). Если это ваша ситуация, [создайте проект](#create-a-project).36В любом из этих случаев вы можете отправить пакет задач, попросить Claude начать без вашего подтверждения и уйти. Когда вы вернётесь, потоки, которым нужны вы, можно найти в разделе [**Waiting on you**](#see-what-needs-you-in-overview). Вы также можете попросить Claude поставить часть работы по расписанию как [облачную запланированную задачу](https://code.claude.com/docs/ru/routines.md). Если это ваша ситуация, [создайте проект](#create-a-project).

37 37 


57 * `CLAUDE.md` в [каждом из репозиториев проекта](#what-threads-pick-up-from-your-repositories), но не скиллы, `.claude/settings.json` или `.mcp.json` этих репозиториев57 * `CLAUDE.md` в [каждом из репозиториев проекта](#what-threads-pick-up-from-your-repositories), но не скиллы, `.claude/settings.json` или `.mcp.json` этих репозиториев

58 * [Коннекторы](#get-skills-plugins-connectors-and-tools-into-threads) в вашей учётной записи claude.ai58 * [Коннекторы](#get-skills-plugins-connectors-and-tools-into-threads) в вашей учётной записи claude.ai

59 * [Облачное окружение](#choose-an-environment-for-threads), которое задаёт сетевой доступ, переменные окружения, сетевые секреты и установленные инструменты59 * [Облачное окружение](#choose-an-environment-for-threads), которое задаёт сетевой доступ, переменные окружения, сетевые секреты и установленные инструменты

60* **Панель Overview**: здесь вы [видите все потоки сразу](#see-what-needs-you-in-overview), а также какие из них требуют вашего участия. Другие её вкладки: **Library** для добавленных вами файлов и файлов, созданных потоками, **Pull requests** для pull request, открытых потоками, и **Scheduled tasks** для запланированной работы в проекте.60* **Панель Overview**: здесь вы [видите все потоки сразу](#see-what-needs-you-in-overview), а также какие из них требуют вашего участия.

61 61 

62Облачные потоки ничего не берут из настроек Claude Code на вашем собственном компьютере. В разделе [Передача скиллов, плагинов, коннекторов и инструментов в потоки](#get-skills-plugins-connectors-and-tools-into-threads) описано, как предоставить им то, чего им иначе не хватало бы.62Облачные потоки ничего не берут из настроек Claude Code на вашем собственном компьютере. В разделе [Передача скиллов, плагинов, коннекторов и инструментов в потоки](#get-skills-plugins-connectors-and-tools-into-threads) описано, как предоставить им то, чего им иначе не хватало бы.

63 63 

64Вот как связаны эти части — от вас через диалог к потокам, выполняющим работу, а **Overview** отслеживает их состояние:64Вот как связаны эти части — от вас через диалог к потокам, выполняющим работу, а Overview отслеживает их состояние:

65 65 

66![Схема проекта. Вы пишете в диалоге проекта, где Claude отвечает или запускает поток. Каждый облачный поток работает в своей собственной ветке и pull request. Панель Overview перечисляет потоки по состоянию, например готов к проверке, ожидает вас и в работе.](https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max\&auto=format\&n=e8CLbxM17eD7cAiv\&q=85\&s=dbf446f69f0bbdb9961d21af207cb93b)66![Схема проекта. Вы пишете в диалоге проекта, где Claude отвечает или запускает поток. Каждый облачный поток работает в своей собственной ветке и pull request. Панель Overview перечисляет потоки по состоянию, например готов к проверке, ожидает вас и в работе.](https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max\&auto=format\&n=e8CLbxM17eD7cAiv\&q=85\&s=dbf446f69f0bbdb9961d21af207cb93b)

67 67 


96 96 

97* **Name**: как проект отображается в списке **Projects**.97* **Name**: как проект отображается в списке **Projects**.

98* **What do you want to work on?** (опционально): одна строка, которая становится целью проекта, например «Держать p95 задержку API ниже 200 мс». Claude в диалоге работает над ее достижением. Без цели Claude работает на основе задач, которые вы отправляете, и вы можете добавить цель позже в **Project settings > General**.98* **What do you want to work on?** (опционально): одна строка, которая становится целью проекта, например «Держать p95 задержку API ниже 200 мс». Claude в диалоге работает над ее достижением. Без цели Claude работает на основе задач, которые вы отправляете, и вы можете добавить цель позже в **Project settings > General**.

99* **Context** (опционально): репозитории GitHub, над которыми работает этот проект, плюс любые файлы, папки или папки Google Drive, которые потоки должны читать. Нажмите **Add** для каждого. Добавьте репозитории, которые нужны большинству задач, а не каждый, который работа может затронуть; [Решение, какие репозитории добавить](#decide-which-repositories-to-add) охватывает выбор, и вы можете добавить больше позже в **Project settings > Environment**.99* **Context** (опционально): репозитории GitHub, над которыми работает этот проект, плюс любые файлы, папки или папки Google Drive, которые потоки должны читать. Нажмите **+** для каждого. Добавьте репозитории, которые нужны большинству задач, а не каждый, который работа может затронуть; [Решение, какие репозитории добавить](#decide-which-repositories-to-add) охватывает выбор, и вы можете добавить больше позже в **Project settings > Environment**.

100 100 

101Постоянные правила того, как потоки должны работать, идут в [инструкции проекта](#give-a-project-standing-context), которые вы устанавливаете после создания проекта.101Постоянные правила того, как потоки должны работать, идут в [инструкции проекта](#give-a-project-standing-context), которые вы устанавливаете после создания проекта.

102 102 


109* Запустить один поток, который исследует репозиторий, ничего не изменяя, и предлагает следующие шаги, если у проекта есть репозиторий, который он может читать.109* Запустить один поток, который исследует репозиторий, ничего не изменяя, и предлагает следующие шаги, если у проекта есть репозиторий, который он может читать.

110* Опубликовать **Setup recommendations**, основанные на ваших недавних облачных сессиях: репозитории для добавления, запланированные задачи для создания и потоки, которые он может запустить. Каждый рекомендуемый репозиторий и каждая запланированная задача изначально включены. Отключите те, которые вам не нужны, затем нажмите **Update setup**, чтобы добавить остальные, или игнорируйте рекомендации и опишите работу самостоятельно.110* Опубликовать **Setup recommendations**, основанные на ваших недавних облачных сессиях: репозитории для добавления, запланированные задачи для создания и потоки, которые он может запустить. Каждый рекомендуемый репозиторий и каждая запланированная задача изначально включены. Отключите те, которые вам не нужны, затем нажмите **Update setup**, чтобы добавить остальные, или игнорируйте рекомендации и опишите работу самостоятельно.

111 111 

112Проект теперь указан в разделе **Projects** на боковой панели, и его разговор открыт. [Ваш первый пакет](#your-first-batch) охватывает то, что нужно настроить перед отправкой ему работы.112Проект теперь отображается на боковой панели, и его диалог открыт. [Ваш первый пакет](#your-first-batch) охватывает то, что нужно настроить перед отправкой ему работы.

113 113 

114### Запуск из существующей сессии114### Запуск из существующей сессии

115 115 


147 147 

148## Работа в проекте148## Работа в проекте

149 149 

150Предоставляйте Claude работу через разговор проекта: задачи по одной или несколько сразу, плюс обновления и свободные мысли по мере их появления. Claude маршрутизирует каждое сообщение, и потоки выполняют работу и сообщают обратно.150Передавайте Claude работу через диалог проекта: задачи по одной или несколько сразу, а также обновления и разрозненные мысли по мере их появления. Claude распределяет каждое сообщение, а треды выполняют работу и отчитываются.

151 151 

152### Ваш первый пакет152### Ваш первый пакет задач

153 153 

154Перед отправкой новому проекту пакета работы настройте его так, чтобы первые потоки вернулись так, как вы хотите:154Прежде чем отправлять новому проекту пакет работы, настройте его так, чтобы первые треды возвращали результаты в нужном вам виде:

155 155 

1561. [Напишите инструкции проекта](#write-project-instructions): краткое описание, с которого начинает каждый поток, например какую ветку выбрать, как поток проверяет свою работу и что требует вашего одобрения.1561. [Напишите инструкции проекта](#write-project-instructions): бриф, с которого начинается каждый тред, например, на какую ветку нацеливаться, как тред проверяет свою работу и что требует вашего согласия.

1572. Отправьте один небольшой кусок реальной работы или запустите один из потоков, которые Claude предложил, если он их предлагал, и откройте поток, когда он завершится, чтобы увидеть, как он сообщает обратно и что он сделал на своей ветке. Если он что-то неправильно предположил или не мог достичь того, что ему нужно, [Потоки угадали или застопорились вместо того, чтобы спросить](#threads-guessed-or-stalled-instead-of-asking) охватывает, где это исправить.1572. Отправьте одну небольшую часть реальной работы или запустите один из тредов, предложенных Claude, если он их предложил, и откройте тред, когда он завершится, чтобы увидеть, как он отчитывается и что сделал в своей ветке. Если он сделал неверное допущение или не смог получить доступ к тому, что ему было нужно, раздел [Треды угадывали или застревали вместо того, чтобы спросить](#threads-guessed-or-stalled-instead-of-asking) описывает, где это исправить.

1583. Проверьте **Thread model** и **Thread effort** в **Project settings > General**. Новый проект запускает каждый поток на Opus с высокой интенсивностью, что использует ваш план быстрее; [Выбор моделей и позволить Claude управлять контекстом](#choose-models-and-let-claude-manage-context) охватывает альтернативы.1583. Проверьте **Thread model** и **Thread effort** в **Project settings > General**. Новый проект запускает каждый тред на Opus с высоким уровнем усилий, что быстрее всего расходует ресурсы вашего плана; раздел [Выбор моделей и управление контекстом силами Claude](#choose-models-and-let-claude-manage-context) описывает альтернативы.

1594. Попросите Claude [предлагать потоки перед их запуском и запускать одновременно лишь несколько](#tune-how-claude-runs-a-project), и снимите эти ограничения, когда несколько потоков вернутся так, как вы хотите.1594. Попросите Claude [предлагать треды перед их запуском и запускать по несколько за раз](#tune-how-claude-runs-a-project), а затем снимите эти ограничения, когда несколько тредов вернут результаты в нужном вам виде.

160 160 

161### Отправляйте работу и читайте результаты161### Отправка работы и чтение результатов

162 162 

163Claude решает, куда идет каждое сообщение, которое вы отправляете в разговор:163Claude решает, куда направить каждое сообщение, которое вы отправляете в диалоге:

164 164 

165* Быстрый вопрос обычно получает ответ в разговоре.165* На быстрый вопрос обычно приходит ответ прямо в диалоге.

166* Новая работа идет в новый поток или в поток, уже работающий в этой области, и Claude говорит вам, какой. Каждый новый поток отображается под вашим сообщением как карточка: коробка с названием и статусом потока, которую вы нажимаете, чтобы открыть поток.166* Новая работа направляется в новый тред или в тред, который уже работает в этой области, и Claude сообщает вам, в какой именно. Каждый новый тред отображается под вашим сообщением в виде карточки: блока с названием и статусом треда, по которому нужно нажать, чтобы открыть тред.

167* Несколько несвязанных задач в одном сообщении становятся отдельными потоками.167* Несколько несвязанных задач в одном сообщении становятся отдельными тредами.

168 168 

169Если Claude маршрутизирует что-то иначе, чем вы хотели, скажите об этом. [Настройка того, как Claude запускает проект](#tune-how-claude-runs-a-project) перечисляет вещи, которые вы можете ему сказать, например повторное использование существующего потока для последующих действий или ответ на месте вместо запуска потока.169Если Claude распределил что-то не так, как вы хотели, скажите ему об этом. Раздел [Настройка того, как Claude ведёт проект](#tune-how-claude-runs-a-project) перечисляет, что вы можете ему сказать, например, использовать существующий тред для последующих задач или отвечать на месте вместо запуска треда.

170 170 

171Полные результаты потока остаются в потоке, и вы открываете его карточку в разговоре, чтобы прочитать их. Файлы, которые создал поток, также находятся на вкладке **Library** в **Overview**.171Полные результаты треда остаются в треде, и чтобы прочитать их, откройте его карточку в диалоге. Файлы, созданные тредом, также находятся в [**Library**](#see-what-needs-you-in-overview) проекта.

172 172 

173Иногда Claude предлагает потоки вместо их запуска в списке **Suggested threads**. Нажмите стрелку на предложении, чтобы запустить этот поток. Когда их несколько, кнопка под списком запускает все их.173Иногда Claude предлагает треды вместо того, чтобы запускать их, в списке **Suggested threads**. Нажмите стрелку у предложения, чтобы запустить этот тред. Если в списке несколько предложений, кнопка под списком запускает их все.

174 174 

175### Проверка pull request потока175### Проверка pull request треда

176 176 

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

178 178 

179* **Branch**: работает на новой ветке, начиная с ветки по умолчанию репозитория.179* **Ветка**: работает в новой ветке, созданной от ветки по умолчанию репозитория.

180* **Pull request**: открывает один, когда вы просите, и может открыть один самостоятельно для исправления ошибки или другого конкретного изменения.180* **Pull request**: открывает его, когда вы попросите, и может открыть его самостоятельно для исправления ошибки или другого конкретного изменения.

181* **После открытия**: наблюдает за pull request с включенным [auto-fix](https://code.claude.com/docs/ru/claude-code-on-the-web.md#auto-fix-pull-requests), независимо от того, включен ли auto-fix для ваших других облачных сеансов. Он отправляет исправления, когда CI не работает, обращается к комментариям проверки и отвечает в потоке, когда проверки проходят и pull request готов для вас.181* **После открытия**: отслеживает pull request с включённым [автоисправлением](https://code.claude.com/docs/ru/claude-code-on-the-web.md#auto-fix-pull-requests), независимо от того, включено ли автоисправление для других ваших облачных сессий. Он отправляет исправления, когда CI завершается с ошибкой, обрабатывает комментарии ревью и отвечает в треде, когда проверки пройдены и pull request готов для вас.

182 182 

183Когда поток отправил ветку или открыл pull request, его карточка в разговоре может показать кнопку для следующего шага:183Когда тред отправил ветку или открыл pull request, его карточка в диалоге может показывать кнопку для следующего шага:

184 184 

185* **Resolve conflicts**, **Fix CI**, **Address comments** и **Merge it** отправляют эту инструкцию потоку как сообщение от вас, поэтому вы можете подсказать потоку самостоятельно вместо ожидания его реакции на pull request.185* **Resolve conflicts**, **Fix CI**, **Address comments** и **Merge it** отправляют соответствующую инструкцию треду как сообщение от вас, так что вы можете сами дать треду указание, а не ждать, пока он отреагирует на pull request.

186* **Review PR** открывает pull request на GitHub.186* **Review PR** открывает pull request на GitHub.

187* **Create PR** появляется, когда неактивный поток отправил ветку, но не открыл pull request. Нажатие на нее создает pull request из этой ветки напрямую, а не отправляет потоку инструкцию открыть один.187* **Create PR** появляется, когда простаивающий тред отправил ветку, но не открыл pull request. Нажатие на неё создаёт pull request из этой ветки напрямую, а не отправляет треду инструкцию открыть его.

188 188 

189Чтобы изменить, когда потоки открывают pull request, например только когда вы просите, или с какой ветки они начинают, скажите об этом в задаче или в [инструкциях проекта](#write-project-instructions).189Чтобы изменить, когда треды открывают pull request, например только по вашей просьбе, или от какой ветки они начинают, укажите это в задаче или в [инструкциях проекта](#write-project-instructions).

190 190 

191### Посмотрите в Overview, что ждет вас191### Что требует вашего внимания: Overview

192 192 

193Панель **Overview** рядом с разговором отслеживает потоки проекта. Она уже открыта в первый раз, когда вы открываете новый проект. Кнопка **Overview** в заголовке проекта закрывает и открывает ее заново и показывает точку, когда поток ждет вас.193Панель Overview рядом с диалогом отслеживает треды проекта. Она уже открыта при первом открытии нового проекта. Чтобы снова открыть её после закрытия, нажмите кнопку **Threads** в заголовке проекта. На кнопке отображается точка, когда тред ожидает вас.

194 194 

195В настольном приложении вы также получаете уведомление рабочего стола, когда Claude публикует в разговоре, поток попадает в ошибку или потоку нужен ваш ввод, поэтому вам не нужно держать проект открытым, чтобы узнать. Чтобы также получить один каждый раз, когда поток завершает ход, или отключить их для проекта, выберите **Notifications** в меню боковой панели проекта. Эти уведомления только для рабочего стола: в браузере проверьте точку на кнопке **Overview**.195В настольном приложении по умолчанию появляется уведомление, когда Claude публикует сообщение в диалоге, тред сталкивается с ошибкой или треду нужен ваш ввод. Уведомления не появляются, пока вы просматриваете проект. Чтобы также получать уведомление каждый раз, когда тред завершает ход, или чтобы отключить их для проекта, выберите **Notifications** в меню проекта на боковой панели. В браузере ориентируйтесь на точку на кнопке **Threads**.

196 196 

197Вкладка **Threads** панели группирует потоки по состоянию:197Представление **Threads** на панели группирует треды по состоянию:

198 198 

199| Группа | Что в ней |199| Группа | Что в ней |

200| :- | :- |200| :- | :- |

201| **Ready for review** | Потоки, чей pull request открыт и ожидает проверки |201| **Ready for review** | Треды, чей pull request открыт и ожидает ревью |

202| **Waiting on you** | Потоки, которые нуждаются в вашем ответе или одобрении, или которые не прошли |202| **Waiting on you** | Треды, которым нужен ваш ответ или подтверждение, либо завершившиеся с ошибкой |

203| **Working** | Потоки, которые все еще работают |203| **Working** | Треды, которые ещё выполняются |

204| **Landing** | Потоки, чей pull request одобрен или поставлен в очередь на слияние |204| **Landing** | Треды, чей pull request одобрен или поставлен в очередь на слияние |

205| **Idle** | Потоки, которые завершены и ничего не ждут |205| **Idle** | Треды, которые завершились и ничего не ожидают |

206| **Resolved** | Потоки, отмеченные как выполненные: вами из меню потока, Claude после того, как вы сделали последний шаг, например слияние его pull request, или автоматически через неделю без активности. Вы можете переоткрыть один из того же меню |206| **Resolved** | Треды, отмеченные как выполненные: вами из меню треда, Claude после того, как вы сделали последний шаг, например выполнили слияние его pull request, или автоматически после недели без активности. Вы можете снова открыть тред из того же меню |

207 207 

208Другие вкладки панели:208Открыть файлы и запланированные задачи проекта на панели можно из заголовка проекта:

209 209 

210* **Library**: файлы и папки, которые вы добавили, и файлы, созданные потоками210* **Library**: файлы и папки, которые вы добавили, и файлы, созданные тредами. Нажмите кнопку **Library** рядом с **Threads**.

211* **Pull requests**: отображается, когда потоки открыли хотя бы один211* **Scheduled tasks**: [облачные запланированные задачи](https://code.claude.com/docs/ru/routines.md), которые Claude настроил из этого проекта. Выберите этот пункт в меню **⋯** заголовка.

212* **Scheduled tasks**: [облачные запланированные задачи](https://code.claude.com/docs/ru/routines.md), которые Claude настроил из этого проекта

213 212 

214### Откройте поток, когда вам нужен контроль213### Открытие треда, когда нужен контроль

215 214 

216Нажмите карточку потока в разговоре или его строку в **Overview**, чтобы открыть его транскрипт в панели Overview. Оттуда вы можете:215Нажмите карточку треда в диалоге или его строку в Overview, чтобы открыть его транскрипт на панели Overview. Оттуда вы можете:

217 216 

218* Прочитать, что сделал Claude, шаг за шагом.217* Прочитать, что сделал Claude, шаг за шагом.

219* Направить задачу, написав в собственное поле сообщения потока. Сообщение там идет прямо в этот поток, в то время как последующее сообщение в разговоре проекта достигает его только тогда, когда Claude соотнесет это сообщение с этим потоком.218* Направлять выполнение задачи, написав в собственном поле сообщения треда. Сообщение там попадает прямо в этот тред, тогда как последующее сообщение в диалоге проекта доходит до него, только если Claude сопоставит его с этим тредом.

220* Ответить на подсказку разрешения, на которую ждет поток.219* Ответить на запрос разрешения, который ожидает тред.

221* Прервать поток с помощью **Stop**, который заменяет кнопку отправки, пока поток работает, или нажав Esc.220* Прервать тред кнопкой **Stop**, которая заменяет кнопку отправки, пока тред работает, или нажатием Esc.

222 221 

223### Выбор моделей и позволить Claude управлять контекстом222### Выбор моделей и управление контекстом силами Claude

224 223 

225Установите модели и интенсивность в **Project settings > General**. Новый проект запускает Opus везде с высокой [интенсивностью](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level) для потоков и низкой интенсивностью для разговора:224Задайте модели и уровень усилий в **Project settings > General**. Новый проект везде использует Opus, с высоким [уровнем усилий](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level) для тредов и низким для диалога:

226 225 

227* **Thread model** и **Thread effort** применяются к потокам. Чтобы использовать другую модель для одной задачи, попросите это в задаче; для уже работающего потока используйте выбор модели этого потока.226* **Thread model** и **Thread effort** применяются к тредам. Чтобы использовать другую модель для одной задачи, попросите об этом в задаче; для уже запущенного треда используйте селектор модели этого треда.

228* **Coordinator model** и **Coordinator effort** применяются к Claude в разговоре проекта.227* **Coordinator model** и **Coordinator effort** применяются к Claude в диалоге проекта.

229 228 

230Вы не управляете контекстными окнами в проекте. Потоки автоматически компактируются, и разговор работает из недавних сообщений, недавних потоков и памяти проекта, а не из полной истории, поэтому он продолжается столько, сколько работает проект. Поместите все, что никогда не должно быть потеряно, в [память проекта](#give-a-project-standing-context). Если один поток перерастает свой контекст, он показывает [Claude ran out of context on this turn](#context-limit).229В проекте вы не управляете контекстными окнами. Треды сжимаются автоматически, а диалог работает на основе недавних сообщений, недавних тредов и памяти проекта, а не всей своей истории, поэтому он продолжается столько, сколько работает проект. Всё, что никогда не должно быть отброшено, поместите в [память проекта](#give-a-project-standing-context). Если один тред перерастает свой контекст, он показывает [Claude ran out of context on this turn](#context-limit).

231 230 

232### Настройка того, как Claude запускает проект231### Настройка того, как Claude ведёт проект

233 232 

234Скажите Claude в разговоре, сколько потоков запускать одновременно, когда публиковать обновления и когда открывать pull request. Если Claude координирует так, как вы не хотите, скажите об этом. Например, вы можете сказать:233Сообщите Claude в диалоге, сколько тредов запускать одновременно, когда публиковать обновления и когда открывать pull request. Если Claude координирует работу не так, как вы хотите, скажите ему об этом. Например, вы можете сказать:

235 234 

236* "Предложить потоки и ждать моего одобрения перед их запуском" или "Запустить их сейчас без просьбы подтверждения"235* «Предлагай треды и жди моего согласия, прежде чем запускать их» или «Запусти их сейчас, не спрашивая подтверждения»

237* "Запускать максимум два потока одновременно" или "Повторно использовать существующий поток для последующих действий в той же области"236* «Запускай не более двух тредов одновременно» или «Используй существующий тред для последующих задач в той же области»

238* "Публиковать более короткие обновления" или "Публиковать только когда что-то завершается или блокируется"237* «Публикуй более короткие обновления» или «Пиши только тогда, когда что-то завершилось или заблокировано»

239* "Дать мне обновление статуса по каждому потоку"238* «Дай мне сводку статуса по каждому треду»

240* "Выполнить эту задачу с меньшей моделью"239* «Выполни эту задачу с моделью поменьше»

241* "Не открывать pull request, пока я не видел план"240* «Не открывай pull request, пока я не посмотрю план»

242* "Скажи мне, что не так в этих репозиториях и ничего не исправляй", когда вы хотите пройти через выводы перед тем, как любой из них станет потоком241* «Скажи, что не так в этих репозиториях, и пока ничего не исправляй», когда вы хотите просмотреть выводы до того, как какой-либо из них станет тредом

243* "Ответить здесь вместо запуска потока", когда Claude запускает поток для чего-то, что вы имели в виду как быстрый вопрос242* «Ответь здесь, а не запускай тред», когда Claude запускает тред для того, что вы задумывали как быстрый вопрос

244 243 

245Claude сохраняет предпочтения, подобные этим, в [память проекта](#give-a-project-standing-context) самостоятельно и следует им в более поздних потоках. Это инструкции, которым Claude следует, а не принудительные параметры, поэтому лимит потоков, который вы даете таким образом, не является жестким ограничением. Добавьте один в инструкции проекта, когда вы хотите, чтобы он был сформулирован точно и применен к каждому потоку с самого начала.244Claude самостоятельно сохраняет подобные предпочтения в [память проекта](#give-a-project-standing-context) и следует им в последующих облачных тредах. Это инструкции, которых Claude придерживается, а не принудительно применяемые настройки, поэтому заданное таким образом ограничение на число тредов не является жёстким пределом. Добавьте его в инструкции проекта, если хотите, чтобы оно было сформулировано точно и применялось к каждому треду с самого начала.

246 245 

247### Разблокировка потока, ожидающего одобрения246### Разблокировка треда, ожидающего подтверждения

248 247 

249Потоки работают в [auto mode](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode), когда модель потока это поддерживает, поэтому большинство вызовов инструментов работают без вашего запроса. Когда потоку нужно ваше одобрение, подсказка находится внутри этого потока и поток ждет, пока вы ответите там. Сказание Claude в разговоре проекта идти дальше не достигает его.248Треды работают в [авторежиме](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode), если модель треда его поддерживает, поэтому большинство вызовов инструментов выполняется без вашего участия. Когда треду нужно ваше подтверждение, запрос находится внутри этого треда, и тред ждёт, пока вы ответите на него там. Если сказать Claude в диалоге проекта продолжать, это до треда не дойдёт.

250 249 

251Каждое подтверждение охватывает этот запрос или остаток этого потока, если вы выберете более широкий вариант. Облачные потоки не читают [правила разрешений](https://code.claude.com/docs/ru/permissions.md) из `.claude/settings.json` репозитория, поэтому вы полагаетесь на авторежим и на подтверждения, которые вы даете внутри каждого потока.250Каждое подтверждение распространяется на этот запрос или на весь оставшийся тред, если вы выберете более широкий вариант. Облачные треды не читают [правила разрешений](https://code.claude.com/docs/ru/permissions.md) из `.claude/settings.json` репозитория, поэтому вы полагаетесь на авторежим и на подтверждения, которые даёте внутри каждого треда.

252 251 

253### Запустите поток на своем компьютере252### Запуск треда на вашем компьютере

254 253 

255Когда задача требует что-то, что есть только на вашем компьютере, например локальную базу данных, эмулятор устройства или API за вашим VPN, попросите Claude запустить поток для этой задачи на вашем компьютере вместо облака. Когда вы просите в разговоре проекта, поток — это сеанс Claude Code в папке на вашей машине, подключенный через [Remote Control](https://code.claude.com/docs/ru/remote-control.md). Другие потоки проекта продолжают работать в облаке. По сравнению с облачным потоком, поток на вашем компьютере:254Когда задаче нужно что-то, что есть только на вашем компьютере, например локальная база данных, эмулятор устройства или API за вашим VPN, попросите Claude запустить тред для этой задачи на вашем компьютере, а не в облаке. Когда вы просите об этом в диалоге проекта, тред представляет собой сессию Claude Code в папке на вашем компьютере, подключённую через [Remote Control](https://code.claude.com/docs/ru/remote-control.md). Остальные треды проекта продолжают работать в облаке. По сравнению с облачным тредом, тред на вашем компьютере:

256 255 

257* Работает с файлами, инструментами, MCP серверами и параметрами Claude Code на этой машине, включая его hooks и правила разрешений, вместо облачной среды проекта256* Работает с файлами, инструментами, MCP-серверами и настройками Claude Code на этом компьютере, включая его хуки и правила разрешений, а не с облачной средой проекта

258* Начинается с инструкций проекта, но без загруженных файлов памяти257* Запускается с инструкциями проекта, но без загруженных файлов его памяти

259* Работает только пока этот компьютер включен с включенным Remote Control258* Работает, только пока этот компьютер не находится в спящем режиме и на нём включён Remote Control

260 259 

261**1. Подключите папку**260**1. Подключите папку**

262 261 

263На компьютере, у которого есть папка, которая нужна задаче, сделайте ее доступной через Remote Control одним из двух способов. Оба требуют Claude Code v2.1.280 или позже на этом компьютере.262На компьютере, где находится нужная задаче папка, сделайте её доступной через Remote Control одним из двух способов. Для обоих требуется Claude Code v2.1.280 или новее на этом компьютере.

264 263 

265* **В приложении Claude для рабочего стола**: откройте **Settings > Code** или **Settings > Claude Code** и включите **Use this computer from your phone and claude.ai**. Добавьте папку в список под этим переключателем. Потоки могут работать на этом компьютере, пока приложение открыто.264* **В настольном приложении Claude**: откройте **Settings > Code** или **Settings > Claude Code** и включите **Use this computer from your phone and claude.ai**. Добавьте папку в список под этим переключателем. Треды могут работать на этом компьютере, пока приложение открыто.

266* **В терминале**: запустите `claude remote-control` в папке и оставьте его работающим. В git-репозитории добавьте `--spawn worktree`, чтобы дать каждому потоку там свой [worktree](https://code.claude.com/docs/ru/worktrees.md) вместо самой папки.265* **В терминале**: выполните `claude remote-control` в папке и оставьте команду работать. В Git-репозитории добавьте `--spawn worktree`, чтобы каждый тред там получал собственный [worktree](https://code.claude.com/docs/ru/worktrees.md), а не саму папку.

267 266 

268**2. Попросите задачу с Work locally**267**2. Запросите задачу через Work locally**

269 268 

270В диалоге проекта выберите **Work locally** из меню **+** рядом с полем сообщения, которое помечает ваше сообщение **Local**, и напишите, что вы хотите сделать. Можно также указать в сообщении, что задача должна выполняться на вашем компьютере.269В диалоге проекта выберите **Work locally** в меню **+** рядом с полем сообщения, что пометит ваше сообщение как **Local**, и напишите, что нужно сделать. Также можно просто указать в сообщении, что задача должна выполняться на вашем компьютере.

271 270 

272**3. Разрешите это на карточке**271**3. Разрешите это на карточке**

273 272 

274Claude отвечает карточкой **Allow Claude to work in a folder on your device**. Выберите папку, если вы подключили несколько. Два потока, работающих в одной папке одновременно, могут перезаписать изменения друг друга, поэтому если папка — это git-репозиторий, вы можете включить **Worktree** в параметрах папки, чтобы вместо этого дать этому потоку свой worktree. Затем нажмите **Allow once**.273Claude ответит карточкой **Allow Claude to work in a folder on your device**. Выберите папку, если вы подключили несколько. Два треда, одновременно работающие в одной папке, могут перезаписывать изменения друг друга, поэтому, если папка является Git-репозиторием, вы можете включить **Worktree** в параметрах папки, чтобы этот тред получил собственный worktree. Затем нажмите **Allow once**.

275 274 

276Поток работает в [auto mode](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode), поэтому Claude запускает команды и редактирует файлы в этой папке без вашего запроса каждый раз. Если auto mode недоступен или отключен в Claude Code этого компьютера, поток работает без него, и любая подсказка разрешения, которую он вызывает, ждет вашего ответа в потоке, как описано в [Разблокировка потока, ожидающего одобрения](#unblock-a-thread-waiting-on-approval).275Тред работает в [авторежиме](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode), поэтому Claude выполняет команды и редактирует файлы в этой папке, не спрашивая вас каждый раз. Если авторежим недоступен или отключён в Claude Code на этом компьютере, тред работает без него, и любой запрос разрешения, который он выдаёт, ожидает вашего ответа в треде, как описано в разделе [Разблокировка треда, ожидающего подтверждения](#unblock-a-thread-waiting-on-approval).

277 276 

278Пока поток работает, значок ноутбука в его заголовке показывает, подключен ли ваш компьютер. Нажмите на него, чтобы увидеть, какую папку использует поток, или отключить соединение. Поток приостанавливается, пока этот компьютер спит, и останавливается, если приложение для рабочего стола или `claude remote-control` завершает работу.277Пока тред работает, значок ноутбука в его заголовке показывает, подключён ли ваш компьютер. Нажмите на него, чтобы увидеть, какую папку использует тред, или отключить соединение. Тред приостанавливается, пока этот компьютер находится в спящем режиме, и останавливается, если настольное приложение или `claude remote-control` завершает работу.

279 278 

280* **Чтобы снова запустить поток**: см. [Lost contact with your folder](#lost-contact-with-your-folder)279* **Чтобы снова запустить тред**: см. [Lost contact with your folder](#lost-contact-with-your-folder)

281* **Чтобы компьютер не засыпал самостоятельно**: в приложении для рабочего стола включите **Keep this computer awake for Remote Control** в **Settings > Code** или **Settings > Claude Code**280* **Чтобы компьютер сам не переходил в спящий режим**: в настольном приложении включите **Keep this computer awake for Remote Control** в **Settings > Code** или **Settings > Claude Code**

282 281 

283Проект не может запустить поток на вашем компьютере, пока [**Require trusted devices**](https://code.claude.com/docs/ru/remote-control.md#trusted-devices) включен для вашей учетной записи.282Проект не может запустить тред на вашем компьютере, пока для вашей учётной записи включена настройка [**Require trusted devices**](https://code.claude.com/docs/ru/remote-control.md#trusted-devices).

284 283 

285## Предоставление проекту постоянного контекста284## Предоставление проекту постоянного контекста

286 285 


290| :- | :- | :- |289| :- | :- | :- |

291| Память проекта | Заметки, которые Claude ведёт о проекте, такие как требования, решения и подводные камни, хранящиеся в виде файлов. Каждый облачный поток читает индексный файл `MEMORY.md` при запуске и открывает другие файлы, когда они ему нужны | Попросите Claude в диалоге проекта или в любом облачном потоке запомнить требование, решение или подводный камень либо забыть что-то из них. Читайте, редактируйте и удаляйте файлы в **Project settings > Memory** |290| Память проекта | Заметки, которые Claude ведёт о проекте, такие как требования, решения и подводные камни, хранящиеся в виде файлов. Каждый облачный поток читает индексный файл `MEMORY.md` при запуске и открывает другие файлы, когда они ему нужны | Попросите Claude в диалоге проекта или в любом облачном потоке запомнить требование, решение или подводный камень либо забыть что-то из них. Читайте, редактируйте и удаляйте файлы в **Project settings > Memory** |

292| Инструкции проекта | Текст, отправляемый каждому новому потоку и Claude в диалоге проекта, до 16 000 символов. В разделе [Напишите инструкции проекта](#write-project-instructions) описано, что в него поместить | **Project settings > Memory > Project instructions**, или попросите Claude изменить инструкции |291| Инструкции проекта | Текст, отправляемый каждому новому потоку и Claude в диалоге проекта, до 16 000 символов. В разделе [Напишите инструкции проекта](#write-project-instructions) описано, что в него поместить | **Project settings > Memory > Project instructions**, или попросите Claude изменить инструкции |

293| Репозитории, файлы и среда | Репозитории, которые клонирует каждый облачный поток, папки и файлы, которые он может читать в `/mnt/project-files`, и облачная среда, в которой он работает | Репозитории и среда в **Project settings > Environment**, или попросите Claude в диалоге добавить репозиторий в проект. [Файлы и папки](#add-files-and-folders) через **Add** на вкладке **Library** в **Overview** |292| Репозитории, файлы и среда | Репозитории, которые клонирует каждый облачный поток, папки и файлы, которые он может читать в `/mnt/project-files`, и облачная среда, в которой он работает | Репозитории и среда в **Project settings > Environment**, или попросите Claude в диалоге добавить репозиторий в проект. [Файлы и папки](#add-files-and-folders) через **Add** в разделе [**Library**](#see-what-needs-you-in-overview) проекта |

294 293 

295**Project settings > Memory** перечисляет эти файлы в разделе **Auto memory**, потому что Claude пишет их сам, пока работает в проекте. Они отделены от [автоматической памяти](https://code.claude.com/docs/ru/memory.md), которую Claude Code хранит на вашей машине, хотя обе используют индекс `MEMORY.md`. Память проекта также отделена от файлов `CLAUDE.md` в репозиториях проекта. Каждый облачный поток по-прежнему читает эти файлы `CLAUDE.md` из своего клона при запуске, поэтому помещайте инструкции о репозитории в его `CLAUDE.md`, а заметки о проекте — в память проекта.294**Project settings > Memory** перечисляет эти файлы в разделе **Auto memory**, потому что Claude пишет их сам, пока работает в проекте. Они отделены от [автоматической памяти](https://code.claude.com/docs/ru/memory.md), которую Claude Code хранит на вашей машине, хотя обе используют индекс `MEMORY.md`. Память проекта также отделена от файлов `CLAUDE.md` в репозиториях проекта. Каждый облачный поток по-прежнему читает эти файлы `CLAUDE.md` из своего клона при запуске, поэтому помещайте инструкции о репозитории в его `CLAUDE.md`, а заметки о проекте — в память проекта.

296 295 

297### Напишите инструкции проекта296### Напишите инструкции проекта

298 297 

299Инструкции проекта — это краткое описание, с которого начинает каждый новый поток. Нажмите значок шестерёнки в заголовке проекта, чтобы открыть **Project settings**, затем перейдите в **Memory > Project instructions**. Полезное краткое описание охватывает:298Инструкции проекта — это краткое описание, с которого начинает каждый новый поток. Выберите **Settings** в меню **⋯** в заголовке проекта, чтобы открыть **Project settings**, затем перейдите в **Memory > Project instructions**. Полезное краткое описание охватывает:

300 299 

301* Для чего предназначен проект300* Для чего предназначен проект

302* Где происходит работа: какие репозитории, от какой ветки начинать, как называть pull requests301* Где происходит работа: какие репозитории, от какой ветки начинать, как называть pull requests


307Например:306Например:

308 307 

309```text theme={null}308```text theme={null}

310Этот проект удерживает задержку p95 для API платежей ниже 200 мс: профилирование, исправления запросов и кэширования, а также сопутствующие обновления зависимостей, в репозитории payments-api.309This project holds p95 latency for the payments API under 200 ms: profiling, query and caching fixes, and the dependency upgrades that come with them, in the payments-api repository.

311 310 

312- Создавайте ветку от main и открывайте один черновой pull request на каждый поток.311- Branch from main and open one draft pull request per thread.

313- Прежде чем считать работу выполненной, запустите `make test` и `make lint` и вставьте итоговые строки в ваше финальное сообщение.312- Before you call work done, run `make test` and `make lint` and paste the summary lines in your final message.

314- Если вы не можете получить доступ к чему-то нужному, например к репозиторию, секрету, API или коннектору, в первом же сообщении точно укажите, чего не хватает, и остановитесь. Не подменяйте, не имитируйте и не угадывайте.313- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.

315- Не выполняйте слияние, force-push и не изменяйте конфигурацию CI, не спросив меня в потоке.314- Don't merge, force-push, or change CI configuration without asking me in the thread.

316```315```

317 316 

318Правила, касающиеся одного репозитория, например его команды сборки, следует размещать в `CLAUDE.md` этого репозитория, который каждый облачный поток читает, когда репозиторий входит в проект. Когда работа уже идёт и вы исправляете поток, также попросите Claude запомнить исправление: оно попадёт в [память проекта](#give-a-project-standing-context), и последующие облачные потоки будут начинать с ним.317Правила, касающиеся одного репозитория, например его команды сборки, следует размещать в `CLAUDE.md` этого репозитория, который каждый облачный поток читает, когда репозиторий входит в проект. Когда работа уже идёт и вы исправляете поток, также попросите Claude запомнить исправление: оно попадёт в [память проекта](#give-a-project-standing-context), и последующие облачные потоки будут начинать с ним.


324* **Добавьте его в проект** в диалоговом окне **New project**, в **Project settings > Environment** или попросив Claude в диалоге добавить его в проект. Каждый облачный поток с этого момента клонирует его и начинает с загруженным `CLAUDE.md` этого репозитория, независимо от того, затрагивает ли его задача.323* **Добавьте его в проект** в диалоговом окне **New project**, в **Project settings > Environment** или попросив Claude в диалоге добавить его в проект. Каждый облачный поток с этого момента клонирует его и начинает с загруженным `CLAUDE.md` этого репозитория, независимо от того, затрагивает ли его задача.

325* **Не добавляйте его и позвольте потокам добавлять его при необходимости.** Облачный поток, задаче которого нужен репозиторий, отсутствующий в проекте, может добавить его себе, и заметка в потоке сообщает, что он добавлен только в этот поток. Клонирование происходит в середине задачи, поэтому `CLAUDE.md` этого репозитория не было, когда поток запускался. Следующий поток начинает без него. Репозиторию, добавленному таким образом, нужны те же [предварительные требования](#check-the-prerequisites), что и репозиторию проекта: установленное на нём Claude GitHub App и доступ на push из вашего аккаунта GitHub.324* **Не добавляйте его и позвольте потокам добавлять его при необходимости.** Облачный поток, задаче которого нужен репозиторий, отсутствующий в проекте, может добавить его себе, и заметка в потоке сообщает, что он добавлен только в этот поток. Клонирование происходит в середине задачи, поэтому `CLAUDE.md` этого репозитория не было, когда поток запускался. Следующий поток начинает без него. Репозиторию, добавленному таким образом, нужны те же [предварительные требования](#check-the-prerequisites), что и репозиторию проекта: установленное на нём Claude GitHub App и доступ на push из вашего аккаунта GitHub.

326 325 

327Проекту вообще не обязателен репозиторий. Его облачные потоки всё равно могут проводить исследования, писать документы, а также писать и запускать код в собственной песочнице, и они доставляют файлы на вкладку **Library**. Любой из его облачных потоков по-прежнему может добавить себе репозиторий, когда этого требует задача.326Проекту вообще не обязателен репозиторий. Его облачные потоки всё равно могут проводить исследования, писать документы, а также писать и запускать код в собственной песочнице. Они доставляют файлы в раздел **Library** проекта. Любой из его облачных потоков по-прежнему может добавить себе репозиторий, когда этого требует задача.

328 327 

329Когда у проекта есть репозитории, Claude может добавлять только репозитории того владельца GitHub, которого проект уже использует, — добавляет ли он репозиторий в проект или поток добавляет его себе. Чтобы подключить репозиторий другого владельца, добавьте его в проект самостоятельно в **Project settings > Environment**.328Когда у проекта есть репозитории, Claude может добавлять только репозитории того владельца GitHub, которого проект уже использует, — добавляет ли он репозиторий в проект или поток добавляет его себе. Чтобы подключить репозиторий другого владельца, добавьте его в проект самостоятельно в **Project settings > Environment**.

330 329 


332 331 

333### Добавьте файлы и папки332### Добавьте файлы и папки

334 333 

335Добавьте файлы и папки, которые должны читать потоки, в поле **Context** диалогового окна **New project** или позже с помощью **Add** на вкладке **Library** в **Overview**. К добавляемому применяются следующие ограничения:334Добавьте файлы и папки, которые должны читать потоки, в поле **Context** диалогового окна **New project** или позже с помощью **Add** в разделе [**Library**](#see-what-needs-you-in-overview) проекта. К добавляемому применяются следующие ограничения:

336 335 

337* **Вкладка Library**: до 100 файлов и 2 ГБ за один выбор, при этом один файл — до 480 МБ.336* **Файлы, которые вы загружаете на claude.ai/code или в десктопном приложении**: до 1 000 файлов и 2 ГБ за один раз, при этом один файл — до 480 МБ.

338* **Диалоговое окно New project**: файлы размером более 30 МБ пропускаются, поэтому добавляйте более крупные файлы с вкладки **Library** после создания проекта.337* **Папки, которые вы загружаете**: скрытые файлы и `node_modules` не добавляются. Проект может содержать до 10 папок и папок Google Drive в сумме, а отдельные файлы в это ограничение не засчитываются.

339* **Папки**: когда вы добавляете папку из любого из этих мест, проект получает копию её первых 100 файлов объёмом до 200 МБ, без файлов размером более 30 МБ, скрытых файлов и `node_modules`. Проект может содержать до 10 папок и папок Google Drive в сумме, а отдельные файлы в это ограничение не засчитываются.

340* **Изменения после загрузки**: загрузки являются копиями, поэтому изменение, которое вы позже вносите на своём компьютере, не попадает в проект, пока вы снова не загрузите файл и не выберете **Replace** при запросе о существующем имени.338* **Изменения после загрузки**: загрузки являются копиями, поэтому изменение, которое вы позже вносите на своём компьютере, не попадает в проект, пока вы снова не загрузите файл и не выберете **Replace** при запросе о существующем имени.

341 339 

342### Что потоки берут из ваших репозиториев340### Что потоки берут из ваших репозиториев


373 371 

374## Справочник параметров проекта372## Справочник параметров проекта

375 373 

376Вы изменяете параметры проекта в claude.ai/code или в настольном приложении, а не в `settings.json`. Откройте **Project settings** из **Settings** в меню боковой панели проекта или из значка шестеренки в заголовке проекта.374Вы изменяете настройки проекта в claude.ai/code или в настольном приложении, а не в `settings.json`. Откройте **Project settings** из **Settings** в меню боковой панели проекта или в меню **⋯** в заголовке проекта.

377 375 

378Параметры сохраняются по мере их изменения; текстовое поле, которое вы редактируете, например цель или инструкции, показывает **Save changes** и **Discard** до тех пор, пока вы его не покинете. Изменения инструкций, репозиториев, plugins и среды в **Project settings** достигают новые потоки, а не уже работающие потоки.376Параметры сохраняются по мере их изменения; текстовое поле, которое вы редактируете, например цель или инструкции, показывает **Save changes** и **Discard** до тех пор, пока вы его не покинете. Изменения инструкций, репозиториев, plugins и среды в **Project settings** достигают новые потоки, а не уже работающие потоки.

379 377 


434 432 

435 Проекты доступны на планах Pro, Max и Ultra. Проект принадлежит только вам: только вы отправляете ему работу и видите его потоки, и он использует ваш собственный доступ к GitHub и ваши коннекторы. Сравнение приведено в разделе [Как Claude Tag отличается от Cowork и Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code).433 Проекты доступны на планах Pro, Max и Ultra. Проект принадлежит только вам: только вы отправляете ему работу и видите его потоки, и он использует ваш собственный доступ к GitHub и ваши коннекторы. Сравнение приведено в разделе [Как Claude Tag отличается от Cowork и Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code).

436* **Облачные сессии**: каждый поток — это [облачная сессия](https://code.claude.com/docs/ru/claude-code-on-the-web.md), если вы не попросите Claude запустить его на вашей машине. В любом случае Claude запускает и отслеживает его вместо вас. Вы также можете перенести в проект работу облачной сессии, которую запустили самостоятельно: выберите [**Continue in project**](#start-from-an-existing-cloud-session) в меню боковой панели этой сессии.434* **Облачные сессии**: каждый поток — это [облачная сессия](https://code.claude.com/docs/ru/claude-code-on-the-web.md), если вы не попросите Claude запустить его на вашей машине. В любом случае Claude запускает и отслеживает его вместо вас. Вы также можете перенести в проект работу облачной сессии, которую запустили самостоятельно: выберите [**Continue in project**](#start-from-an-existing-cloud-session) в меню боковой панели этой сессии.

437* **Scheduled tasks**: когда вы запрашиваете запланированную работу в проекте, Claude создает [облачную запланированную задачу](https://code.claude.com/docs/ru/routines.md), которая выполняется как потоки в этом проекте и отображается на его вкладке **Scheduled tasks**. Запланированные задачи, которые вы создаете вне проекта, продолжают работать самостоятельно.435* **Запланированные задачи**: когда вы запрашиваете работу по расписанию в проекте, Claude создаёт [облачную запланированную задачу](https://code.claude.com/docs/ru/routines.md), которая выполняется в виде тредов в этом проекте и отображается в его представлении **Запланированные задачи**. Запланированные задачи, созданные вне проекта, продолжают работать самостоятельно.

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

439* **Локальные сессии и agent view**: сессия, которую вы запускаете самостоятельно в терминале, IDE или локальной среде настольного приложения, остается вне ваших проектов, хотя вы можете [перенести ее работу в проект](#start-from-an-existing-cloud-session). [Agent view](https://code.claude.com/docs/ru/agent-view.md) — это экран для отслеживания нескольких локальных сессий рядом, и вы по-прежнему сами запускаете каждую из них и даете ей задачу.437* **Локальные сессии и agent view**: сессия, которую вы запускаете самостоятельно в терминале, IDE или локальной среде настольного приложения, остается вне ваших проектов, хотя вы можете [перенести ее работу в проект](#start-from-an-existing-cloud-session). [Agent view](https://code.claude.com/docs/ru/agent-view.md) — это экран для отслеживания нескольких локальных сессий рядом, и вы по-прежнему сами запускаете каждую из них и даете ей задачу.

440* **Worktrees**: [worktree](https://code.claude.com/docs/ru/worktrees.md) дает каждой локальной сессии собственную рабочую копию репозитория. Облачным потокам они не нужны: каждый клонирует свои репозитории в собственную облачную песочницу и работает в собственной ветке.438* **Worktrees**: [worktree](https://code.claude.com/docs/ru/worktrees.md) дает каждой локальной сессии собственную рабочую копию репозитория. Облачным потокам они не нужны: каждый клонирует свои репозитории в собственную облачную песочницу и работает в собственной ветке.


466Когда несколько потоков возвращаются, имея предположено что-то неправильно, обошли отсутствующий доступ или остановились с "blocked", причина обычно одна и та же пробел в настройке проекта, а не проблема с каждой задачей. Отсортируйте, какие потоки звучат правильно, перед тем, как вы что-то исправляете:464Когда несколько потоков возвращаются, имея предположено что-то неправильно, обошли отсутствующий доступ или остановились с "blocked", причина обычно одна и та же пробел в настройке проекта, а не проблема с каждой задачей. Отсортируйте, какие потоки звучат правильно, перед тем, как вы что-то исправляете:

467 465 

4681. Попросите Claude в разговоре: "Для каждого открытого потока, перечислите, что вы просили его сделать, что он предположил или не мог достичь, и на что он ждет." Claude читает каждый поток и отвечает в разговоре.4661. Попросите Claude в разговоре: "Для каждого открытого потока, перечислите, что вы просили его сделать, что он предположил или не мог достичь, и на что он ждет." Claude читает каждый поток и отвечает в разговоре.

4692. Для потоков, которые начались с неправильного предположения, откройте поток из **Overview** и отметьте его разрешенным из его меню, или скажите ему, что делать вместо этого в его поле сообщения. Его ветка и любой pull request остаются на GitHub, пока вы их не удалите.4672. Для потоков, которые начались с неверного предположения, откройте поток из Overview и отметьте его как решенный через его меню или скажите ему, что делать вместо этого. Его ветка и любой pull request остаются на GitHub, пока вы их не удалите.

4703. Исправьте пробел один раз, в [инструкциях проекта](#give-a-project-standing-context) или [среде](#choose-an-environment-for-threads), затем отправьте один поток перед отправкой остальной работы снова как новые потоки.4683. Исправьте пробел один раз, в [инструкциях проекта](#give-a-project-standing-context) или [среде](#choose-an-environment-for-threads), затем отправьте один поток перед отправкой остальной работы снова как новые потоки.

471 469 

472### Claude не ответил470### Claude не ответил

Details

71 71 

72**2. Выберите, что сканировать**72**2. Выберите, что сканировать**

73 73 

74Плагин сначала читает ваш репозиторий, затем предлагает весь репозиторий или сосредоточенную область, с указанием количества файлов и относительной стоимости каждого варианта. Выберите весь репозиторий или ответьте "I don't know" и плагин выберет разумное значение по умолчанию для размера вашего репозитория.74Плагин сначала читает ваш репозиторий, затем предлагает весь репозиторий или сосредоточенную область. Выберите весь репозиторий или ответьте "I don't know", и плагин выберет разумное значение по умолчанию для размера вашего репозитория.

75 75 

76**3. Подтвердите запуск**76**3. Подтвердите запуск**

77 77 


79 79 

80**4. Прочитайте отчет**80**4. Прочитайте отчет**

81 81 

82Во время выполнения сканирования оно сообщает о каждом этапе при его запуске, с деталями, доступными в [`/workflows`](https://code.claude.com/docs/ru/workflows). Результаты попадают в каталог с временной меткой в вашем репозитории, описанный в [Прочитайте результаты сканирования](#read-the-scan-results).82Во время выполнения сканирования оно сообщает о каждом этапе при его запуске, с деталями, доступными в [`/workflows`](https://code.claude.com/docs/ru/workflows). Результаты записываются в каталог с временной меткой в вашем репозитории, описанный в [Прочитайте результаты сканирования](#read-the-scan-results).

83 83 

84**5. Преобразуйте результаты в патчи**84**5. Преобразуйте результаты в патчи**

85 85 

86Запустите `/claude-security` снова и выберите **Suggest patches**, затем выберите, какие результаты нужно решить. Проверенные патчи попадают в папку `patches/` отчета; [Исправьте результаты](#fix-findings) охватывает, как каждый патч создается и проверяется.86Запустите `/claude-security` снова и выберите **Suggest patches**, затем выберите, какие результаты нужно решить. Проверенные патчи записываются в папку `patches/` отчета; [Исправьте результаты](#fix-findings) охватывает, как каждый патч создается и проверяется.

87 87 

88**6. Примените принятые вами патчи**88**6. Примените принятые вами патчи**

89 89 

90Примените каждый патч из вашей оболочки с помощью `git apply` в его собственном запросе на слияние. Патчи никогда не применяются автоматически.90Примените каждый патч из вашей оболочки с помощью `git apply` в его собственном pull request. Патчи никогда не применяются автоматически.

91 91 

92Вам не нужно начинать с меню: попросите задачу напрямую, как аргументы команды, такие как `/claude-security scan my branch`, или на простом языке, такие как "scan commit abc1234". Плагин работает лучше всего в [режиме auto](https://code.claude.com/docs/ru/permission-modes.md), который позволяет агентам сканирования продолжать работу без запроса разрешения на каждом шаге.92Вам не нужно начинать с меню: попросите задачу напрямую, как аргументы команды, такие как `/claude-security scan my branch`, или на простом языке, такие как "scan commit abc1234". Плагин работает лучше всего в [режиме auto](https://code.claude.com/docs/ru/permission-modes.md), который позволяет агентам сканирования продолжать работу без запроса разрешения на каждом шаге.

93 93 


95 95 

96Когда ваша ветка имеет коммиты, которых нет в базе, меню `/claude-security` предлагает сканировать только этот diff, чтобы вы могли проверить ветку перед слиянием. Вы также можете сканировать один из ваших открытых запросов на слияние или отдельный коммит, попросив его, например "scan commit abc1234". Сканируются только зафиксированные изменения: сначала зафиксируйте или отложите текущие правки, или запустите полное сканирование, которое читает рабочее дерево.96Когда ваша ветка имеет коммиты, которых нет в базе, меню `/claude-security` предлагает сканировать только этот diff, чтобы вы могли проверить ветку перед слиянием. Вы также можете сканировать один из ваших открытых запросов на слияние или отдельный коммит, попросив его, например "scan commit abc1234". Сканируются только зафиксированные изменения: сначала зафиксируйте или отложите текущие правки, или запустите полное сканирование, которое читает рабочее дерево.

97 97 

98Сканирование изменений требует репозитория git; полное сканирование неверсионированного каталога все еще работает. Поиск ваших открытых запросов на слияние — это единственный шаг, который достигает сети, и он предлагается только когда ваш сеанс уже имеет разрешение на запуск GitHub CLI и `gh` вошел в систему.98Сканирование изменений требует репозитория git; полное сканирование неверсионированного каталога все еще работает. Поиск ваших открытых pull request предлагается только тогда, когда ваша сессия уже имеет разрешение на запуск GitHub CLI и в `gh` выполнен вход.

99 99 

100### Ограничьте область больших репозиториев100### Ограничьте область больших репозиториев

101 101 


120* **`CLAUDE-SECURITY-RESULTS.md`**: отчет с ID каждого результата, например `F1`, плюс его влияние, сценарий эксплуатации, серьезность, уверенность и рекомендация120* **`CLAUDE-SECURITY-RESULTS.md`**: отчет с ID каждого результата, например `F1`, плюс его влияние, сценарий эксплуатации, серьезность, уверенность и рекомендация

121* **`CLAUDE-SECURITY-RESULTS.jsonl`**: те же результаты в машиночитаемой форме, один объект JSON на строку121* **`CLAUDE-SECURITY-RESULTS.jsonl`**: те же результаты в машиночитаемой форме, один объект JSON на строку

122* **`CLAUDE-SECURITY-RESULTS.sarif`**: те же результаты как журнал [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) для сканирования кода GitHub и любого другого инструмента, который читает стандарт. Сканирование классифицирует результаты в соответствии с их категориями слабостей [CWE](https://cwe.mitre.org/)122* **`CLAUDE-SECURITY-RESULTS.sarif`**: те же результаты как журнал [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) для сканирования кода GitHub и любого другого инструмента, который читает стандарт. Сканирование классифицирует результаты в соответствии с их категориями слабостей [CWE](https://cwe.mitre.org/)

123* **`CLAUDE-SECURITY-REVISION-<commit>.json`**: штамп редакции, записывающий, какой коммит был отсканирован, с каким [уровнем усилий сканирования](#choose-a-scan-effort), были ли незафиксированные изменения частью отсканированного дерева и насколько тщательно был проверен запуск, поэтому отчет всегда привязан к коду, который он описывает. Сканирование вне контроля версий ставит `UNVERSIONED` вместо коммита123* **`CLAUDE-SECURITY-REVISION-<commit>.json`**: штамп редакции, записывающий, какой коммит был отсканирован, с каким [уровнем усилий сканирования](#choose-a-scan-effort), были ли незафиксированные изменения частью отсканированного дерева и насколько тщательно был проверен запуск. Сканирование вне контроля версий ставит `UNVERSIONED` вместо коммита

124 124 

125Этот каталог — единственное изменение, которое сканирование вносит в ваш checkout, и он имеет свой собственный `.gitignore`, поэтому случайный `git add` никогда не затянет отчет в коммит. Чтобы сохранить отчет в истории для аудита, удалите этот один файл `.gitignore` и зафиксируйте каталог как любой другой.125Этот каталог — единственное изменение, которое сканирование вносит в ваш checkout, и он имеет свой собственный `.gitignore`, поэтому случайный `git add` никогда не затянет отчет в коммит. Чтобы сохранить отчет в истории для аудита, удалите этот один файл `.gitignore` и зафиксируйте каталог как любой другой.

126 126 

127Результаты появляются в отчете только после того, как независимые агенты-верификаторы их анализируют, что делает отчеты краткими и стоящими прочтения. Сканирования недетерминированы: два сканирования одного и того же кода могут выявить разные результаты. Запускайте сканирования регулярно и используйте штампы редакции для привязки каждого отчета к точному коду и параметрам, которые он охватывал.127Результаты появляются в отчете только после того, как независимые агенты-верификаторы их анализируют, что делает отчеты краткими и стоящими прочтения. Сканирования недетерминированы: два сканирования одного и того же кода могут выявить разные результаты. Запускайте сканирования регулярно.

128 128 

129## Исправьте результаты129## Исправьте результаты

130 130 

Details

102* **Роль**: на любом плане вы можете добавлять и удалять секреты в своих собственных средах независимо от вашей роли. На Team и Enterprise пользователи с ролью Owner имеют роль администратора организации в вашей организации claude.ai, а пользователи с ролью Admin — нет, что меняет то, что вы видите в следующих случаях:102* **Роль**: на любом плане вы можете добавлять и удалять секреты в своих собственных средах независимо от вашей роли. На Team и Enterprise пользователи с ролью Owner имеют роль администратора организации в вашей организации claude.ai, а пользователи с ролью Admin — нет, что меняет то, что вы видите в следующих случаях:

103 * **Ваша собственная среда**: без роли администратора организации кнопка **Add secret** открывает [сокращённую форму](#add-a-secret-without-the-role)103 * **Ваша собственная среда**: без роли администратора организации кнопка **Add secret** открывает [сокращённую форму](#add-a-secret-without-the-role)

104 * **Общая среда**: пользователи с ролью Owner [добавляют и удаляют её секреты](#add-a-credential) в настройках администратора. Без роли администратора организации попросите пользователя с ролью Owner добавить секрет, потому что в диалоге среды нет раздела **Network secrets**104 * **Общая среда**: пользователи с ролью Owner [добавляют и удаляют её секреты](#add-a-credential) в настройках администратора. Без роли администратора организации попросите пользователя с ролью Owner добавить секрет, потому что в диалоге среды нет раздела **Network secrets**

105* **Тип среды**: облачная среда, размещённая Anthropic, которая уже существует. У [самостоятельно размещённой среды](https://code.claude.com/docs/ru/self-hosted-environments) нет сетевых секретов105* **Тип среды**: облачная среда, размещённая Anthropic. У [самостоятельно размещённой среды](https://code.claude.com/docs/ru/self-hosted-environments) нет сетевых секретов

106* **Доступность API**: API принимает соединения из интернета, потому что запросы выходят из сети Anthropic106* **Доступность API**: API принимает соединения из интернета, потому что запросы выходят из сети Anthropic

107* **Ключи шифрования**: если ваша организация использует управляемые клиентом ключи шифрования, вы не можете сохранять сетевые секреты107* **Ключи шифрования**: если ваша организация использует управляемые клиентом ключи шифрования, вы не можете сохранять сетевые секреты

108 108 

Details

14>14>

15> Чтобы каждый pull request в репозитории автоматически проходил ревью на GitHub, см. [Code Review](https://code.claude.com/docs/ru/code-review.md) — управляемый сервис, который владелец (Owner) включает для вашей организации.15> Чтобы каждый pull request в репозитории автоматически проходил ревью на GitHub, см. [Code Review](https://code.claude.com/docs/ru/code-review.md) — управляемый сервис, который владелец (Owner) включает для вашей организации.

16 16 

17`/review` — это псевдоним `/code-review`. До версии v2.1.223 `/review` была отдельной командой, которая выполняла однопроходное ревью pull request на GitHub в режиме только для чтения.17`/review` — это псевдоним `/code-review`.

18 18 

19**1. Запустите /code-review**19**1. Запустите /code-review**

20 20 


91* **`ultra`**: ревью не использует и не обновляет запомненный уровень91* **`ultra`**: ревью не использует и не обновляет запомненный уровень

92* **Уровень ни разу не вводился**: ревью использует текущий уровень effort сессии92* **Уровень ни разу не вводился**: ревью использует текущий уровень effort сессии

93 93 

94До версии v2.1.223 `/code-review` без уровня всегда использовала текущий уровень effort сессии.

95 

96### Публикация результатов в merge request на GitLab94### Публикация результатов в merge request на GitLab

97 95 

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

commands.md +2 −2

Details

104| `/install-github-app` | Установить Claude GitHub App для репозитория с необязательным шагом настройки workflow и секретов [GitHub Actions](https://code.claude.com/docs/ru/github-actions.md). Проводит вас через выбор репозитория и настройку интеграции. Работает только с репозиториями github.com. Если git remote вашего репозитория находится на gitlab.com или bitbucket.org, команда выводит уведомление и завершает работу вместо запуска настройки. Чтобы запускать Claude Code из пайплайнов GitLab, см. [GitLab CI/CD](https://code.claude.com/docs/ru/gitlab-ci-cd.md) |104| `/install-github-app` | Установить Claude GitHub App для репозитория с необязательным шагом настройки workflow и секретов [GitHub Actions](https://code.claude.com/docs/ru/github-actions.md). Проводит вас через выбор репозитория и настройку интеграции. Работает только с репозиториями github.com. Если git remote вашего репозитория находится на gitlab.com или bitbucket.org, команда выводит уведомление и завершает работу вместо запуска настройки. Чтобы запускать Claude Code из пайплайнов GitLab, см. [GitLab CI/CD](https://code.claude.com/docs/ru/gitlab-ci-cd.md) |

105| `/install-slack-app` | Установить приложение Claude для Slack. Открывает браузер для завершения процесса OAuth |105| `/install-slack-app` | Установить приложение Claude для Slack. Открывает браузер для завершения процесса OAuth |

106| `/keybindings` | Открыть файл [сочетаний клавиш](https://code.claude.com/docs/ru/keybindings.md) |106| `/keybindings` | Открыть файл [сочетаний клавиш](https://code.claude.com/docs/ru/keybindings.md) |

107| `/list-agents` | Показать список субагентов, участников [команды агентов](https://code.claude.com/docs/ru/agent-teams.md) и других сессий Claude Code, которым Claude может отправлять сообщения, с именем, которое нужно использовать для каждого из них. См. [обмен сообщениями между сессиями](https://code.claude.com/docs/ru/cross-session-messaging.md). Также доступно как `/peers`. Требуется Claude Code v2.1.224 или новее; более ранние версии сообщают `Unknown command: /list-agents`. Для строк участников команды и первой строки с собственным именем этой сессии требуется v2.1.239 или новее. Доступно только в сессиях, где [включён обмен сообщениями между сессиями](https://code.claude.com/docs/ru/cross-session-messaging.md#availability) |107| `/list-agents` | Показать список субагентов, участников [команды агентов](https://code.claude.com/docs/ru/agent-teams.md) и других сессий Claude Code, которым Claude может отправлять сообщения, с именем, которое нужно использовать для каждого из них. См. [обмен сообщениями между сессиями](https://code.claude.com/docs/ru/cross-session-messaging.md). Также доступно как `/peers`. Для строк участников команды и первой строки с собственным именем этой сессии требуется v2.1.239 или новее. Доступно только в сессиях, где [включён обмен сообщениями между сессиями](https://code.claude.com/docs/ru/cross-session-messaging.md#availability) |

108| `/login` | Войти в учётную запись Anthropic |108| `/login` | Войти в учётную запись Anthropic |

109| `/logout` | Выйти из учётной записи Anthropic |109| `/logout` | Выйти из учётной записи Anthropic |

110| `/loop [interval] [prompt]` | **[Скилл](https://code.claude.com/docs/ru/skills.md#bundled-skills).** Многократно запускать промпт, пока сессия остаётся открытой. Если не указать интервал, Claude [сам выбирает темп между итерациями](https://code.claude.com/docs/ru/scheduled-tasks.md#let-claude-choose-the-interval). Если не указать промпт, Claude запускает [встроенный промпт обслуживания](https://code.claude.com/docs/ru/scheduled-tasks.md#run-the-built-in-maintenance-prompt) или ваш [`loop.md`](https://code.claude.com/docs/ru/scheduled-tasks#customize-the-default-prompt-with-loop-md). Пример: `/loop 5m check if the deploy finished`. См. [Запуск промптов по расписанию](https://code.claude.com/docs/ru/scheduled-tasks.md). Псевдоним: `/proactive` |110| `/loop [interval] [prompt]` | **[Скилл](https://code.claude.com/docs/ru/skills.md#bundled-skills).** Многократно запускать промпт, пока сессия остаётся открытой. Если не указать интервал, Claude [сам выбирает темп между итерациями](https://code.claude.com/docs/ru/scheduled-tasks.md#let-claude-choose-the-interval). Если не указать промпт, Claude запускает [встроенный промпт обслуживания](https://code.claude.com/docs/ru/scheduled-tasks.md#run-the-built-in-maintenance-prompt) или ваш [`loop.md`](https://code.claude.com/docs/ru/scheduled-tasks#customize-the-default-prompt-with-loop-md). Пример: `/loop 5m check if the deploy finished`. См. [Запуск промптов по расписанию](https://code.claude.com/docs/ru/scheduled-tasks.md). Псевдоним: `/proactive` |


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

133| `/restart` | Перезапустить Claude Code и возобновить эту сессию, что применяет установленное обновление. Запускайте команду, когда нижняя строка предлагает это после установки обновления. Требуется тариф Pro, Max или Ultra и нативная установка на macOS или Linux, но не в WSL. Требуется Claude Code v2.1.288 или новее. Псевдоним: `/update` |133| `/restart` | Перезапустить Claude Code и возобновить эту сессию, что применяет установленное обновление. Запускайте команду, когда нижняя строка предлагает это после установки обновления. Требуется тариф Pro, Max или Ultra и нативная установка на macOS или Linux, но не в WSL. Требуется Claude Code v2.1.288 или новее. Псевдоним: `/update` |

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

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

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

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

138| `/run-skill-generator` | **[Скилл](https://code.claude.com/docs/ru/skills.md#bundled-skills).** Научить `/run` и `/verify` собирать и запускать приложение вашего проекта и управлять им в чистом окружении, написав [скилл](https://code.claude.com/docs/ru/skills.md#run-and-verify-your-app) для конкретного проекта |138| `/run-skill-generator` | **[Скилл](https://code.claude.com/docs/ru/skills.md#bundled-skills).** Научить `/run` и `/verify` собирать и запускать приложение вашего проекта и управлять им в чистом окружении, написав [скилл](https://code.claude.com/docs/ru/skills.md#run-and-verify-your-app) для конкретного проекта |

costs.md +6 −6

Details

292 292 

293Пользовательские [хуки](https://code.claude.com/docs/ru/hooks.md) могут предварительно обрабатывать данные перед тем, как Claude их увидит. Вместо того, чтобы Claude читал лог-файл из 10,000 строк для поиска ошибок, хук может выполнить grep для `ERROR` и вернуть только совпадающие строки, снижая контекст с десятков тысяч токенов до сотен.293Пользовательские [хуки](https://code.claude.com/docs/ru/hooks.md) могут предварительно обрабатывать данные перед тем, как Claude их увидит. Вместо того, чтобы Claude читал лог-файл из 10,000 строк для поиска ошибок, хук может выполнить grep для `ERROR` и вернуть только совпадающие строки, снижая контекст с десятков тысяч токенов до сотен.

294 294 

295[Скилл](https://code.claude.com/docs/ru/skills.md) может дать Claude знание предметной области, чтобы ему не пришлось исследовать. Например, скилл "codebase-overview" может описать архитектуру вашего проекта, ключевые директории и соглашения об именовании. Когда Claude вызывает скилл, он получает этот контекст немедленно вместо того, чтобы тратить токены на чтение нескольких файлов для понимания структуры.295Этот хук PreToolUse обрезает вывод тестов до последних 100 строк:

296 

297Например, этот хук PreToolUse фильтрует вывод тестов для отображения только сбоев:

298 296 

299> [tab] settings.json297> [tab] settings.json

300>298>


320 318 

321> [tab] filter-test-output.sh319> [tab] filter-test-output.sh

322>320>

323> Хук вызывает этот скрипт. Создайте папку с помощью `mkdir -p ~/.claude/hooks`, сохраните скрипт ниже как `~/.claude/hooks/filter-test-output.sh` и сделайте его исполняемым с помощью `chmod +x ~/.claude/hooks/filter-test-output.sh`. Он проверяет, является ли команда запуском тестов, и изменяет её для отображения только сбоев:321> Хук вызывает этот скрипт. Создайте папку с помощью `mkdir -p ~/.claude/hooks`, сохраните скрипт ниже как `~/.claude/hooks/filter-test-output.sh` и сделайте его исполняемым с помощью `chmod +x ~/.claude/hooks/filter-test-output.sh`. Он проверяет, является ли команда запуском тестов, и если да, оставляет только последние 100 строк её вывода:

324>322>

325> ```bash theme={null}323> ```bash theme={null}

326> #!/bin/bash324> #!/bin/bash

327> input=$(cat)325> input=$(cat)

328> cmd=$(echo "$input" | jq -r '.tool_input.command')326> cmd=$(echo "$input" | jq -r '.tool_input.command')

329>327>

330> # If running tests, filter to show only failures328> # If running tests, keep only the last 100 lines

331> pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'329> pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'

332> if [[ "$cmd" =~ $pattern ]]; then330> if [[ "$cmd" =~ $pattern ]]; then

333> filtered_cmd="$cmd 2>&1 | grep -A 5 -E '(FAIL|ERROR|error:)' | head -100"331> filtered_cmd="$cmd 2>&1 | tail -n 100"

334> echo "$input" | jq --arg filtered "$filtered_cmd" \332> echo "$input" | jq --arg filtered "$filtered_cmd" \

335> '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'333> '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'

336> else334> else


340 338 

341Для проверки настройки запустите `/hooks` и проверьте, что хук появляется под PreToolUse. Вы также можете запустить Claude Code с помощью `claude --debug-file ./claude-debug.txt` и попросить Claude запустить `npm test`. Когда хук переписывает команду, этот лог-файл содержит строку `modified tool input keys`, в которой указаны `command` и другие поля ввода Bash.339Для проверки настройки запустите `/hooks` и проверьте, что хук появляется под PreToolUse. Вы также можете запустить Claude Code с помощью `claude --debug-file ./claude-debug.txt` и попросить Claude запустить `npm test`. Когда хук переписывает команду, этот лог-файл содержит строку `modified tool input keys`, в которой указаны `command` и другие поля ввода Bash.

342 340 

341[Скилл](https://code.claude.com/docs/ru/skills.md) может дать Claude знание предметной области, чтобы ему не пришлось исследовать. Например, скилл "codebase-overview" может описать архитектуру вашего проекта, ключевые директории и соглашения об именовании. Когда Claude вызывает скилл, он получает этот контекст немедленно вместо того, чтобы тратить токены на чтение нескольких файлов для понимания структуры.

342 

343### Переместите инструкции из CLAUDE.md в скиллы343### Переместите инструкции из CLAUDE.md в скиллы

344 344 

345Ваш файл [CLAUDE.md](https://code.claude.com/docs/ru/memory.md) загружается в контекст при запуске сессии. Если он содержит подробные инструкции для конкретных рабочих процессов (такие как ревью PR или миграции баз данных), эти токены присутствуют даже когда вы выполняете несвязанную работу. [Скиллы](https://code.claude.com/docs/ru/skills.md) загружаются по требованию только при вызове, поэтому перемещение специализированных инструкций в скиллы сохраняет ваш базовый контекст меньшим. Стремитесь сохранять CLAUDE.md под 200 строк, включая только необходимое.345Ваш файл [CLAUDE.md](https://code.claude.com/docs/ru/memory.md) загружается в контекст при запуске сессии. Если он содержит подробные инструкции для конкретных рабочих процессов (такие как ревью PR или миграции баз данных), эти токены присутствуют даже когда вы выполняете несвязанную работу. [Скиллы](https://code.claude.com/docs/ru/skills.md) загружаются по требованию только при вызове, поэтому перемещение специализированных инструкций в скиллы сохраняет ваш базовый контекст меньшим. Стремитесь сохранять CLAUDE.md под 200 строк, включая только необходимое.

Details

56 56 

57### Доставка сообщений57### Доставка сообщений

58 58 

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

60 60 

61Сообщение от другой сессии приходит как обычный текст. Если в нём с помощью `@` упоминается файл или [ресурс MCP](https://code.claude.com/docs/ru/mcp.md#use-mcp-resources), Claude видит упоминание в исходном виде, а Claude Code ничего не прикрепляет, независимо от того, начинает ли сообщение новый ход или приходит во время хода. Claude по-прежнему может открыть упомянутый путь на принимающем компьютере своими инструментами в рамках разрешений этой сессии.61Сообщение от другой сессии приходит как обычный текст. Если в нём с помощью `@` упоминается файл или [ресурс MCP](https://code.claude.com/docs/ru/mcp.md#use-mcp-resources), Claude видит упоминание в исходном виде, а Claude Code ничего не прикрепляет, независимо от того, начинает ли сообщение новый ход или приходит во время хода. Claude по-прежнему может открыть упомянутый путь на принимающем компьютере своими инструментами в рамках разрешений этой сессии.

62 62 

desktop.md +4 −4

Details

256 256 

257### Сворачивание панели257### Сворачивание панели

258 258 

259Чтобы держать Terminal, Browser или [iOS Simulator](https://code.claude.com/docs/ru/desktop-ios-simulator.md) на виду в уменьшенном размере, нажмите **Minimize** в заголовке панели. Для этой кнопки требуется Claude Desktop v4.0.0 или более поздней версии и учётная запись Claude, а не [сторонний провайдер](https://code.claude.com/docs/ru/third-party-integrations.md). В панели Browser она есть только в локальных сессиях.259Чтобы держать Terminal, Browser, [iOS Simulator](https://code.claude.com/docs/ru/desktop-ios-simulator.md) или [боковой чат](#ask-a-side-question-without-derailing-the-session) на виду в уменьшенном размере, нажмите **Minimize** в заголовке панели. Для этой кнопки требуется Claude Desktop v4.0.0 или более поздней версии и учётная запись Claude, а не [сторонний провайдер](https://code.claude.com/docs/ru/third-party-integrations.md). В панели Browser она есть только в локальных сессиях.

260 260 

261Свёрнутая панель располагается в [панели сведений о сессии](#see-session-details), пока та отображается на экране, а в противном случае плавает в углу чата:261Свёрнутая панель располагается в [панели сведений о сессии](#see-session-details), пока та отображается на экране, а в противном случае плавает в углу чата:

262 262 


1380* **Workflows**: Desktop проверяет каждый новый [workflow](https://code.claude.com/docs/ru/workflows.md) перед его запуском, поэтому, пока Desktop отключён, новый workflow ожидает до 10 минут, а затем завершается ошибкой1380* **Workflows**: Desktop проверяет каждый новый [workflow](https://code.claude.com/docs/ru/workflows.md) перед его запуском, поэтому, пока Desktop отключён, новый workflow ожидает до 10 минут, а затем завершается ошибкой

1381* **MCP-серверы**: MCP-серверы, которые Claude Code запускает на удалённой машине, работают не через Desktop, поэтому Claude по-прежнему может вызывать их инструменты. Серверы из `claude_desktop_config.json` относятся к ним, только если Desktop не использует свой [встроенный SSH-клиент](#worktree-edits-while-disconnected). В противном случае, а также на [некоторых удалённых машинах с Windows](#windows-remote-machines), Claude не может вызывать их инструменты, пока Desktop отключён.1381* **MCP-серверы**: MCP-серверы, которые Claude Code запускает на удалённой машине, работают не через Desktop, поэтому Claude по-прежнему может вызывать их инструменты. Серверы из `claude_desktop_config.json` относятся к ним, только если Desktop не использует свой [встроенный SSH-клиент](#worktree-edits-while-disconnected). В противном случае, а также на [некоторых удалённых машинах с Windows](#windows-remote-machines), Claude не может вызывать их инструменты, пока Desktop отключён.

1382 1382 

1383> [accordion] Когда изменения в worktree продолжают работать1383> [accordion] Когда правки в worktree продолжают работать

1384>1384>

1385> На удалённой машине с Linux или macOS проверка не проходит через Desktop, поэтому изменения внутри worktree продолжают работать, пока Desktop отключён. До Claude Desktop v2.37337.0 это справедливо только для удалённой машины с Linux.1385> На удалённой машине с Linux или macOS правки внутри worktree могут продолжать работать, пока Desktop отключён, потому что проверка каждой правки может выполняться без Desktop. До [Claude Desktop v2.37337.0](#check-your-version) это работает только на удалённой машине с Linux.

1386>1386>

1387> В некоторых случаях изменения всё равно завершаются ошибкой, в том числе в следующих:1387> В некоторых случаях изменения всё равно завершаются ошибкой, в том числе в следующих:

1388>1388>


2050 2050 

2051* **Локальные сессии на этой машине**: применяется файл управляемых настроек, развёрнутый на диске. Управляемые настройки, отправленные удалённо через консоль администратора, также доходят до этих сессий в API Anthropic, когда сессия проходит аутентификацию с помощью [подходящего входа](https://code.claude.com/docs/ru/server-managed-settings.md#platform-availability), с тем же [приоритетом настроек](https://code.claude.com/docs/ru/settings.md#settings-precedence), что и в CLI в терминале.2051* **Локальные сессии на этой машине**: применяется файл управляемых настроек, развёрнутый на диске. Управляемые настройки, отправленные удалённо через консоль администратора, также доходят до этих сессий в API Anthropic, когда сессия проходит аутентификацию с помощью [подходящего входа](https://code.claude.com/docs/ru/server-managed-settings.md#platform-availability), с тем же [приоритетом настроек](https://code.claude.com/docs/ru/settings.md#settings-precedence), что и в CLI в терминале.

2052* **[Облачные сессии](#cloud-sessions)**: получают [настройки, управляемые сервером](https://code.claude.com/docs/ru/server-managed-settings.md); файлы, развёрнутые на устройстве, до них не доходят, поскольку такие сессии выполняются на виртуальных машинах под управлением Anthropic. Сессии, направленные в [самостоятельно размещённое окружение](https://code.claude.com/docs/ru/self-hosted-environments), также читают файл управляемых настроек в образе runner. В разделе [Как Claude Code объединяет управляемые источники](https://code.claude.com/docs/ru/managed-settings.md#how-claude-code-combines-managed-sources) описано, когда этот файл применяется.2052* **[Облачные сессии](#cloud-sessions)**: получают [настройки, управляемые сервером](https://code.claude.com/docs/ru/server-managed-settings.md); файлы, развёрнутые на устройстве, до них не доходят, поскольку такие сессии выполняются на виртуальных машинах под управлением Anthropic. Сессии, направленные в [самостоятельно размещённое окружение](https://code.claude.com/docs/ru/self-hosted-environments), также читают файл управляемых настроек в образе runner. В разделе [Как Claude Code объединяет управляемые источники](https://code.claude.com/docs/ru/managed-settings.md#how-claude-code-combines-managed-sources) описано, когда этот файл применяется.

2053* **[SSH-сессии](#ssh-sessions)**: сессия читает файл управляемых настроек с удалённого хоста. Сам Desktop читает `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords` и `disableDesktopLocalSessions` на локальной машине. Если вы доставляете более одного управляемого источника, он по умолчанию читает их [только из одного](https://code.claude.com/docs/ru/managed-settings.md#how-claude-code-combines-managed-sources).2053* **[SSH-сессии](#ssh-sessions)**: сессия читает файл управляемых настроек с удалённого хоста. Сам Desktop читает `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords` и `disableDesktopLocalSessions` на локальной машине. Если вы доставляете более одного управляемого источника, он по умолчанию читает их [только из одного](https://code.claude.com/docs/ru/managed-settings.md#how-claude-code-combines-managed-sources). Если вы задаёте `permissions.disableBypassPermissionsMode` или `disableAutoMode` в управляемых настройках, действующих на локальной машине, селектор режимов SSH-сессии не предлагает этот режим, что бы ни задавал удалённый хост.

2054* **Сессии [Cowork](https://claude.com/docs/cowork/overview)**: в сессии Cowork на этой машине Claude Code никогда не получает настройки консоли администратора, даже если пользователь входит с учётной записью Team или Enterprise, и читает политику, развёрнутую на машине, если только ваша конфигурация Claude Desktop не задаёт `requireCoworkFullVmSandbox`. Удалённые сессии Cowork не получают ни то, ни другое. О том, какие файлы устройства доходят до Cowork, см. [где и когда применяется политика](https://code.claude.com/docs/ru/managed-settings.md#where-and-when-a-policy-applies), а о том, как правила `Bash` и `WebFetch` применяются к инструментам Cowork, — [правила разрешений MCP](https://code.claude.com/docs/ru/permissions.md#mcp).2054* **Сессии [Cowork](https://claude.com/docs/cowork/overview)**: в сессии Cowork на этой машине Claude Code никогда не получает настройки консоли администратора, даже если пользователь входит с учётной записью Team или Enterprise, и читает политику, развёрнутую на машине, если только ваша конфигурация Claude Desktop не задаёт `requireCoworkFullVmSandbox`. Удалённые сессии Cowork не получают ни то, ни другое. О том, какие файлы устройства доходят до Cowork, см. [где и когда применяется политика](https://code.claude.com/docs/ru/managed-settings.md#where-and-when-a-policy-applies), а о том, как правила `Bash` и `WebFetch` применяются к инструментам Cowork, — [правила разрешений MCP](https://code.claude.com/docs/ru/permissions.md#mcp).

2055 2055 

2056В локальных и SSH-сессиях приложение desktop передаёт подключённые коннекторы claude.ai каждого пользователя напрямую в Claude Code. Ни одна настройка MCP и ни один `managed-mcp.json` не влияют на эти коннекторы, какой бы источник настроек или расположение файла вы ни использовали. Чтобы заблокировать инструменты коннектора в этих сессиях, используйте [элементы управления инструментами коннекторов](https://code.claude.com/docs/ru/mcp.md#organization-controls-on-connector-tools) вашей организации. В разделе [Как коннекторы попадают в Claude Code](https://code.claude.com/docs/ru/mcp.md#how-connectors-reach-claude-code) показано, какие настройки управляют коннекторами в каждом виде сессий.2056В локальных и SSH-сессиях приложение desktop передаёт подключённые коннекторы claude.ai каждого пользователя напрямую в Claude Code. Ни одна настройка MCP и ни один `managed-mcp.json` не влияют на эти коннекторы, какой бы источник настроек или расположение файла вы ни использовали. Чтобы заблокировать инструменты коннектора в этих сессиях, используйте [элементы управления инструментами коннекторов](https://code.claude.com/docs/ru/mcp.md#organization-controls-on-connector-tools) вашей организации. В разделе [Как коннекторы попадают в Claude Code](https://code.claude.com/docs/ru/mcp.md#how-connectors-reach-claude-code) показано, какие настройки управляют коннекторами в каждом виде сессий.

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> Панель iOS Simulator находится в публичной бета-версии в Claude Code Desktop на macOS. Она доступна в планах Pro, Max, Ultra, Team и Enterprise, за исключением организаций Enterprise с включённой конфигурацией HIPAA.11> Панель iOS Simulator находится в публичной бета-версии в Claude Code Desktop на macOS. Она доступна в планах Pro, Max, Ultra, Team и Enterprise, за исключением организаций Enterprise с включённой конфигурацией HIPAA. Она недоступна, если вы используете [стороннего провайдера](https://code.claude.com/docs/ru/third-party-integrations.md).

12 12 

13Панель iOS Simulator показывает ваше приложение, работающее в Apple iOS Simulator рядом с вашей беседой в Claude Code Desktop. Когда Claude собирает, устанавливает, запускает или проверяет ваше приложение в симуляторе, панель открывается автоматически и транслирует экран устройства в реальном времени. Используйте её, чтобы наблюдать, как Claude запускает и тестирует ваше приложение, или чтобы самостоятельно взаимодействовать с приложением, пока Claude продолжает работать.13Панель iOS Simulator показывает ваше приложение, работающее в Apple iOS Simulator рядом с вашей беседой в Claude Code Desktop. Когда Claude собирает, устанавливает, запускает или проверяет ваше приложение в симуляторе, панель открывается автоматически и транслирует экран устройства в реальном времени. Используйте её, чтобы наблюдать, как Claude запускает и тестирует ваше приложение, или чтобы самостоятельно взаимодействовать с приложением, пока Claude продолжает работать.

14 14 


147* Явно укажите цель, например "запустите приложение в iOS Simulator и взаимодействуйте с потоком регистрации".147* Явно укажите цель, например "запустите приложение в iOS Simulator и взаимодействуйте с потоком регистрации".

148* Подтвердите, что Xcode и iOS симуляторы установлены и что ваша версия Xcode соответствует [требованиям](#requirements).148* Подтвердите, что Xcode и iOS симуляторы установлены и что ваша версия Xcode соответствует [требованиям](#requirements).

149* Если ваша организация управляет Claude Code, [инструменты симулятора могут быть отключены политикой](#turn-off-simulator-access).149* Если ваша организация управляет Claude Code, [инструменты симулятора могут быть отключены политикой](#turn-off-simulator-access).

150* Если вы находитесь в организации Enterprise с включённой конфигурацией HIPAA, панель симулятора вам недоступна.150* Если вы находитесь в организации Enterprise с включённой конфигурацией HIPAA или используете [стороннего провайдера](https://code.claude.com/docs/ru/third-party-integrations.md), панель симулятора вам недоступна.

151* Панель симулятора требует Claude Desktop v1.24012.0 или позже. Откройте **Claude > Check for Updates…**, затем перезагрузите приложение.151* Панель симулятора требует Claude Desktop v1.24012.0 или позже. Откройте **Claude > Check for Updates…**, затем перезагрузите приложение.

152 152 

153### Панель симулятора говорит, что симуляторы не найдены153### Панель симулятора говорит, что симуляторы не найдены

env-vars.md +5 −5

Details

204| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Установите `0`, чтобы Claude Code не открывал браузер автоматически при публикации нового [артефакта](https://code.claude.com/docs/ru/artifacts.md#create-an-artifact) |204| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Установите `0`, чтобы Claude Code не открывал браузер автоматически при публикации нового [артефакта](https://code.claude.com/docs/ru/artifacts.md#create-an-artifact) |

205| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Установите `0`, чтобы Claude не читал [комментарии к артефакту](https://code.claude.com/docs/ru/artifacts.md#collect-comments-on-an-artifact) и не отвечал на них. Не действует, если `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [отключила артефакты](https://code.claude.com/docs/ru/artifacts.md#availability). Требуется Claude Code v2.1.221 или новее |205| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Установите `0`, чтобы Claude не читал [комментарии к артефакту](https://code.claude.com/docs/ru/artifacts.md#collect-comments-on-an-artifact) и не отвечал на них. Не действует, если `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [отключила артефакты](https://code.claude.com/docs/ru/artifacts.md#availability). Требуется Claude Code v2.1.221 или новее |

206| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Установите `0`, чтобы Claude [не отвечал самостоятельно на адресованные ему комментарии](https://code.claude.com/docs/ru/artifacts.md#let-claude-reply-to-comments-on-its-own). Требуется Claude Code v2.1.228 или новее |206| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Установите `0`, чтобы Claude [не отвечал самостоятельно на адресованные ему комментарии](https://code.claude.com/docs/ru/artifacts.md#let-claude-reply-to-comments-on-its-own). Требуется Claude Code v2.1.228 или новее |

207| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Установите `0`, чтобы Claude не вносил небольшие изменения в файл [артефакта](https://code.claude.com/docs/ru/artifacts.md#update-an-artifact) в процессе его публикации. В этом случае Claude редактирует файл своими инструментами редактирования файлов и публикует его отдельным шагом. Требуется Claude Code v2.1.300 или новее |207| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Установите `0`, чтобы Claude не [вносил небольшие изменения](https://code.claude.com/docs/ru/artifacts.md#turn-off-one-step-artifact-updates) в файл артефакта в ходе его публикации. Тогда Claude редактирует файл своими инструментами редактирования файлов и публикует его отдельным шагом. Требуется Claude Code v2.1.300 или новее |

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

209| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Удалена в v2.1.283. Используйте вместо неё `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |209| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Удалена в v2.1.283. Используйте вместо неё `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |

210| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Задаёт окно автосжатия, то есть насколько заполняется контекст перед сжатием, от `100000` до `1000000` токенов. Значения с суффиксами, например `200k`, требуют v2.1.304 или новее. О приоритете над другими способами задания окна и о влиянии на `used_percentage` в строке состояния см. [Задание окна автосжатия](https://code.claude.com/docs/ru/model-config.md#set-the-auto-compact-window) |210| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Задаёт окно автосжатия, то есть насколько заполняется контекст перед сжатием, от `100000` до `1000000` токенов. Значения с суффиксами, например `200k`, требуют v2.1.304 или новее. О приоритете над другими способами задания окна и о влиянии на `used_percentage` в строке состояния см. [Задание окна автосжатия](https://code.claude.com/docs/ru/model-config.md#set-the-auto-compact-window) |


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

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

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

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

506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Установите значение `true`, чтобы включить точку входа сессии в атрибуты метрик (по умолчанию: исключена). Добавлено в v2.1.152. См. [Мониторинг](https://code.claude.com/docs/ru/monitoring-usage.md) |506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Задайте `true`, чтобы включать точку входа сессии в атрибуты метрик и событий (по умолчанию: исключается). Добавлено в v2.1.152. См. [Мониторинг](https://code.claude.com/docs/ru/monitoring-usage.md) |

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

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

509| `OTEL_METRICS_INCLUDE_SESSION_ID` | Установите значение `false`, чтобы исключить идентификатор сессии из атрибутов метрик (по умолчанию: включён). См. [Мониторинг](https://code.claude.com/docs/ru/monitoring-usage.md) |509| `OTEL_METRICS_INCLUDE_SESSION_ID` | Задайте `false`, чтобы исключить ID сессии из атрибутов метрик и событий (по умолчанию: включается). См. [Мониторинг](https://code.claude.com/docs/ru/monitoring-usage.md) |

510| `OTEL_METRICS_INCLUDE_VERSION` | Установите значение `true`, чтобы включить версию Claude Code в атрибуты метрик (по умолчанию: исключена). См. [Мониторинг](https://code.claude.com/docs/ru/monitoring-usage.md) |510| `OTEL_METRICS_INCLUDE_VERSION` | Задайте `true`, чтобы включать версию Claude Code в атрибуты метрик и событий (по умолчанию: исключается). См. [Мониторинг](https://code.claude.com/docs/ru/monitoring-usage.md) |

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

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

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

errors.md +138 −16

Details

104| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentication](#login-expired) |104| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentication](#login-expired) |

105| `Could not refresh your login because another Claude Code process is refreshing it` | [Authentication](#could-not-refresh-your-login) |105| `Could not refresh your login because another Claude Code process is refreshing it` | [Authentication](#could-not-refresh-your-login) |

106| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [Authentication](#could-not-refresh-your-login) |106| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [Authentication](#could-not-refresh-your-login) |

107| `Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full` | [Аутентификация](#could-not-refresh-your-login-disk-full) |

108| `Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full` | [Аутентификация](#could-not-refresh-your-login-disk-full) |

107| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |109| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |

108| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |110| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |

109| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) |111| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) |


242| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Command-line errors](#the-current-directory-no-longer-exists) |244| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Command-line errors](#the-current-directory-no-longer-exists) |

243| `Temp directory <dir> ... Refusing to use it` / `Claude Code's temporary directory <dir> could not be created` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |245| `Temp directory <dir> ... Refusing to use it` / `Claude Code's temporary directory <dir> could not be created` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |

244| `ENOSPC: no space left on device, mkdir '<dir>'` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |246| `ENOSPC: no space left on device, mkdir '<dir>'` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |

247| `Error: Claude Code could not save ... because the disk is full (ENOSPC)` / `because your disk quota is used up (EDQUOT)` | [Ошибки командной строки](#could-not-save-because-the-disk-is-full) |

245| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) |248| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) |

246| `Error: Workspace not trusted` when starting Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) |249| `Error: Workspace not trusted` when starting Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) |

247| `Error: Workspace not trusted` при запуске `claude ultrareview` | [Command-line errors](#workspace-not-trusted-when-running-claude-ultrareview) |250| `Error: Workspace not trusted` при запуске `claude ultrareview` | [Command-line errors](#workspace-not-trusted-when-running-claude-ultrareview) |

248| `Ultrareview did not start` | [Command-line errors](#ultrareview-did-not-start) |251| `Ultrareview did not start` | [Command-line errors](#ultrareview-did-not-start) |

252| `Remote Control did not start: "<question>" got no answer` | [Ошибки командной строки](#remote-control-did-not-start-got-no-answer) |

249| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) |253| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) |

250| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Command-line errors](#sandbox-is-not-supported-by-claude-remote-control) |254| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Command-line errors](#sandbox-is-not-supported-by-claude-remote-control) |

251| `` `claude import` is not yet available in this build `` | [Command-line errors](#claude-import-is-not-yet-available-in-this-build) |255| `` `claude import` is not yet available in this build `` | [Command-line errors](#claude-import-is-not-yet-available-in-this-build) |


320| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Plugin troubleshooting](https://code.claude.com/docs/ru/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed) |324| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Plugin troubleshooting](https://code.claude.com/docs/ru/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed) |

321| `does not load (...), so Claude Code ignores the whole file` | [Plugin troubleshooting](https://code.claude.com/docs/ru/plugins/troubleshooting.md#does-not-load-so-claude-code-ignores-the-whole-file) |325| `does not load (...), so Claude Code ignores the whole file` | [Plugin troubleshooting](https://code.claude.com/docs/ru/plugins/troubleshooting.md#does-not-load-so-claude-code-ignores-the-whole-file) |

322| `path escapes plugin directory` | [Plugin errors](#path-escapes-plugin-directory) |326| `path escapes plugin directory` | [Plugin errors](#path-escapes-plugin-directory) |

327| `path not read: <path> is absolute or has a ".." part` | [Ошибки плагинов](#server-file-path-not-read) |

323| `Plugin not loaded: its manifest <path> was not read` | [Plugin errors](#plugin-not-loaded-its-manifest-was-not-read) |328| `Plugin not loaded: its manifest <path> was not read` | [Plugin errors](#plugin-not-loaded-its-manifest-was-not-read) |

324| `path could not be checked` | [Plugin errors](#path-could-not-be-checked) |329| `path could not be checked` | [Plugin errors](#path-could-not-be-checked) |

325| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |330| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


368| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [Tool errors](#refusing-after-a-symlink-changed) |373| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [Tool errors](#refusing-after-a-symlink-changed) |

369| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Tool errors](#refusing-after-a-symlink-changed) |374| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Tool errors](#refusing-after-a-symlink-changed) |

370| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Tool errors](#refusing-after-a-symlink-changed) |375| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Tool errors](#refusing-after-a-symlink-changed) |

376| `The search failed, so this is not a "no matches" result: matches may exist` | [Ошибки инструментов](#the-search-failed) |

371| `task output swap refused (tasks dir moved or linked)` | [Tool errors](#task-output-swap-refused) |377| `task output swap refused (tasks dir moved or linked)` | [Tool errors](#task-output-swap-refused) |

372| `Command killed: its output file was replaced or could no longer be verified` | [Tool errors](#task-output-swap-refused) |378| `Command killed: its output file was replaced or could no longer be verified` | [Tool errors](#task-output-swap-refused) |

373| `Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free` / `Nearly out of inodes: this computer's volume holding <dir>` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |379| `Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free` / `Nearly out of inodes: this computer's volume holding <dir>` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |


377| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |383| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |

378| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Tool errors](#file-is-not-valid-utf-8) |384| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Tool errors](#file-is-not-valid-utf-8) |

379| `git is not installed on this Mac. To install it, run xcode-select --install, then try again.` | [Ошибки инструментов](#git-is-not-installed-on-this-mac) |385| `git is not installed on this Mac. To install it, run xcode-select --install, then try again.` | [Ошибки инструментов](#git-is-not-installed-on-this-mac) |

386| `Refusing to apply edits to <path>: a hook is configured for file edits in this session` | [Ошибки инструментов](#a-hook-is-configured-for-file-edits) |

380| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |387| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |

381| `the source file has the replacement character U+FFFD` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |388| `the source file has the replacement character U+FFFD` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |

382| `Not published: that file is on a network share` | [Tool errors](#not-published-that-file-is-on-a-network-share) |389| `Not published: that file is on a network share` | [Tool errors](#not-published-that-file-is-on-a-network-share) |


387| `The safety check for domain ... is rate-limited` | [Tool errors](#webfetch-domain-safety-check-failed) |394| `The safety check for domain ... is rate-limited` | [Tool errors](#webfetch-domain-safety-check-failed) |

388| `The safety check for domain ... is temporarily rate-limited` | [Tool errors](#webfetch-domain-safety-check-failed) |395| `The safety check for domain ... is temporarily rate-limited` | [Tool errors](#webfetch-domain-safety-check-failed) |

389| `Unable to verify if domain ... is safe to fetch` | [Tool errors](#webfetch-domain-safety-check-failed) |396| `Unable to verify if domain ... is safe to fetch` | [Tool errors](#webfetch-domain-safety-check-failed) |

397| `MCP tool "<tool>" on server "<server>" gave no answer that could be read` / `answered without its text` | [Как читается результат хука MCP-инструмента](https://code.claude.com/docs/ru/hooks.md#how-the-tools-result-is-read) |

390| `Can't open MCP settings while no terminal is attached to this background session` | [Background session errors](#commands-refused-in-a-background-session) |398| `Can't open MCP settings while no terminal is attached to this background session` | [Background session errors](#commands-refused-in-a-background-session) |

391| `Can't open MCP settings in a background session` | [Background session errors](#commands-refused-in-a-background-session) |399| `Can't open MCP settings in a background session` | [Background session errors](#commands-refused-in-a-background-session) |

392| `blocked because the path is spelled in a form that cannot be safely resolved` | [Background session errors](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |400| `blocked because the path is spelled in a form that cannot be safely resolved` | [Background session errors](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |


397| `Can't open — this session is running in another terminal` | [Background session errors](#this-session-is-running-in-another-terminal) |405| `Can't open — this session is running in another terminal` | [Background session errors](#this-session-is-running-in-another-terminal) |

398| `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) |406| `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) |

399| `This session's saved conversation is no longer on disk` | [Background session errors](#this-sessions-saved-conversation-is-no-longer-on-disk) |407| `This session's saved conversation is no longer on disk` | [Background session errors](#this-sessions-saved-conversation-is-no-longer-on-disk) |

408| `This forked session could not be started. Fork the conversation again to retry.` | [Ошибки фоновых сессий](#this-forked-session-could-not-be-started) |

400| `Bypass permissions was requested at launch and ignored` | [Режим bypassPermissions игнорируется в фоновой сессии](https://code.claude.com/docs/ru/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |409| `Bypass permissions was requested at launch and ignored` | [Режим bypassPermissions игнорируется в фоновой сессии](https://code.claude.com/docs/ru/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |

401| `kept <id> — its worktree is still at <path>` | [Ошибки фоновых сессий](#worktree-has-commits-that-are-not-pushed-anywhere), если в следующей строке сообщения упоминаются неотправленные коммиты, иначе [Что удаляется при удалении сессии](https://code.claude.com/docs/ru/agent-view.md#what-deleting-a-session-removes) |410| `kept <id> — its worktree is still at <path>` | [Ошибки фоновых сессий](#worktree-has-commits-that-are-not-pushed-anywhere), если в следующей строке сообщения упоминаются неотправленные коммиты, иначе [Что удаляется при удалении сессии](https://code.claude.com/docs/ru/agent-view.md#what-deleting-a-session-removes) |

402| `kept <id> — <n> unpushed commits on <branch>` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |411| `kept <id> — <n> unpushed commits on <branch>` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |


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

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

550| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](https://code.claude.com/docs/ru/env-vars) | не установлено | Максимальное время в миллисекундах, которое каждый запрос к API тратит на ожидание при ошибках `429` и `529`, когда установлена `CLAUDE_CODE_RETRY_WATCHDOG`. Если переменная не установлена, время ожидания не ограничено. Требуется Claude Code v2.1.295 или позже. |559| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](https://code.claude.com/docs/ru/env-vars) | не установлено | Максимальное время в миллисекундах, которое каждый запрос к API тратит на ожидание при ошибках `429` и `529`, когда установлена `CLAUDE_CODE_RETRY_WATCHDOG`. Если переменная не установлена, время ожидания не ограничено. Требуется Claude Code v2.1.295 или позже. |

560| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS` | без ограничения | При установленной `CLAUDE_CODE_RETRY_WATCHDOG` — максимальное время в миллисекундах, в течение которого один запрос ожидает сброса [лимита использования](#youve-hit-your-session-limit) вашего плана, например сессионного или недельного лимита. Если до сброса остаётся больше этого предела, запрос сразу завершается с ошибкой, если только у кредитов использования нет запаса или API не удалось их проверить. В этих случаях попытка повторяется, а запрос завершается с ошибкой, если предел истекает до успешного выполнения. Требуется Claude Code v2.1.301 или позже. |

551| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](https://code.claude.com/docs/ru/env-vars) | не установлено | Минимальный интервал в миллисекундах между проверками того, не был ли [лимит использования](#youve-hit-your-session-limit) уже снят, пока запрос ожидает сброса этого лимита при установленной `CLAUDE_CODE_RETRY_WATCHDOG`. Когда проверка обнаруживает, что лимит снят, запрос отправляется сразу. Укажите значение только цифрами, от `60000` до `10800000`. Если переменная не установлена или значение выходит за пределы этого диапазона, проверки не выполняются. О том, когда Claude Code пропускает эти проверки, см. [справочник по переменным окружения](https://code.claude.com/docs/ru/env-vars.md). Требуется Claude Code v2.1.305 или позже. |561| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](https://code.claude.com/docs/ru/env-vars) | не установлено | Минимальный интервал в миллисекундах между проверками того, не был ли [лимит использования](#youve-hit-your-session-limit) уже снят, пока запрос ожидает сброса этого лимита при установленной `CLAUDE_CODE_RETRY_WATCHDOG`. Когда проверка обнаруживает, что лимит снят, запрос отправляется сразу. Укажите значение только цифрами, от `60000` до `10800000`. Если переменная не установлена или значение выходит за пределы этого диапазона, проверки не выполняются. О том, когда Claude Code пропускает эти проверки, см. [справочник по переменным окружения](https://code.claude.com/docs/ru/env-vars.md). Требуется Claude Code v2.1.305 или позже. |

552| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](https://code.claude.com/docs/ru/env-vars) | 500 | Начальная задержка в миллисекундах для экспоненциальной задержки между повторными попытками запроса, который API отклоняет с ошибкой перегрузки `529`. Увеличьте её, вплоть до 32000, чтобы распределить повторные попытки на более длительный период, когда API работает на пределе пропускной способности. Не действует, если `CLAUDE_CODE_RETRY_WATCHDOG` установлена в `1` или если отклонённый запрос был отправлен в [быстром режиме](https://code.claude.com/docs/ru/fast-mode.md#handle-rate-limits). Требуется Claude Code v2.1.292 или позже. |562| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](https://code.claude.com/docs/ru/env-vars) | 500 | Начальная задержка в миллисекундах для экспоненциальной задержки между повторными попытками запроса, который API отклоняет с ошибкой перегрузки `529`. Увеличьте её, вплоть до 32000, чтобы распределить повторные попытки на более длительный период, когда API работает на пределе пропускной способности. Не действует, если `CLAUDE_CODE_RETRY_WATCHDOG` установлена в `1` или если отклонённый запрос был отправлен в [быстром режиме](https://code.claude.com/docs/ru/fast-mode.md#handle-rate-limits). Требуется Claude Code v2.1.292 или позже. |

553| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](https://code.claude.com/docs/ru/env-vars) | 32000 | Верхний предел в миллисекундах для экспоненциальной задержки между повторными попытками запроса, который API отклоняет с ошибкой перегрузки `529`. Увеличьте его, вплоть до 64000, чтобы последующие повторные попытки продолжали всё сильнее разноситься во времени, когда API работает на пределе пропускной способности. Не действует, если `CLAUDE_CODE_RETRY_WATCHDOG` установлена в `1` или если отклонённый запрос был отправлен в [быстром режиме](https://code.claude.com/docs/ru/fast-mode.md#handle-rate-limits). Требуется Claude Code v2.1.296 или позже. |563| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](https://code.claude.com/docs/ru/env-vars) | 32000 | Верхний предел в миллисекундах для экспоненциальной задержки между повторными попытками запроса, который API отклоняет с ошибкой перегрузки `529`. Увеличьте его, вплоть до 64000, чтобы последующие повторные попытки продолжали всё сильнее разноситься во времени, когда API работает на пределе пропускной способности. Не действует, если `CLAUDE_CODE_RETRY_WATCHDOG` установлена в `1` или если отклонённый запрос был отправлен в [быстром режиме](https://code.claude.com/docs/ru/fast-mode.md#handle-rate-limits). Требуется Claude Code v2.1.296 или позже. |


1436 1446 

1437Это не то же состояние, что [OAuth-токен отозван или истёк](#oauth-token-revoked-or-expired). Те сообщения сообщают об отказе, который вернул API. `Login expired` Claude Code формирует сам для входа, который ему уже не удалось обновить, поэтому запрос не отправляется. Когда обновление не удаётся из-за того, что приостановлена сама учётная запись, а не из-за устаревшего входа, Claude Code вместо этого показывает [Ваша учётная запись заблокирована](#your-account-is-on-hold).1447Это не то же состояние, что [OAuth-токен отозван или истёк](#oauth-token-revoked-or-expired). Те сообщения сообщают об отказе, который вернул API. `Login expired` Claude Code формирует сам для входа, который ему уже не удалось обновить, поэтому запрос не отправляется. Когда обновление не удаётся из-за того, что приостановлена сама учётная запись, а не из-за устаревшего входа, Claude Code вместо этого показывает [Ваша учётная запись заблокирована](#your-account-is-on-hold).

1438 1448 

1439Сессии, аутентифицированные с помощью API-ключа, [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/ru/env-vars) или стороннего провайдера, не используют сохранённый вход и никогда не видят этого сообщения.

1440 

1441Вы можете проверить это состояние до того, как запрос завершится ошибкой: [`/status`](https://code.claude.com/docs/ru/commands) показывает строку `Login` со значением `Expired — log in again`, а также организацию и адрес электронной почты, сохранённые для истёкшего входа. Строка появляется только тогда, когда сохранённый вход является вашими активными учётными данными и больше не может быть обновлён. Сессии, аутентифицированные иным способом, не показывают эту строку, даже если истёкший вход остаётся сохранённым. До версии v2.1.210 `/status` в этом состоянии никак не показывал, что вход вообще существовал, потому что удалённые учётные данные не оставляли ему информации для отображения.1449Вы можете проверить это состояние до того, как запрос завершится ошибкой: [`/status`](https://code.claude.com/docs/ru/commands) показывает строку `Login` со значением `Expired — log in again`, а также организацию и адрес электронной почты, сохранённые для истёкшего входа. Строка появляется только тогда, когда сохранённый вход является вашими активными учётными данными и больше не может быть обновлён. Сессии, аутентифицированные иным способом, не показывают эту строку, даже если истёкший вход остаётся сохранённым. До версии v2.1.210 `/status` в этом состоянии никак не показывал, что вход вообще существовал, потому что удалённые учётные данные не оставляли ему информации для отображения.

1442 1450 

1443**Что делать:**1451**Что делать:**


1461Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again1469Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

1462```1470```

1463 1471 

1464Сессии, аутентифицированные с помощью API-ключа, [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/ru/env-vars) или стороннего провайдера, не используют сохранённый вход и никогда не видят этого сообщения.

1465 

1466**Что делать:**1472**Что делать:**

1467 1473 

1468* Повторите попытку через минуту. Если другой процесс завершит обновление первым, эта сессия использует обновлённый вход.1474* Повторите попытку через минуту. Если другой процесс завершит обновление первым, эта сессия использует обновлённый вход.

1469* Если сообщение продолжает появляться, закройте другие окна и процессы Claude Code, затем повторите попытку.1475* Если сообщение продолжает появляться, закройте другие окна и процессы Claude Code, затем повторите попытку.

1470* Если оно появляется, когда никакие другие процессы Claude Code не запущены, запустите `/login`. Повторный вход не ждёт снятия блокировки обновления.1476* Если оно появляется, когда никакие другие процессы Claude Code не запущены, запустите `/login`. Повторный вход не ждёт снятия блокировки обновления.

1471 1477 

1478### Could not refresh your login: the disk that holds the Claude Code config directory is full

1479 

1480Освободите место на диске, где находится каталог конфигурации Claude Code, затем снова отправьте своё сообщение. Повторный вход не поможет, пока диск заполнен, потому что новый вход не удастся сохранить. Каталог конфигурации — `~/.claude` в вашем домашнем каталоге, если вы не задали [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/ru/env-vars).

1481 

1482```text wrap theme={null}

1483Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full · Delete files you no longer need on that disk, then try again · Signing in again won't help

1484```

1485 

1486В [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) (`-p`) и в [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md) сообщение выглядит так:

1487 

1488```text wrap theme={null}

1489Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full. Delete files you no longer need on that disk and retry; signing in again won't help

1490```

1491 

1492**Что делать:**

1493 

1494* Для скрипта повторно выполните его команду `claude -p`

1495* Если на диске уже есть свободное место, то же сообщение появляется при исчерпании дисковой квоты или inode. Удалите свои файлы на этом диске. Если сообщение возвращается, удаляйте много мелких файлов, а не несколько крупных, потому что каждый файл занимает один inode независимо от размера.

1496 

1472### Не удалось сохранить вход1497### Не удалось сохранить вход

1473 1498 

1474Вы вошли через claude.ai, но Claude Code не смог сохранить вход в своё хранилище учётных данных, поэтому вход не завершился. В macOS это может произойти, когда связка ключей входа блокируется, например при переходе в сон или простое, после того как Claude Code уже прочитал или сохранил в ней учётные данные в той же сессии.1499Вы вошли через claude.ai, но Claude Code не смог сохранить вход в своё хранилище учётных данных, поэтому вход не завершился. В macOS это может произойти, когда связка ключей входа блокируется, например при переходе в сон или простое, после того как Claude Code уже прочитал или сохранил в ней учётные данные в той же сессии.


2442 2467 

2443### Context exceeds the token limit2468### Context exceeds the token limit

2444 2469 

2445`/context` показывает это предупреждение в начале своего вывода, когда диалог превысил контекстное окно модели. Запросы завершаются с ошибкой [`Prompt is too long`](#prompt-is-too-long), пока вы не освободите место. В интерактивной сессии эта ошибка отображается как строка `Context limit reached`.2470`/context` показывает это предупреждение в начале своего вывода, когда диалог вырос за пределы контекстного окна модели:

2446 2471 

2447```text theme={null}2472```text theme={null}

2448Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.2473Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.

2449```2474```

2450 2475 

2476После предупреждения `Context exceeds` вам не нужно выполнять ни одну из команд, пока включено [автосжатие](https://code.claude.com/docs/ru/settings-reference.md#autocompactenabled), что является поведением по умолчанию:

2477 

2478* **Автосжатие включено**: отправьте следующее сообщение. Если оно всё равно завершится ошибкой [`Prompt is too long`](#prompt-is-too-long), см. соответствующий раздел.

2479* **Автосжатие отключено**: в сессии выполните `/compact`, если предупреждение его называет, или `/clear`, чтобы начать заново. Пока вы не выполните одну из них, сообщения будут завершаться ошибкой `Context limit reached` или `Prompt is too long` в выводе `-p`.

2480 

2451Если превышенный лимит — это окно сжатия контекста, например граница 200K на моделях с контекстом 1M, предупреждение звучит иначе. Окно сжатия может быть меньше контекстного окна модели, поэтому запросы сверх него всё ещё могут выполняться успешно.2481Если превышенный лимит — это окно сжатия контекста, например граница 200K на моделях с контекстом 1M, предупреждение звучит иначе. Окно сжатия может быть меньше контекстного окна модели, поэтому запросы сверх него всё ещё могут выполняться успешно.

2452 2482 

2453```text theme={null}2483```text theme={null}


2458 2488 

2459**Что делать:**2489**Что делать:**

2460 2490 

2461* В диалоге из нескольких ходов выполните `/compact`, чтобы суммировать более ранние ходы и освободить место. Чтобы начать заново, выполните `/clear`2491* **После предупреждения об окне сжатия контекста**: в многоходовом диалоге выполните `/compact`, чтобы суммировать более ранние ходы и освободить место. Чтобы вместо этого начать заново, выполните `/clear`.

2462* Другие способы сократить использование см. в разделе [Prompt is too long](#prompt-is-too-long)2492* Другие способы сократить использование см. в разделе [Prompt is too long](#prompt-is-too-long)

2463 2493 

2464До версии 2.1.216 `/context` показывал использование выше 100% без строки предупреждения, объясняющей, что это значит и как восстановиться.2494До версии 2.1.216 `/context` показывал использование выше 100% без строки предупреждения, объясняющей, что это значит и как восстановиться.


2851 2881 

2852Причина после пути к файлу указывает, что не удалось:2882Причина после пути к файлу указывает, что не удалось:

2853 2883 

2854* **`can't be written (<code>)`**: запись не удалась с кодом ошибки операционной системы в скобках, например `EROFS`, когда файл или файл, на который он ссылается, находится в файловой системе, запрещающей запись. Сделайте файл доступным для записи и переключитесь снова. Если файл генерирует другой инструмент, задайте ключ `model` в этом инструменте; см. раздел [A change you made in Claude Code is lost in new sessions](https://code.claude.com/docs/ru/settings.md#a-change-you-made-in-claude-code-is-lost-in-new-sessions).2884* **`can't be written (<code>)`**: запись не удалась с кодом ошибки операционной системы в скобках, например `EROFS`, когда файл или файл, на который он ссылается, находится в файловой системе, запрещающей запись. Сделайте файл доступным для записи и переключитесь снова. Если файл генерирует другой инструмент, задайте ключ `model` в этом инструменте; см. раздел [Изменение, которое вы сделали в Claude Code, теряется в новых сессиях](https://code.claude.com/docs/ru/settings.md#a-change-you-made-in-claude-code-is-lost-in-new-sessions).

2855* **`isn't valid JSON`**: файл на диске не разбирается, и Claude Code оставляет его нетронутым, а не перезаписывает содержимое, которое не может прочитать. Исправьте синтаксическую ошибку, затем переключитесь снова; см. раздел [Fix a broken settings file](https://code.claude.com/docs/ru/settings.md#fix-a-broken-settings-file).2885* **`isn't valid JSON`**: файл на диске не разбирается, и Claude Code оставляет его нетронутым, а не перезаписывает содержимое, которое не может прочитать. Исправьте синтаксическую ошибку, затем переключитесь снова; см. раздел [Исправьте сломанный файл параметров](https://code.claude.com/docs/ru/settings.md#fix-a-broken-settings-file).

2856 2886 

2857Уведомление, заканчивающееся на `couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)`, означает, что запись не завершилась за три секунды. Она продолжается в фоне, поэтому модель по умолчанию всё ещё может сохраниться; проверьте, на какой модели начнётся следующая сессия, или снова выполните `/model <name>`.2887Уведомление, заканчивающееся на `couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)`, означает, что запись не завершилась за три секунды. Она продолжается в фоне, поэтому модель по умолчанию всё ещё может сохраниться; проверьте, на какой модели начнётся следующая сессия, или снова выполните `/model <name>`.

2858 2888 


3302 3332 

3303### Configuration error in \~/.claude.json3333### Configuration error in \~/.claude.json

3304 3334 

3305Claude Code не смог разобрать `~/.claude.json` — файл, в котором хранятся данные вашей учётной записи, MCP-серверы и состояние по проектам. Ваш файл не изменён. [Неинтерактивный](https://code.claude.com/docs/ru/headless.md) запуск, например `claude -p`, каждый раз завершается с кодом выхода 1, пока вы не восстановите файл.3335Claude Code не смог разобрать `~/.claude.json` — файл, в котором хранятся данные вашей учётной записи, MCP-серверы и состояние по проектам. [Неинтерактивный](https://code.claude.com/docs/ru/headless.md) запуск, например `claude -p`, завершается с кодом выхода 1.

3306 3336 

3307Если Claude Code находит [резервную копию](https://code.claude.com/docs/ru/claude-directory.md#cleaned-up-automatically), вывод называет её и содержит строку `cp`, которая копирует её обратно:3337Если Claude Code находит [резервную копию](https://code.claude.com/docs/ru/claude-directory.md#cleaned-up-automatically), вывод называет её и содержит строку `cp`, которая копирует её обратно:

3308 3338 


3317 3347 

3318**Что делать:**3348**Что делать:**

3319 3349 

3320* **В выводе есть строка `cp`**: выполните эту строку в терминале. В Windows выполните её в PowerShell. Она заменяет повреждённый файл резервной копией — более ранней версией `~/.claude.json`.3350* **В выводе есть строка `cp`**: выполните эту строку в терминале. В Windows выполните её в PowerShell.

3321* **В выводе нет строки `cp`, или ошибка возвращается после её выполнения**: исправьте JSON в `~/.claude.json`, скопируйте поверх него другой файл `.claude.json.backup.<timestamp>` из [`~/.claude/backups/`](https://code.claude.com/docs/ru/claude-directory#cleaned-up-automatically), если он есть, или переименуйте его. Если файла `~/.claude.json` нет, Claude Code запускается с настройками по умолчанию и без того, что содержал файл.3351* **В выводе нет строки `cp`, или ошибка возвращается после её выполнения**: если `~/.claude.json` всё ещё содержит вашу конфигурацию, исправьте его JSON. Если не получается, скопируйте поверх него другой файл `.claude.json.backup.<timestamp>` из [`~/.claude/backups/`](https://code.claude.com/docs/ru/claude-directory#cleaned-up-automatically), если такой есть, или переименуйте его. Если файла `~/.claude.json` нет, Claude Code запускается с настройками по умолчанию и без всего, что содержал этот файл.

3322 3352* **`~/.claude.json` больше не содержит вашу конфигурацию**: найдите файл `.claude.json.corrupted.<timestamp>`, который всё ещё её содержит, в [`~/.claude/backups/`](https://code.claude.com/docs/ru/claude-directory#cleaned-up-automatically) или в домашнем каталоге. Исправьте его JSON, затем скопируйте его поверх `~/.claude.json`. Если не удаётся найти или исправить такой файл, попробуйте те же шаги с файлом `.claude.json.backup.<timestamp>`, содержащим вашу конфигурацию. Если такого нет, переименуйте `~/.claude.json` и снова добавьте свои MCP-серверы с помощью [`claude mcp add`](https://code.claude.com/docs/ru/mcp#installing-mcp-servers).

3323До v2.1.318 после того, как неинтерактивный запуск выводил эту ошибку, в `~/.claude.json` оставались значения по умолчанию, поэтому следующий запуск проходил без вашей конфигурации.

3324 3353 

3325### Claude configuration file was empty and no backup holds anything3354### Claude configuration file was empty and no backup holds anything

3326 3355 


3381 3410 

3382До v2.1.309 Claude Code выводил только текст ошибки операционной системы, когда том был заполнен или квота исчерпана. Пример: `ENOSPC: no space left on device, mkdir '/tmp/claude-501'`; применимы те же шаги.3411До v2.1.309 Claude Code выводил только текст ошибки операционной системы, когда том был заполнен или квота исчерпана. Пример: `ENOSPC: no space left on device, mkdir '/tmp/claude-501'`; применимы те же шаги.

3383 3412 

3413### Claude Code could not save because the disk is full

3414 

3415Эта строка в stderr после запуска [`claude -p`](https://code.claude.com/docs/ru/headless) означает, что диск заполнен или ваша дисковая квота исчерпана, поэтому Claude Code не смог сохранить всё из этого запуска:

3416 

3417```text wrap theme={null}

3418Error: Claude Code could not save all of this session's transcript under /Users/you/.claude because the disk is full (ENOSPC). If you resume this session, part of the conversation may be missing. Free up space on that disk before the next run.

3419```

3420 

3421При выводе в формате text или `json` запуск завершается с кодом выхода 1, а ответ уже выведен. При выводе `stream-json` запуск сохраняет свой обычный код выхода, и ответ всё равно приходит.

3422 

3423**Что делать:**

3424 

3425* **`the disk is full (ENOSPC)`**: перед следующим запуском освободите место на диске, где находится путь из сообщения

3426* **`your disk quota is used up (EDQUOT)`**: перед следующим запуском освободите место или запросите увеличение квоты

3427 

3384### Не удалось определить реальное расположение каталога3428### Не удалось определить реальное расположение каталога

3385 3429 

3386Вы выполнили `/add-dir` для подкаталога рабочего каталога, и Claude Code не смог определить реальное расположение этого каталога.3430Вы выполнили `/add-dir` для подкаталога рабочего каталога, и Claude Code не смог определить реальное расположение этого каталога.


3448* **`Error: Workspace not trusted. <folder> is your home directory`**: поскольку доверие для домашнего каталога никогда не сохраняется, предварительный запуск `claude` там не поможет. Вместо этого выполните `claude ultrareview` из каталога проекта, предварительно один раз запустив там `claude`, чтобы принять диалог доверия, или добавьте `--trust-workspace`.3492* **`Error: Workspace not trusted. <folder> is your home directory`**: поскольку доверие для домашнего каталога никогда не сохраняется, предварительный запуск `claude` там не поможет. Вместо этого выполните `claude ultrareview` из каталога проекта, предварительно один раз запустив там `claude`, чтобы принять диалог доверия, или добавьте `--trust-workspace`.

3449* **`No answer in time.` с последующим `Error: Workspace not trusted`**: на вопрос `Trust <folder>? [y/N]` не было ответа в течение 5 минут. Снова выполните `claude ultrareview` и ответьте на него.3493* **`No answer in time.` с последующим `Error: Workspace not trusted`**: на вопрос `Trust <folder>? [y/N]` не было ответа в течение 5 минут. Снова выполните `claude ultrareview` и ответьте на него.

3450* **`Ultrareview did not start: <folder> is not trusted`**: вы отказались на вопрос `Trust <folder>? [y/N]`, например ответив `n` или нажав Enter. Чтобы начать ревью, снова выполните `claude ultrareview` и ответьте `y`.3494* **`Ultrareview did not start: <folder> is not trusted`**: вы отказались на вопрос `Trust <folder>? [y/N]`, например ответив `n` или нажав Enter. Чтобы начать ревью, снова выполните `claude ultrareview` и ответьте `y`.

3451* **``Ultrareview did not start: `--trust-workspace` takes no value``**: после `--trust-workspace` следует что-то, кроме флага, например номер PR или `false`. Если вы не доверяете папке, не указывайте флаг. Чтобы доверять ей на время этого запуска, поставьте номер PR или базовую ветку перед флагом: `claude ultrareview 1234 --trust-workspace`.3495* **``Ultrareview did not start: `--trust-workspace` takes no value``**: после `--trust-workspace` следует что-то, кроме флага, например номер PR или `false`. Если вы не доверяете папке, не указывайте этот флаг. Чтобы доверять ей для этого запуска, поставьте номер PR или базовую ветку перед флагом: `claude ultrareview 1234 --trust-workspace`.

3452 3496 

3453До v2.1.309 `claude ultrareview` не принимал `--trust-workspace`.3497До v2.1.309 `claude ultrareview` не принимал `--trust-workspace`.

3454 3498 

3499### Remote Control did not start because a question got no answer

3500 

3501Это сообщение означает, что [`claude remote-control`](https://code.claude.com/docs/ru/remote-control) задал вопрос первого запуска, процитированный в сообщении, и не получил ответа:

3502 

3503```text theme={null}

3504Remote Control did not start: "Enable Remote Control?" got no answer. Run `claude remote-control` at a terminal and answer y once; it won't ask again.

3505Remote Control did not start: "Choose [1/2] (default: 1):" got no answer. You can run `claude remote-control` and choose, or pass --spawn=same-dir or --spawn=worktree.

3506```

3507 

3508**Что делать:**

3509 

3510* **`Enable Remote Control?`**: в скрипте или службе стандартный ввод заканчивается прежде, чем кто-либо успеет ответить. Один раз выполните `claude remote-control` в терминале от имени пользователя, под которым работает ваш скрипт или служба, и ответьте `y`.

3511* **`Choose [1/2] (default: 1):`**: снова выполните `claude remote-control` и [выберите режим запуска](https://code.claude.com/docs/ru/remote-control.md#set-the-default-spawn-mode-for-a-project) или передайте [`--spawn=same-dir` или `--spawn=worktree`](https://code.claude.com/docs/ru/remote-control#start-a-remote-control-session), чтобы пропустить вопрос

3512 

3455### Не переносится в сессии, которые запускает Remote Control3513### Не переносится в сессии, которые запускает Remote Control

3456 3514 

3457Вы запустили [Remote Control](https://code.claude.com/docs/ru/remote-control.md) с глобальным флагом `claude` перед глаголом `remote-control` — флагом, который ограничивал бы или настраивал сессии, запускаемые Remote Control, например `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` или `--mcp-config`. Флаг, указанный перед глаголом, никогда не доходит до этих сессий. Вместо этого Claude Code отказывается запускаться и называет флаг:3515Вы запустили [Remote Control](https://code.claude.com/docs/ru/remote-control.md) с глобальным флагом `claude` перед глаголом `remote-control` — флагом, который ограничивал бы или настраивал сессии, запускаемые Remote Control, например `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` или `--mcp-config`. Флаг, указанный перед глаголом, никогда не доходит до этих сессий. Вместо этого Claude Code отказывается запускаться и называет флаг:


3741 3799 

3742Родственные сообщения появляются ещё до запуска команды:3800Родственные сообщения появляются ещё до запуска команды:

3743 3801 

3744* `Shell command permission check failed for pattern "..."`: проверка разрешений команды не пропустила её. В разделе [Проверки разрешений для внедрённых команд](https://code.claude.com/docs/ru/skills.md#permission-checks-on-injected-commands) описано, какие результаты приводят к прерыванию в каждом режиме разрешений и как заранее одобрить команду с помощью `allowed-tools`3802* `Shell command permission check failed for pattern "..."`: проверка разрешений для команды её не допустила. В разделе [Проверки разрешений для внедрённых команд](https://code.claude.com/docs/ru/skills.md#permission-checks-on-injected-commands) описано, какие результаты приводят к прерыванию в каждом режиме разрешений и как заранее одобрить команду с помощью `allowed-tools`

3745* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter скилла требует bash на компьютере, где его нет. Установите Git for Windows или измените frontmatter на `shell: powershell`. См. [Как выполняются внедрённые команды](https://code.claude.com/docs/ru/skills.md#how-injected-commands-run)3803* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter скилла требует bash на компьютере, где его нет. Установите Git for Windows или измените frontmatter на `shell: powershell`. См. [Как выполняются внедрённые команды](https://code.claude.com/docs/ru/skills.md#how-injected-commands-run)

3746 3804 

3747**Что делать:**3805**Что делать:**


3895 3953 

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

3897* **Вы передали базовую ветку, которая уже была в вашем клоне**: подсказка гласит ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3955* **Вы передали базовую ветку, которая уже была в вашем клоне**: подсказка гласит ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3898* **Вы передали базовую ветку, которой не было в вашем клоне**: Claude Code получил её из origin перед сравнением. Подсказка гласит ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; если Claude Code не может определить, является ли ваш клон неполным (shallow), он вместо этого предлагает `git fetch --unshallow origin`. До v2.1.221 подсказка предлагала `git fetch --unshallow origin` для любой полученной базовой ветки, а в полном клоне эта команда завершается ошибкой `fatal: --unshallow on a complete repository does not make sense`.3956* **Вы передали базовую ветку, которой не было в вашем клоне**: Claude Code загрузил её из origin перед сравнением. Подсказка гласит ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; если Claude Code не может определить, является ли ваш клон поверхностным (shallow), он вместо этого предлагает `git fetch --unshallow origin`. До версии v2.1.221 подсказка предлагала `git fetch --unshallow origin` для каждой загруженной базовой ветки, а в полном клоне эта команда завершается ошибкой `fatal: --unshallow on a complete repository does not make sense`.

3899 3957 

3900**Что делать:**3958**Что делать:**

3901 3959 


4457* Если сообщение заканчивается на `EACCES`, восстановите право на выполнение для каждого каталога на пути к файлу или папке, которые указывает путь. Проверьте каталоги выше пути, затем переходите по каждой встреченной символической ссылке и проверьте каталоги, ведущие к месту, куда она указывает. Любой другой код ошибки найдите в разделе [причины и шаги для пути, который не удалось проверить](#path-could-not-be-checked).4515* Если сообщение заканчивается на `EACCES`, восстановите право на выполнение для каждого каталога на пути к файлу или папке, которые указывает путь. Проверьте каталоги выше пути, затем переходите по каждой встреченной символической ссылке и проверьте каталоги, ведущие к месту, куда она указывает. Любой другой код ошибки найдите в разделе [причины и шаги для пути, который не удалось проверить](#path-could-not-be-checked).

4458* Чтобы совместно использовать файлы с другими плагинами того же маркетплейса, свяжите их символической ссылкой внутри каталога плагина, следуя [правилам символических ссылок](https://code.claude.com/docs/ru/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)4516* Чтобы совместно использовать файлы с другими плагинами того же маркетплейса, свяжите их символической ссылкой внутри каталога плагина, следуя [правилам символических ссылок](https://code.claude.com/docs/ru/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)

4459 4517 

4518### Путь к файлу сервера не прочитан

4519 

4520Сообщение `path not read` означает, что Claude Code не прочитал файл MCP- или LSP-сервера, который указывает плагин, из-за пути к этому файлу. Остальная часть плагина загружается, но без серверов, которые определяет этот файл.

4521 

4522Часть `..` учитывается, даже если путь остаётся внутри плагина, как в этом примере:

4523 

4524```text theme={null}

4525mcp-servers path not read: ./sub/../x.json is absolute or has a ".." part

4526```

4527 

4528**Что делать:**

4529 

4530* Если вы установили плагин и не сопровождаете его, передайте сообщение его автору

4531* Если вы сопровождаете плагин, держите файл сервера внутри каталога плагина. Укажите его в манифесте или записи маркетплейса путём, который начинается с `./` и не содержит `..`, например `./servers/x.json`

4532* Чтобы совместно использовать один файл сервера в нескольких плагинах одного маркетплейса, свяжите этот файл с каждым плагином символической ссылкой, следуя [правилам символических ссылок](https://code.claude.com/docs/ru/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)

4533 

4460### Плагин не загружен: его манифест не был прочитан4534### Плагин не загружен: его манифест не был прочитан

4461 4535 

4462Claude Code не смог подтвердить, что [манифест](https://code.claude.com/docs/ru/plugins/manifest-reference.md) плагина из маркетплейса в `.claude-plugin/plugin.json` находится внутри плагина, поэтому ничего из этого плагина не загружает. Для плагина в [локальном маркетплейсе](https://code.claude.com/docs/ru/plugins/loading.md#in-place-and-copied-plugins) Claude Code также не смог подтвердить, что манифест находится внутри этого маркетплейса. Сообщение отображается на вкладке **Errors** в `/plugin`, а причина в его конце указывает, что обнаружил Claude Code.4536Claude Code не смог подтвердить, что [манифест](https://code.claude.com/docs/ru/plugins/manifest-reference.md) плагина из маркетплейса в `.claude-plugin/plugin.json` находится внутри плагина, поэтому ничего из этого плагина не загружает. Для плагина в [локальном маркетплейсе](https://code.claude.com/docs/ru/plugins/loading.md#in-place-and-copied-plugins) Claude Code также не смог подтвердить, что манифест находится внутри этого маркетплейса. Сообщение отображается на вкладке **Errors** в `/plugin`, а причина в его конце указывает, что обнаружил Claude Code.


5065 5139 

5066До версии 2.1.280 отказ `where it leads on disk could not be determined` не появлялся.5140До версии 2.1.280 отказ `where it leads on disk could not be determined` не появлялся.

5067 5141 

5142### The search failed, so this is not a "no matches" result

5143 

5144Поиск [Grep](https://code.claude.com/docs/ru/tools-reference.md#grep-tool-behavior) или [Glob](https://code.claude.com/docs/ru/tools-reference.md#glob-tool-behavior), запущенный Claude, завершился ошибкой до возврата каких-либо результатов, поэтому неизвестно, существуют ли совпадения. Сообщение, которое Claude получает вместо результатов, начинается так:

5145 

5146```text wrap theme={null}

5147The search failed, so this is not a "no matches" result: matches may exist. What happened to the search program (ripgrep) is not known, and no results were read. Run the search once more. If it fails again, tell the user that searches are failing.

5148```

5149 

5150**Что делать:**

5151 

5152* **При первом появлении**: ничего. Сообщение просит Claude сначала повторить поиск.

5153* **Если Claude сообщает, что поиск не работает**: сохраните ошибку ripgrep для отчёта об ошибке:

5154 1. В оболочке запустите сессию с теми же флагами, что и сессия, в которой поиск завершался ошибкой, добавив [`--debug-file claude-debug.log`](https://code.claude.com/docs/ru/cli-reference#cli-flags)

5155 2. Отправьте Claude промпт, который привёл к неудачному поиску

5156 3. Если поиск снова завершится ошибкой, найдите в `claude-debug.log` строку, содержащую `rg error (signal=`

5157 4. Приложите эту строку, когда будете [сообщать о проблеме](#report-an-error)

5158 

5068### Task output swap refused5159### Task output swap refused

5069 5160 

5070Claude Code сохраняет вывод каждой команды Bash в файл в своём временном каталоге. Каждый раз, открывая один из этих файлов, он проверяет, что путь по-прежнему ведёт к созданному им файлу и его не перенаправляет символическая ссылка, дополнительная жёсткая ссылка или перемещённый каталог. Это сообщение означает, что проверка не прошла, поэтому Claude Code отклонил операцию, вместо того чтобы записывать или читать вывод по этому пути. Сообщение появляется в результате инструмента Bash:5161Claude Code сохраняет вывод каждой команды Bash в файл в своём временном каталоге. Каждый раз, открывая один из этих файлов, он проверяет, что путь по-прежнему ведёт к созданному им файлу и его не перенаправляет символическая ссылка, дополнительная жёсткая ссылка или перемещённый каталог. Это сообщение означает, что проверка не прошла, поэтому Claude Code отклонил операцию, вместо того чтобы записывать или читать вывод по этому пути. Сообщение появляется в результате инструмента Bash:


5153 5244 

5154До версии 2.1.296 Edit и NotebookEdit применяли такую правку и сохраняли каждый байт, который им не удалось декодировать, как `U+FFFD`. В этих версиях обновите Claude Code.5245До версии 2.1.296 Edit и NotebookEdit применяли такую правку и сохраняли каждый байт, который им не удалось декодировать, как `U+FFFD`. В этих версиях обновите Claude Code.

5155 5246 

5247### Refusing to apply edits: a hook is configured for file edits in this session

5248 

5249Claude попытался опубликовать [артефакт](https://code.claude.com/docs/ru/artifacts.md) с [одношаговым обновлением](https://code.claude.com/docs/ru/artifacts.md#turn-off-one-step-artifact-updates) — небольшим изменением файла артефакта, включённым в публикацию, — и Claude Code отказал. Ничего не было опубликовано, и файл не изменился. Сообщение появляется в результате инструмента Artifact:

5250 

5251```text wrap theme={null}

5252Refusing to apply edits to <path>: a hook is configured for file edits in this session, so a publish can't apply edits here. Edit the file, then publish it without edits. Nothing was published.

5253```

5254 

5255Claude Code не разрешает одношаговые обновления, пока в вашей сессии есть [хук `PreToolUse`](https://code.claude.com/docs/ru/hooks#pretooluse) или [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) для `Edit` или `Write`.

5256 

5257**Что делать:**

5258 

5259* Ничего, если Claude затем отредактировал файл и опубликовал его

5260* Если Claude остановился на этом сообщении, попросите Claude отредактировать файл и опубликовать его

5261* Если сообщение продолжает появляться, закройте и снова запустите Claude Code

5262* Если сообщение появляется даже после повторного запуска, [отключите одношаговые обновления](https://code.claude.com/docs/ru/artifacts.md#turn-off-one-step-artifact-updates)

5263 

5156### The source file is not valid UTF-8 text5264### The source file is not valid UTF-8 text

5157 5265 

5158Claude попытался опубликовать [артефакт](https://code.claude.com/docs/ru/artifacts.md) из файла, байты которого не декодируются как текст или текст которого уже содержит символ замены `U+FFFD`, поэтому Claude Code отклонил публикацию до загрузки чего-либо. Сообщение появляется в результате инструмента Artifact и называет первую позицию, которую нужно исправить:5266Claude попытался опубликовать [артефакт](https://code.claude.com/docs/ru/artifacts.md) из файла, байты которого не декодируются как текст или текст которого уже содержит символ замены `U+FFFD`, поэтому Claude Code отклонил публикацию до загрузки чего-либо. Сообщение появляется в результате инструмента Artifact и называет первую позицию, которую нужно исправить:


5623 5731 

5624* Создайте заново каталог, указанный в сообщении, или запустите сессию из существующего каталога, затем повторите попытку5732* Создайте заново каталог, указанный в сообщении, или запустите сессию из существующего каталога, затем повторите попытку

5625 5733 

5734### This forked session could not be started

5735 

5736Вы [создали ответвление сессии Remote Control](https://code.claude.com/docs/ru/remote-control.md#fork-a-session-from-your-browser) из claude.ai, и Claude Code не смог завершить запуск [фоновой сессии](https://code.claude.com/docs/ru/agent-view.md), в которой это ответвление работает на вашем компьютере. Это уведомление появляется в транскрипте ответвлённой сессии:

5737 

5738```text theme={null}

5739This forked session could not be started. Fork the conversation again to retry.

5740```

5741 

5742Сессия, от которой вы создали ответвление, продолжает работать.

5743 

5744**Что делать:**

5745 

5746* Вернитесь к сессии, от которой вы создали ответвление, и снова создайте ответвление, когда сессия будет простаивать

5747 

5626### Рабочее пространство не является доверенным при запуске фоновой сессии5748### Рабочее пространство не является доверенным при запуске фоновой сессии

5627 5749 

5628Вы запустили или перезапустили [фоновую сессию](https://code.claude.com/docs/ru/agent-view.md) в каталоге, которому вы не [доверяете](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust), и диалоговое окно доверия рабочему пространству не смогло появиться, чтобы спросить вас. Claude Code не запускает сессию:5750Вы запустили или перезапустили [фоновую сессию](https://code.claude.com/docs/ru/agent-view.md) в каталоге, которому вы не [доверяете](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust), и диалоговое окно доверия рабочему пространству не смогло появиться, чтобы спросить вас. Claude Code не запускает сессию:

fast-mode.md +40 −18

Details

12 12 

13Быстрый режим — это высокоскоростная конфигурация для поддерживаемых моделей, которая делает модель до 2,5 раза быстрее при более высокой стоимости за токен. Включайте его с помощью `/fast`, когда вам нужна скорость для интерактивной работы, такой как быстрая итерация или живая отладка, и отключайте, когда стоимость важнее, чем задержка.13Быстрый режим — это высокоскоростная конфигурация для поддерживаемых моделей, которая делает модель до 2,5 раза быстрее при более высокой стоимости за токен. Включайте его с помощью `/fast`, когда вам нужна скорость для интерактивной работы, такой как быстрая итерация или живая отладка, и отключайте, когда стоимость важнее, чем задержка.

14 14 

15Быстрый режим использует ту же модель с другой конфигурацией API, которая приоритизирует скорость над экономичностью, поэтому качество и возможности остаются прежними. Быстрый режим поддерживается на Fable 5.2, Opus 5.5, Opus 5 и Opus 4.8. Он недоступен на Sonnet, Haiku или других моделях.15Быстрый режим использует ту же модель с другой конфигурацией API, которая приоритизирует скорость над экономичностью, поэтому качество и возможности остаются прежними. В Anthropic API быстрый режим поддерживается на Fable 5.2, Opus 5.5, Opus 5 и Opus 4.8, но не на Sonnet, Haiku или других моделях. О моделях на Agent Platform от Google Cloud см. раздел [Использование быстрого режима на Agent Platform](#use-fast-mode-on-agent-platform).

16 16 

17> [!WARNING]17> [!WARNING]

18>18>


25 25 

26Что нужно знать:26Что нужно знать:

27 27 

28* Используйте `/fast` для включения быстрого режима в Claude Code CLI. Расширение [VS Code](https://code.claude.com/docs/ru/vs-code.md) предлагает команду **Toggle fast mode** при выборе модели, которая поддерживает быстрый режим. Claude Code сохраняет этот переключатель в вашей настройке [`fastMode`](#toggle-fast-mode).28* Используйте `/fast` для включения быстрого режима в Claude Code CLI. Расширение [VS Code](https://code.claude.com/docs/ru/vs-code.md) предлагает команду **Toggle fast mode** при выборе модели, которая поддерживает быстрый режим. В Anthropic API Claude Code сохраняет этот переключатель в вашей настройке [`fastMode`](#toggle-fast-mode).

29* Цены на быстрый режим составляют \$16/\$80 за MTok входа/выхода на Fable 5.2, \$8/\$40 на Opus 5.5 и \$10/\$50 на Opus 5 и Opus 4.8.29* Цены Anthropic на быстрый режим составляют \$16/\$80 за MTok входа/выхода на Fable 5.2, \$8/\$40 на Opus 5.5 и \$10/\$50 на Opus 5 и Opus 4.8.

30* Доступно пользователям Claude Code на планах подписки (Pro/Max/Ultra/Team/Enterprise) и на Claude Console. Организациям Team и Enterprise требуется, чтобы Owner сначала это включил, а организациям Console требуется сначала получить предоставленный доступ, чтобы использовать его с Opus 5 или Opus 4.8. Оба варианта описаны в разделе [Требования](#requirements).30* Доступно пользователям Claude Code на планах подписки (Pro/Max/Ultra/Team/Enterprise), на Claude Console и на Agent Platform от Google Cloud [с условиями](#use-fast-mode-on-agent-platform). Организациям Team и Enterprise требуется, чтобы Owner сначала это включил, а организациям Console требуется сначала получить предоставленный доступ, чтобы использовать его с Opus 5 или Opus 4.8. Оба варианта описаны в разделе [Требования](#requirements).

31* Для пользователей Claude Code на планах подписки (Pro/Max/Ultra/Team/Enterprise) быстрый режим доступен только через кредиты использования и не включен в ограничения частоты запросов подписки.31* Для пользователей Claude Code на планах подписки (Pro/Max/Ultra/Team/Enterprise) быстрый режим доступен только через кредиты использования и не включен в ограничения частоты запросов подписки.

32 32 

33## Включение быстрого режима33## Включение быстрого режима

34 34 

35На Agent Platform `/fast` и настройка `fastMode` работают иначе, поэтому вместо этого следуйте разделу [Использование быстрого режима на Agent Platform](#use-fast-mode-on-agent-platform).

36 

35В CLI включайте быстрый режим одним из следующих способов:37В CLI включайте быстрый режим одним из следующих способов:

36 38 

37* Запустите `/fast`, нажмите Space для включения или отключения, затем нажмите Enter для подтверждения39* Запустите `/fast`, нажмите Space для включения или отключения, затем нажмите Enter для подтверждения

38* На модели, которая поддерживает быстрый режим, установите `"fastMode": true` в вашем [файле пользовательских настроек](https://code.claude.com/docs/ru/settings.md). Если вы установите его на любой другой модели, вы останетесь на этой модели с отключенным быстрым режимом. На Fable 5.2 эта настройка сама по себе не действует, пока вы не запустите `/fast` во время использования Fable 5.2.40* На модели, которая поддерживает быстрый режим, установите `"fastMode": true` в вашем [файле пользовательских настроек](https://code.claude.com/docs/ru/settings.md). Если вы установите его на любой другой модели, вы останетесь на этой модели с отключенным быстрым режимом. На Fable 5.2 эта настройка сама по себе не действует, пока вы не запустите `/fast` во время использования Fable 5.2.

39 41 

40По умолчанию быстрый режим, который вы включаете в интерактивной сессии, сохраняется между сессиями на поддерживаемой модели. На Fable 5.2 он сохраняется, только если вы [включили его во время использования Fable 5.2](#switch-models-while-fast-mode-is-on). Вы можете настроить быстрый режим на сброс в каждой сессии. Подробности см. в разделе [обязательное согласие за сессию](#require-per-session-opt-in).42По умолчанию в Anthropic API быстрый режим, который вы включаете в интерактивной сессии, сохраняется между сессиями на поддерживаемой модели. На Fable 5.2 он сохраняется, только если вы [включили его во время использования Fable 5.2](#switch-models-while-fast-mode-is-on). Вы можете настроить быстрый режим на сброс в каждой сессии. Подробности см. в разделе [обязательное согласие за сессию](#require-per-session-opt-in).

41 43 

42Вне [облачного сеанса](#use-fast-mode-in-cloud-sessions), в [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с флагом `-p` команда `/fast` работает только в сеансе, запущенном с быстрым режимом в его значении [`--settings`](https://code.claude.com/docs/ru/cli-reference#cli-flags), например `claude -p --settings '{"fastMode": true}'`; переключение затем применяется только к этому сеансу и не сохраняется как ваше значение по умолчанию. Форма `-p` требует Claude Code v2.1.205 или более поздней версии. В остальных случаях в неинтерактивном режиме команда сообщает, что быстрый режим недоступен.44Вне [облачного сеанса](#use-fast-mode-in-cloud-sessions), в [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с флагом `-p` команда `/fast` работает только в сеансе, запущенном с быстрым режимом в его значении [`--settings`](https://code.claude.com/docs/ru/cli-reference#cli-flags), например `claude -p --settings '{"fastMode": true}'`; переключение затем применяется только к этому сеансу и не сохраняется как ваше значение по умолчанию. Форма `-p` требует Claude Code v2.1.205 или более поздней версии. В остальных случаях в неинтерактивном режиме команда сообщает, что быстрый режим недоступен.

43 45 


47 49 

48Когда вы включаете быстрый режим с помощью `/fast`:50Когда вы включаете быстрый режим с помощью `/fast`:

49 51 

50* Если ваша текущая модель не поддерживает быстрый режим, Claude Code переключается на Opus52* В Anthropic API, если ваша текущая модель не поддерживает быстрый режим, Claude Code переключается на Opus

51* Быстрый режим на Fable 5.2 требует Claude Code v2.1.321 или более поздней версии53* Быстрый режим на Fable 5.2 требует Claude Code v2.1.321 или более поздней версии

52* Вы увидите сообщение подтверждения: "Fast mode ON"54* Вы увидите сообщение подтверждения: "Fast mode ON"

53* Рядом с приглашением появляется небольшой значок `↯` во время активного быстрого режима55* Рядом с приглашением появляется небольшой значок `↯` во время активного быстрого режима

54* Запустите `/fast` снова в любое время, чтобы проверить, включен или отключен быстрый режим56* Запустите `/fast` снова в любое время, чтобы проверить, включен или отключен быстрый режим

55 57 

56Opus 5.5 является моделью по умолчанию для быстрого режима в Claude Code v2.1.280 и позже. До версии v2.1.280 быстрый режим по умолчанию использовал Opus 5, начиная с версии v2.1.219.58В Anthropic API Opus 5.5 является моделью по умолчанию для быстрого режима в Claude Code v2.1.280 и позже. До версии v2.1.280 быстрый режим по умолчанию использовал Opus 5, начиная с версии v2.1.219.

57 59 

58Когда вы отключаете быстрый режим с помощью `/fast` снова, вы остаетесь на текущей модели. Чтобы переключиться на другую модель, используйте `/model`.60Когда вы отключаете быстрый режим с помощью `/fast` снова, вы остаетесь на текущей модели. Чтобы переключиться на другую модель, используйте `/model`.

59 61 


63 65 

64* **Переключение в сторону**: когда вы переключаетесь на модель, которая не поддерживает быстрый режим, Claude Code отключает быстрый режим. Это включает Opus 4.7; до версии v2.1.221 быстрый режим оставался включенным после переключения на Opus 4.7 и API отклонял запросы.66* **Переключение в сторону**: когда вы переключаетесь на модель, которая не поддерживает быстрый режим, Claude Code отключает быстрый режим. Это включает Opus 4.7; до версии v2.1.221 быстрый режим оставался включенным после переключения на Opus 4.7 и API отклонял запросы.

65* **Переключение обратно**: быстрый режим снова включается на поддерживаемой модели Opus, когда ваше сохраненное предпочтение включено. С [обязательным согласием за сессию](#require-per-session-opt-in) вместо этого запустите `/fast`.67* **Переключение обратно**: быстрый режим снова включается на поддерживаемой модели Opus, когда ваше сохраненное предпочтение включено. С [обязательным согласием за сессию](#require-per-session-opt-in) вместо этого запустите `/fast`.

66* **Переключение на Fable 5.2**: быстрый режим отключается, если только вы не включили его во время использования Fable 5.2. Чтобы включить его, запустите `/fast` на Fable 5.2. Если вы не настроили [обязательное согласие за сессию](#require-per-session-opt-in), это сохраняется между сессиями, пока вы не отключите его или не включите с другой моделью.68* **Переключение на Fable 5.2**: быстрый режим отключается, если только вы не включили его во время использования Fable 5.2. Чтобы включить его, запустите `/fast` на Fable 5.2. Если вы не настроили [обязательное согласие за сессию](#require-per-session-opt-in), этот выбор сохраняется между сессиями в Anthropic API, пока вы не отключите быстрый режим или не включите его с другой моделью.

67 69 

68Всякий раз, когда переключение модели включает или отключает быстрый режим, Claude Code показывает подтверждение `Fast mode ON` или `Fast mode OFF`, и значок `↯` появляется во время активного быстрого режима. Это применяется независимо от того, переключаетесь ли вы с помощью `/model`, с помощью [`/config model=<model>`](https://code.claude.com/docs/ru/settings) или с устройства, подключенного через [Remote Control](https://code.claude.com/docs/ru/remote-control.md).70Всякий раз, когда переключение модели включает или отключает быстрый режим, Claude Code показывает подтверждение `Fast mode ON` или `Fast mode OFF`, и значок `↯` появляется во время активного быстрого режима. Это применяется независимо от того, переключаетесь ли вы с помощью `/model`, с помощью [`/config model=<model>`](https://code.claude.com/docs/ru/settings) или с устройства, подключенного через [Remote Control](https://code.claude.com/docs/ru/remote-control.md).

69 71 

70Claude Code повторно отправляет статус быстрого режима сессии на устройства, подключенные через Remote Control, после переключения модели, переподключения или неудачной [проверки доступности](#use-fast-mode-behind-proxies-and-llm-gateways).

71 

72### Использование быстрого режима в облачных сеансах72### Использование быстрого режима в облачных сеансах

73 73 

74Быстрый режим работает в [облачных сеансах](https://code.claude.com/docs/ru/claude-code-on-the-web.md), когда он доступен на вашей учетной записи, независимо от того, работает ли сеанс на инфраструктуре, управляемой Anthropic, или на [самостоятельно размещенном runner](https://code.claude.com/docs/ru/self-hosted-environments). Требует Claude Code v2.1.271 или более поздней версии в окружении сеанса.74Быстрый режим работает в [облачных сессиях](https://code.claude.com/docs/ru/claude-code-on-the-web.md), когда он доступен в вашей учетной записи, независимо от того, работает ли сессия на инфраструктуре, управляемой Anthropic, или на [самостоятельно размещенном runner](https://code.claude.com/docs/ru/self-hosted-environments) в Anthropic API. Требует Claude Code v2.1.271 или более поздней версии в окружении сессии.

75 75 

76Введите `/fast on` в сеансе, чтобы включить быстрый режим. Он остается включенным только для этого сеанса и не сохраняется как ваше значение по умолчанию. [Требования](#requirements) применяются и в облачных сеансах.76Введите `/fast on` в сеансе, чтобы включить быстрый режим. Он остается включенным только для этого сеанса и не сохраняется как ваше значение по умолчанию. [Требования](#requirements) применяются и в облачных сеансах.

77 77 


79 79 

80## Понимание компромисса стоимости80## Понимание компромисса стоимости

81 81 

82Быстрый режим имеет более высокую цену за токен, чем стандартная скорость:82Быстрый режим имеет более высокую цену за токен, чем стандартная скорость. Вот тарифы Anthropic:

83 83 

84| Модель | Входные данные (MTok) | Выходные данные (MTok) |84| Модель | Входные данные (MTok) | Выходные данные (MTok) |

85| - | - | - |85| - | - | - |


129 129 

130Быстрый режим требует всех следующих условий:130Быстрый режим требует всех следующих условий:

131 131 

132* **Только Anthropic API или подписка**: быстрый режим доступен через Anthropic Console API и для планов подписки Claude с использованием кредитов. Он недоступен на Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или Claude Platform на AWS. Организации Console также должны иметь [предоставленный доступ к быстрому режиму](#enable-fast-mode-for-your-organization), чтобы использовать его с Opus 5 или Opus 4.8.132* **Поддерживаемый провайдер**: быстрый режим доступен через Anthropic Console API, для планов подписки Claude с использованием кредитов использования, а также на Google Cloud's Agent Platform [с определёнными условиями](#use-fast-mode-on-agent-platform). Он недоступен на Amazon Bedrock, Microsoft Foundry или Claude Platform на AWS, где `/fast` сообщает "Fast mode is not available on this provider". Организации Console также должны иметь [предоставленный доступ к быстрому режиму](#enable-fast-mode-for-your-organization), чтобы использовать его с Opus 5 или Opus 4.8.

133* **Кредиты использования включены для планов подписки**: на плане Pro, Max, Ultra, Team или Enterprise в вашей учётной записи должны быть включены [кредиты использования](https://code.claude.com/docs/ru/costs.md#add-usage-credits-to-your-subscription), что позволяет оплату сверх включённого в ваш план использования. До их включения `/fast` сообщает "Fast mode requires usage credits". Чтобы включить их, выполните шаг для вашего плана:133* **Кредиты использования включены для планов подписки**: на плане Pro, Max, Ultra, Team или Enterprise в вашей учётной записи должны быть включены [кредиты использования](https://code.claude.com/docs/ru/costs.md#add-usage-credits-to-your-subscription), что позволяет оплату сверх включённого в ваш план использования. До их включения `/fast` сообщает "Fast mode requires usage credits". Чтобы включить их, выполните шаг для вашего плана:

134 * На Pro, Max и Ultra включите их в разделе **Usage credits** на странице [**Settings > Usage**](https://claude.ai/settings/usage) на claude.ai или запустите `/usage-credits`, чтобы открыть эту страницу.134 * На Pro, Max и Ultra включите их в разделе **Usage credits** на странице [**Settings > Usage**](https://claude.ai/settings/usage) на claude.ai или запустите `/usage-credits`, чтобы открыть эту страницу.

135 * На Team и Enterprise участник с доступом к биллингу включает их для организации в [**Organization settings > Usage**](https://claude.ai/admin-settings/usage), а участник без такого доступа запускает `/usage-credits`, чтобы отправить запрос администраторам организации.135 * На Team и Enterprise участник с доступом к биллингу включает их для организации в [**Organization settings > Usage**](https://claude.ai/admin-settings/usage), а участник без такого доступа запускает `/usage-credits`, чтобы отправить запрос администраторам организации.


150> * **Быстрый режим не включен**: если быстрый режим не был включен для вашей организации, включение быстрого режима с помощью `/fast` показывает "Fast mode has been disabled by your organization."150> * **Быстрый режим не включен**: если быстрый режим не был включен для вашей организации, включение быстрого режима с помощью `/fast` показывает "Fast mode has been disabled by your organization."

151> * **Быстрый режим отключен управляемыми параметрами**: если ваша организация развертывает [управляемые параметры](https://code.claude.com/docs/ru/managed-settings.md), которые устанавливают [`fastMode: false`](https://code.claude.com/docs/ru/settings-reference#fastmode), включение быстрого режима с помощью `/fast` показывает то же сообщение "Fast mode has been disabled by your organization".151> * **Быстрый режим отключен управляемыми параметрами**: если ваша организация развертывает [управляемые параметры](https://code.claude.com/docs/ru/managed-settings.md), которые устанавливают [`fastMode: false`](https://code.claude.com/docs/ru/settings-reference#fastmode), включение быстрого режима с помощью `/fast` показывает то же сообщение "Fast mode has been disabled by your organization".

152> * **Требуется явное согласие для каждого сеанса**: управляемые параметры, которые устанавливают [`fastModePerSessionOptIn: true`](#require-per-session-opt-in), отклоняют `/fast on` с тем же сообщением везде, кроме интерактивного сеанса терминала.152> * **Требуется явное согласие для каждого сеанса**: управляемые параметры, которые устанавливают [`fastModePerSessionOptIn: true`](#require-per-session-opt-in), отклоняют `/fast on` с тем же сообщением везде, кроме интерактивного сеанса терминала.

153> * **Модель быстрого режима не разрешена**: если список разрешённых моделей [`availableModels`](https://code.claude.com/docs/ru/model-config#restrict-model-selection) вашей организации исключает модель Opus быстрого режима, включение отклоняется с "is not in your organization's allowed models". В сессии, уже работающей на разрешенной модели, поддерживающей быстрый режим, `/fast` вместо этого включает быстрый режим на вашей текущей модели без переключения моделей.153> * **Модель быстрого режима не разрешена**: если список разрешённых моделей [`availableModels`](https://code.claude.com/docs/ru/model-config#restrict-model-selection) вашей организации исключает модель, на которую переключает `/fast`, включение отклоняется с "is not in your organization's allowed models". В сессии, уже работающей на разрешенной модели, поддерживающей быстрый режим, `/fast` вместо этого включает быстрый режим на вашей текущей модели без переключения моделей.

154 154 

155### Включение быстрого режима для вашей организации155### Включение быстрого режима для вашей организации

156 156 


163 163 

164Другой вариант полного отключения быстрого режима — установить `CLAUDE_CODE_DISABLE_FAST_MODE=1`. См. [Переменные окружения](https://code.claude.com/docs/ru/env-vars.md).164Другой вариант полного отключения быстрого режима — установить `CLAUDE_CODE_DISABLE_FAST_MODE=1`. См. [Переменные окружения](https://code.claude.com/docs/ru/env-vars.md).

165 165 

166### Использование быстрого режима на Agent Platform

167 

168На [Google Cloud's Agent Platform](https://code.claude.com/docs/ru/google-vertex-ai.md) вы можете включить быстрый режим для Fable 5.2 с помощью `/fast` в интерактивной сессии или с помощью флагов запуска в [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md). Требуется Claude Code v2.1.322 или новее.

169 

170Для быстрого режима [регион](https://code.claude.com/docs/ru/google-vertex-ai.md#region-configuration) для Fable 5.2 должен быть `global`, `us` или `eu`. В другом регионе `/fast` сообщает `Fast mode needs Vertex region global, us or eu`, а `claude -p` работает на стандартной скорости. Задайте регион в своей оболочке перед запуском Claude Code, например `global`:

171 

172```bash theme={null}

173export VERTEX_REGION_CLAUDE_FABLE_5_2=global

174```

175 

176Затем включите быстрый режим:

177 

178* **В интерактивной сессии**: выполните `/fast`. Команда переключает вас на Fable 5.2 с модели Opus или другой модели без быстрого режима на Agent Platform. Быстрый режим не сохраняется как ваш режим по умолчанию.

179* **В неинтерактивном режиме**: передайте Fable 5.2 в [`--model`](https://code.claude.com/docs/ru/cli-reference#cli-flags) и быстрый режим в [`--settings`](https://code.claude.com/docs/ru/cli-reference#cli-flags), например `claude -p "Summarize this project" --model claude-fable-5-2 --settings '{"fastMode": true}'`

180 

181На Agent Platform `"fastMode": true` в ваших пользовательских, проектных, локальных или управляемых настройках не действует.

182 

183Если Agent Platform отклоняет быстрый режим, Claude Code возвращается к стандартной скорости. В этом случае интерактивная сессия показывает одно из следующих сообщений в терминале:

184 

185* `Using standard speed on Fable 5.2 · fast mode wasn't available`: выполните `/fast on`, чтобы снова попробовать быстрый режим

186* `Fast mode was refused for this project · trying again in 30m`: Agent Platform ответила на запрос быстрого режима ошибкой 403 или 404. Чтобы попробовать раньше, выполните `/fast on`.

187 

166### Использование быстрого режима за прокси и шлюзами LLM188### Использование быстрого режима за прокси и шлюзами LLM

167 189 

168Перед предложением быстрого режима Claude Code проверяет доступность быстрого режима вашей организации с помощью запроса непосредственно к `api.anthropic.com`. Проверка не следует [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/ru/llm-gateway-connect#set-the-base-url-and-credential), поэтому в сети, которая маршрутизирует трафик Claude через [шлюз LLM](https://code.claude.com/docs/ru/llm-gateway) и блокирует прямой исходящий трафик к `api.anthropic.com`, проверка не удается, даже если запросы вывода работают. Проверка использует настроенный [HTTP прокси](https://code.claude.com/docs/ru/network-config.md#proxy-configuration), поэтому блокировка сети не удается проверке только там, где `api.anthropic.com` недостижим даже через прокси.190Перед предложением быстрого режима на Anthropic API Claude Code проверяет доступность быстрого режима вашей организации с помощью запроса непосредственно к `api.anthropic.com`. Проверка не следует [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/ru/llm-gateway-connect#set-the-base-url-and-credential), поэтому в сети, которая маршрутизирует трафик Claude через [шлюз LLM](https://code.claude.com/docs/ru/llm-gateway) и блокирует прямой исходящий трафик к `api.anthropic.com`, проверка не удается, даже если запросы вывода работают.

169 191 

170Если в вашей организации быстрый режим включен, а `/fast` сообщает обратное, найдите показанное сообщение среди следующих случаев.192Проверка использует настроенный [HTTP прокси](https://code.claude.com/docs/ru/network-config.md#proxy-configuration), поэтому сетевая блокировка приводит к неудаче проверки только там, где `api.anthropic.com` недостижим даже через прокси. Если в вашей организации быстрый режим включен, а `/fast` сообщает обратное, найдите показанное сообщение среди следующих случаев.

171 193 

172#### Fast mode unavailable due to network connectivity issues194#### Fast mode unavailable due to network connectivity issues

173 195 


199 221 

200### Требование явного согласия для каждого сеанса222### Требование явного согласия для каждого сеанса

201 223 

202По умолчанию быстрый режим, который пользователь включает в интерактивной сессии, сохраняется между сессиями на поддерживаемой модели. На Fable 5.2 он сохраняется, только если пользователь [включил его во время использования Fable 5.2](#switch-models-while-fast-mode-is-on).224По умолчанию на Anthropic API быстрый режим, который пользователь включает в интерактивной сессии, сохраняется между сессиями на поддерживаемой модели. На Fable 5.2 быстрый режим сохраняется, только если пользователь [включил его во время использования Fable 5.2](#switch-models-while-fast-mode-is-on).

203 225 

204Чтобы каждая сессия начиналась с отключенным быстрым режимом, установите `fastModePerSessionOptIn` в значение `true` в любом [файле настроек](https://code.claude.com/docs/ru/settings.md#where-settings-live). Тогда пользователи включают его с помощью `/fast` в каждой сессии. Владельцы на планах [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) или [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) могут развернуть его на уровне организации через [настройки, управляемые сервером](https://code.claude.com/docs/ru/server-managed-settings.md).226Чтобы каждая сессия начиналась с отключенным быстрым режимом, установите `fastModePerSessionOptIn` в значение `true` в любом [файле настроек](https://code.claude.com/docs/ru/settings.md#where-settings-live). Тогда пользователи включают его с помощью `/fast` в каждой сессии. Владельцы на планах [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) или [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) могут развернуть его на уровне организации через [настройки, управляемые сервером](https://code.claude.com/docs/ru/server-managed-settings.md).

205 227 


227Если вы исчерпаете кредиты использования во время сеанса, Claude Code повторно пытается выполнить каждый отклоненный запрос быстрого режима со стандартной скоростью и ценами, поэтому вы продолжаете работать, и охлаждение отсутствует. То, как вы видите отклонение, зависит от типа сеанса:249Если вы исчерпаете кредиты использования во время сеанса, Claude Code повторно пытается выполнить каждый отклоненный запрос быстрого режима со стандартной скоростью и ценами, поэтому вы продолжаете работать, и охлаждение отсутствует. То, как вы видите отклонение, зависит от типа сеанса:

228 250 

229* В интерактивной сессии Claude Code показывает уведомление "Fast mode disabled · Out of usage credits" и отключает быстрый режим. Ваше сохраненное предпочтение быстрого режима не изменяется; запустите `/fast`, чтобы снова включить быстрый режим.251* В интерактивной сессии Claude Code показывает уведомление "Fast mode disabled · Out of usage credits" и отключает быстрый режим. Ваше сохраненное предпочтение быстрого режима не изменяется; запустите `/fast`, чтобы снова включить быстрый режим.

230* В [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с `--output-format stream-json` и через Agent SDK Claude Code выдает тот же текст в потоке сообщений как `system` сообщение с подтипом `notification`, один раз за ход, пока у вас закончились кредиты использования. Быстрый режим остается включенным. Требуется Claude Code v2.1.221 или позже.252* В [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с `--output-format stream-json` и через Agent SDK Claude Code выдает тот же текст в потоке сообщений как `system` сообщение с подтипом `notification`. Сообщение приходит один раз за ход, пока у вас закончились кредиты использования. Быстрый режим остается включенным.

231 253 

232## Исследовательское превью254## Исследовательское превью

233 255 

Details

93 <td>✓ (для Opus 5 и 4.8 требуется подготовленный доступ)</td>93 <td>✓ (для Opus 5 и 4.8 требуется подготовленный доступ)</td>

94 <td>✗</td>94 <td>✗</td>

95 <td>✗</td>95 <td>✗</td>

96 <td>✗</td>96 <td>✓ ([Fable 5.2, с условиями](https://code.claude.com/docs/ru/fast-mode.md#use-fast-mode-on-agent-platform))</td>

97 <td>✗</td>97 <td>✗</td>

98 </tr>98 </tr>

99 99 


256 256 

257> [tab] Google Cloud's Agent Platform257> [tab] Google Cloud's Agent Platform

258>258>

259> **Недоступно:** все [функции, требующие подписку Claude](#features-that-require-a-claude-subscription), плюс [fast mode](https://code.claude.com/docs/ru/fast-mode.md), [Advisor](https://code.claude.com/docs/ru/advisor.md), [Channels](https://code.claude.com/docs/ru/channels.md), [панель управления аналитики](https://code.claude.com/docs/ru/analytics.md), [server-managed settings](https://code.claude.com/docs/ru/server-managed-settings.md) и [команды `/design-sync` и `/import`](https://code.claude.com/docs/ru/commands#all-commands).259> **Недоступно:** все [функции, требующие подписку Claude](#features-that-require-a-claude-subscription), плюс [Advisor](https://code.claude.com/docs/ru/advisor.md), [Channels](https://code.claude.com/docs/ru/channels.md), [панель управления аналитики](https://code.claude.com/docs/ru/analytics.md), [server-managed settings](https://code.claude.com/docs/ru/server-managed-settings.md) и [команды `/design-sync` и `/import`](https://code.claude.com/docs/ru/commands#all-commands).

260>260>

261> **Частичная поддержка:**261> **Частичная поддержка:**

262>262>

263> * [Desktop](https://code.claude.com/docs/ru/desktop.md): через [управляемые параметры](https://claude.com/docs/third-party/claude-desktop/configuration) или [Claude Desktop на 3P](https://claude.com/docs/third-party/claude-desktop/overview)263> * [Desktop](https://code.claude.com/docs/ru/desktop.md): через [управляемые параметры](https://claude.com/docs/third-party/claude-desktop/configuration) или [Claude Desktop на 3P](https://claude.com/docs/third-party/claude-desktop/overview)

264> * [Веб-поиск](https://code.claude.com/docs/ru/tools-reference.md#websearch-tool-behavior): Opus 4, Sonnet 4, Haiku 4.5 и более поздние модели264> * [Веб-поиск](https://code.claude.com/docs/ru/tools-reference.md#websearch-tool-behavior): Opus 4, Sonnet 4, Haiku 4.5 и более поздние модели

265> * [Быстрый режим](https://code.claude.com/docs/ru/fast-mode.md#use-fast-mode-on-agent-platform): Fable 5.2 в регионах `global`, `us` и `eu` или стандартная скорость, если Agent Platform отклоняет быстрый режим

265> * [Авторежим](https://code.claude.com/docs/ru/auto-mode-config.md): только Sonnet 5 или более поздние версии, Opus 4.7 или более поздние версии, Haiku 5.5 и модели Fable266> * [Авторежим](https://code.claude.com/docs/ru/auto-mode-config.md): только Sonnet 5 или более поздние версии, Opus 4.7 или более поздние версии, Haiku 5.5 и модели Fable

266> * [Cross-session messaging](https://code.claude.com/docs/ru/cross-session-messaging.md): между вашими сеансами на этой машине только <sup>[5](#fn5)</sup>267> * [Cross-session messaging](https://code.claude.com/docs/ru/cross-session-messaging.md): между вашими сеансами на этой машине только <sup>[5](#fn5)</sup>

267> * [Zero Data Retention](https://code.claude.com/docs/ru/zero-data-retention.md): в соответствии с вашим соглашением Google Cloud268> * [Zero Data Retention](https://code.claude.com/docs/ru/zero-data-retention.md): в соответствии с вашим соглашением Google Cloud

gateways.md +1 −1

Details

50 50 

51## Subscriptions and gateways51## Subscriptions and gateways

52 52 

53Когда разработчики подключаются через шлюз с учетными данными шлюза, использование выставляется на счет учетной записи поставщика вашей организации по тарифам API, и их подписки claude.ai не используются и не взимаются. Установка [`ANTHROPIC_AUTH_TOKEN`](https://code.claude.com/docs/ru/env-vars) для шлюза, который вы запускаете, или вход в Claude apps gateway с помощью `/login`, отключает вход по подписке для этого сеанса. Каждый запрос, перенаправленный под этим учетным данием, выставляется на счет учетной записи, стоящей за учетными данными поставщика шлюза.53Когда разработчики подключаются через шлюз с учётными данными шлюза, использование оплачивается с учётной записи поставщика вашей организации по тарифам API, а их подписки claude.ai не используются и не тарифицируются. Каждый запрос, перенаправленный с этими учётными данными, оплачивается с учётной записи, стоящей за учётными данными поставщика шлюза.

54 54 

55Исключением является установка только `ANTHROPIC_BASE_URL`, без учетных данных шлюза. Запросы по-прежнему маршрутизируются через шлюз, но сохраненный вход claude.ai остается активным учетным данием, поэтому применяются ограничения использования и выставление счетов подписки. [Other LLM gateways](https://code.claude.com/docs/ru/llm-gateway#subscriptions-and-gateways) охватывает эту конфигурацию и то, что шлюз должен перенаправить, чтобы это работало.55Исключением является установка только `ANTHROPIC_BASE_URL`, без учетных данных шлюза. Запросы по-прежнему маршрутизируются через шлюз, но сохраненный вход claude.ai остается активным учетным данием, поэтому применяются ограничения использования и выставление счетов подписки. [Other LLM gateways](https://code.claude.com/docs/ru/llm-gateway#subscriptions-and-gateways) охватывает эту конфигурацию и то, что шлюз должен перенаправить, чтобы это работало.

56 56 

Details

135| Merge queues | Чтение |135| Merge queues | Чтение |

136| Metadata | Чтение |136| Metadata | Чтение |

137| Pull requests | Чтение и запись |137| Pull requests | Чтение и запись |

138| Repository creation | Чтение и запись |

138| Repository hooks | Чтение и запись |139| Repository hooks | Чтение и запись |

139| Statuses | Чтение |140| Statuses | Чтение |

140| Workflows | Чтение и запись |141| Workflows | Чтение и запись |

Details

190Несколько функций работают по-другому на GHES, чем на github.com. [Таблица функций](#what-works-with-github-enterprise-server) суммирует поддержку; в этом разделе рассматриваются обходные пути.190Несколько функций работают по-другому на GHES, чем на github.com. [Таблица функций](#what-works-with-github-enterprise-server) суммирует поддержку; в этом разделе рассматриваются обходные пути.

191 191 

192* **Команда `/install-github-app`**: следуйте потоку [настройки администратором](#admin-setup) на claude.ai вместо этого. Если вы также хотите workflows GitHub Actions на GHES, адаптируйте [пример workflow](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml) вручную.192* **Команда `/install-github-app`**: следуйте потоку [настройки администратором](#admin-setup) на claude.ai вместо этого. Если вы также хотите workflows GitHub Actions на GHES, адаптируйте [пример workflow](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml) вручную.

193* **GitHub MCP server**: используйте вместо этого CLI `gh`, настроенный для вашего хоста GHES. Запустите `gh auth login --hostname github.example.com` для аутентификации, затем Claude сможет использовать команды `gh` в сессиях.193* **GitHub MCP-сервер**: в сессии на вашем собственном компьютере используйте вместо этого CLI `gh`, настроенный для вашего хоста GHES. Запустите `gh auth login --hostname github.example.com` для аутентификации, после чего Claude сможет использовать там команды `gh`.

194 194 

195## Troubleshooting195## Troubleshooting

196 196 

goal.md +3 −2

Details

131 131 

132#### Ошибки, которые вы должны исправить, очищают цель132#### Ошибки, которые вы должны исправить, очищают цель

133 133 

134Если ход завершается ошибкой, которая не будет очищена, пока вы её не исправите, Claude Code очищает цель и выводит предупреждение, называя причину. Предупреждение начинается с `Goal cleared after an unrecoverable error` и заканчивается с `Run /goal again to continue`. Исправьте причину, затем [установите цель снова](#set-a-goal) с помощью `/goal <condition>`. Четыре вида отказа очищают цель:134Если ход завершается ошибкой, которая не будет устранена, пока вы её не исправите, Claude Code очищает цель и выводит предупреждение, называя причину. Предупреждение начинается с `Goal cleared after an unrecoverable error` и заканчивается на `Run /goal again to continue`. Исправьте причину, затем [установите цель снова](#set-a-goal) с помощью `/goal <condition>`. К отказам, которые очищают цель, относятся:

135 135 

136* Ошибка аутентификации, когда Claude Code управляет своими собственными учётными данными. Когда хост управляет ими для вас, например в приложении для рабочего стола или [облачном сеансе](https://code.claude.com/docs/ru/claude-code-on-the-web.md), Claude Code оставляет цель активной, потому что хост восстанавливает доступ самостоятельно.136* Ошибка аутентификации, когда Claude Code управляет своими собственными учётными данными. Когда хост управляет ими для вас, например в приложении для рабочего стола или [облачном сеансе](https://code.claude.com/docs/ru/claude-code-on-the-web.md), Claude Code оставляет цель активной, потому что хост восстанавливает доступ самостоятельно.

137* Диск, заполненный настолько, что Claude Code не может обновить ваш вход в claude.ai, когда Claude Code управляет своими собственными учётными данными. Предупреждение показывает `(disk full)`. [Освободите место на диске, на котором находится каталог конфигурации Claude Code](https://code.claude.com/docs/ru/errors.md#could-not-refresh-your-login-disk-full).

137* Исчерпанный баланс кредитов138* Исчерпанный баланс кредитов

138* Переполнение контекста, которое [auto-compact](https://code.claude.com/docs/ru/model-config.md#set-the-auto-compact-window) не смог очистить139* Переполнение контекста, которое [auto-compact](https://code.claude.com/docs/ru/model-config.md#set-the-auto-compact-window) не смог очистить

139* Модель, которая недоступна140* Модель, которая недоступна


178 179 

179## Требования180## Требования

180 181 

181Claude Code делает `/goal` доступным в соответствии с тем же [правилом доверия рабочей области, что и для hooks в файлах параметров](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder), потому что оценщик является частью системы hooks. `/goal` также недоступен, когда [`disableAllHooks`](https://code.claude.com/docs/ru/hooks#disable-or-remove-hooks) имеет значение `true` после применения приоритета параметров, или когда [`allowManagedHooksOnly`](https://code.claude.com/docs/ru/settings-reference#allowmanagedhooksonly) установлен в управляемых параметрах. В каждом случае команда сообщает вам причину вместо того, чтобы молча ничего не делать.182Claude Code делает `/goal` доступным в соответствии с тем же [правилом доверия рабочего пространства, что и для хуков в файлах настроек](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder), потому что оценщик является частью системы хуков. `/goal` также недоступен, когда [`disableAllHooks`](https://code.claude.com/docs/ru/hooks#disable-or-remove-hooks) имеет значение `true` после применения приоритета настроек, или когда [`allowManagedHooksOnly`](https://code.claude.com/docs/ru/settings-reference#allowmanagedhooksonly) задан в управляемых настройках.

182 183 

183## См. также184## См. также

184 185 

Details

139* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 и позже**: Claude Code включает поиск инструментов по умолчанию.139* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 и позже**: Claude Code включает поиск инструментов по умолчанию.

140* **Более ранние модели**: Claude Code загружает определения инструментов MCP заранее, потому что их стеки обслуживания Agent Platform отклоняют требуемый бета-заголовок. Установка `ENABLE_TOOL_SEARCH=true` не переопределяет это.140* **Более ранние модели**: Claude Code загружает определения инструментов MCP заранее, потому что их стеки обслуживания Agent Platform отклоняют требуемый бета-заголовок. Установка `ENABLE_TOOL_SEARCH=true` не переопределяет это.

141 141 

142Установите `ENABLE_TOOL_SEARCH=false`, чтобы отключить поиск инструментов на каждой модели. До версии 2.1.221 Claude Code отключал поиск инструментов для всех моделей на Google Cloud's Agent Platform, если вы не установили `ENABLE_TOOL_SEARCH=true`.142Установите `ENABLE_TOOL_SEARCH=false`, чтобы отключить поиск инструментов на каждой модели.

143 143 

144### Закрепите версии моделей144### Закрепите версии моделей

145 145 

hooks.md +214 −190

Details

222 222 

223## Конфигурация223## Конфигурация

224 224 

225Hooks определяются в JSON файлах настроек. Конфигурация имеет три уровня вложенности:225Хуки определяются в JSON-файлах настроек. Конфигурация имеет три уровня вложенности:

226 226 

2271. Выберите [hook event](#hook-events) для ответа, например `PreToolUse` или `Stop`2271. Выберите [событие хука](#hook-events), на которое нужно реагировать, например `PreToolUse` или `Stop`

2282. Добавьте [группу matcher](#matcher-patterns), чтобы фильтровать срабатывание, например «для инструмента Bash»2282. Добавьте [группу matcher](#matcher-patterns), чтобы отфильтровать, когда он срабатывает, например «для инструмента Bash»

2293. Определите один или несколько [hook handlers](#hook-handler-fields) для запуска при совпадении2293. Определите один или несколько [обработчиков хука](#hook-handler-fields), которые будут запускаться при совпадении

230 230 

231См. [Как разрешается hook](#how-a-hook-resolves) выше для полного пошагового руководства с аннотированным примером.231Полный разбор с аннотированным примером см. выше в разделе [Как разрешается хук](#how-a-hook-resolves).

232 232 

233> [!NOTE]233> [!NOTE]

234>234>

235> На этой странице используются специальные термины для каждого уровня: **hook event** для точки жизненного цикла, **matcher group** для фильтра и **hook handler** для команды оболочки, конечной точки HTTP, инструмента MCP, подсказки или агента, который запускается. "Hook" сам по себе относится к общей функции.235> На этой странице для каждого уровня используются определённые термины: **событие хука** — для точки жизненного цикла, **группа matcher** — для фильтра и **обработчик хука** — для запускаемой shell-команды, HTTP-эндпоинта, MCP-инструмента, промпта или агента. Слово «хук» само по себе обозначает функцию в целом.

236 236 

237### Расположение hook237### Расположение хуков

238 238 

239Место, где вы определяете hook, определяет его область действия:239Место, где вы определяете хук, определяет его область действия:

240 240 

241| Расположение | Область действия | Общий доступ |241| Расположение | Область действия | Можно ли поделиться |

242| :- | :- | :- |242| :- | :- | :- |

243| `~/.claude/settings.json` | Все ваши проекты | Нет, локально на вашей машине |243| `~/.claude/settings.json` | Все ваши проекты | Нет, локально для вашего компьютера |

244| `.claude/settings.json` | Один проект | Да, можно зафиксировать в репозитории |244| `.claude/settings.json` | Один проект | Да, можно закоммитить в репозиторий |

245| `.claude/settings.local.json` | Один проект | Нет, игнорируется git когда Claude Code сохраняет параметр в него |245| `.claude/settings.local.json` | Один проект | Нет, добавляется в gitignore, когда Claude Code сохраняет в него настройку |

246| Управляемые параметры политики | Организация | Да, контролируется администратором |246| Настройки управляемой политики | Вся организация | Да, контролируется администратором |

247| [Plugin](https://code.claude.com/docs/ru/plugins/overview.md) `hooks/hooks.json` | Когда плагин включен | Да, поставляется с плагином |247| `hooks/hooks.json` [плагина](https://code.claude.com/docs/ru/plugins/overview.md) | Когда плагин включён | Да, поставляется вместе с плагином |

248| [Skill](https://code.claude.com/docs/ru/skills.md) frontmatter | Остаток сеанса после вызова skill. См. [Hooks in skills and agents](#hooks-in-skills-and-agents) | Да, определено в файле skill |248| Frontmatter [скилла](https://code.claude.com/docs/ru/skills.md) | Оставшаяся часть сессии после вызова скилла. См. [Хуки в скиллах и агентах](#hooks-in-skills-and-agents) | Да, определяется в файле скилла |

249| [Subagent](https://code.claude.com/docs/ru/sub-agents.md) frontmatter | Пока этот subagent работает | Да, определено в файле subagent |249| Frontmatter [субагента](https://code.claude.com/docs/ru/sub-agents.md) | Пока работает этот субагент | Да, определяется в файле субагента |

250 250 

251Облачные сеансы на [Claude Code в веб-версии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) не читают ваш локальный `~/.claude/settings.json`. В [самостоятельно размещённой среде](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#permissions-and-tool-approval), Claude Code также запускает hooks, которые оператор инициализировал из `~/.claude/` хоста runner, и запускает hooks в файле управляемых параметров образа runner, когда этот файл находится среди [управляемых источников, которые применяет Claude Code](https://code.claude.com/docs/ru/managed-settings.md#how-claude-code-combines-managed-sources), что по умолчанию означает только когда ни управляемые на сервере параметры, ни доставленная MDM политика Claude Code не предоставляют управляемый уровень. См. [что переносится из вашей установки](https://code.claude.com/docs/ru/cloud-environments.md#what-carries-over-from-your-setup) для того, какие файлы настроек и плагины, и таким образом какие hooks, достигают облачного сеанса.251[Облачные сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) не читают ваш локальный `~/.claude/settings.json`. В [самостоятельно размещённом окружении](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#permissions-and-tool-approval) Claude Code также запускает хуки, которые оператор заранее поместил в `~/.claude/` хоста раннера, и запускает хуки из файла управляемых настроек образа раннера, когда этот файл входит в число [управляемых источников, которые применяет Claude Code](https://code.claude.com/docs/ru/managed-settings.md#how-claude-code-combines-managed-sources), что по умолчанию означает: только когда ни настройки, управляемые сервером, ни политика Claude Code, доставленная через MDM, не предоставляют управляемый уровень. О том, какие файлы настроек и плагины, а значит и какие хуки, попадают в облачную сессию, см. [что переносится из вашей настройки](https://code.claude.com/docs/ru/cloud-environments.md#what-carries-over-from-your-setup).

252 252 

253Для получения подробной информации о разрешении файлов настроек см. [settings](https://code.claude.com/docs/ru/settings.md).253Подробнее о разрешении файлов настроек см. [настройки](https://code.claude.com/docs/ru/settings.md).

254 254 

255Hooks из файлов настроек, управляемых параметров политики и плагинов также запускаются внутри [subagents](https://code.claude.com/docs/ru/sub-agents.md). Когда subagent вызывает инструмент, события инструмента, такие как `PreToolUse` и `PostToolUse`, запускают те же настроенные hooks, что и в основном разговоре, и входные данные содержат поля `agent_id` и `agent_type` [общих входных полей](#common-input-fields), которые идентифицируют subagent.255Хуки из файлов настроек, настроек управляемой политики и плагинов также запускаются внутри [субагентов](https://code.claude.com/docs/ru/sub-agents.md). Когда субагент вызывает инструмент, события инструментов, такие как `PreToolUse` и `PostToolUse`, запускают те же настроенные хуки, что и в основном диалоге, а входные данные содержат [общие поля входных данных](#common-input-fields) `agent_id` и `agent_type`, которые идентифицируют субагента.

256 256 

257Администраторы могут использовать [`allowManagedHooksOnly`](https://code.claude.com/docs/ru/settings-reference#allowmanagedhooksonly) в [управляемых параметрах](https://code.claude.com/docs/ru/managed-settings.md) для ограничения того, какие hooks запускаются:257Администраторы могут использовать [`allowManagedHooksOnly`](https://code.claude.com/docs/ru/settings-reference#allowmanagedhooksonly) в [управляемых настройках](https://code.claude.com/docs/ru/managed-settings.md), чтобы ограничить, какие хуки запускаются:

258 258 

259* Ваши пользовательские, проектные, локальные и плагинные hooks блокируются. Hooks из плагинов, принудительно включённых в управляемых параметрах `enabledPlugins`, исключены259* Ваши пользовательские, проектные, локальные хуки и хуки плагинов блокируются. Исключение составляют хуки из плагинов, принудительно включённых в `enabledPlugins` управляемых настроек

260* Claude Code также сужает ваши параметры [`statusLine`](https://code.claude.com/docs/ru/statusline), [`fileSuggestion`](https://code.claude.com/docs/ru/settings-reference#filesuggestion) и [`subagentStatusLine`](https://code.claude.com/docs/ru/statusline#subagent-status-lines) до управляемых параметров260* Claude Code также ограничивает ваши настройки [`statusLine`](https://code.claude.com/docs/ru/statusline), [`fileSuggestion`](https://code.claude.com/docs/ru/settings-reference#filesuggestion) и [`subagentStatusLine`](https://code.claude.com/docs/ru/statusline#subagent-status-lines) управляемыми настройками

261* Claude Code также отключает плагины с источником [`command`](https://code.claude.com/docs/ru/plugins/marketplace-reference#command-plugin-source), включая плагины, принудительно включённые в управляемых параметрах `enabledPlugins`, если только [`disableCommandPluginSources`](https://code.claude.com/docs/ru/settings-reference#disablecommandpluginsources) явно не установлен на `false`. Источники `command` требуют Claude Code v2.1.229 или позже261* Claude Code также отключает плагины с [источником `command`](https://code.claude.com/docs/ru/plugins/marketplace-reference#command-plugin-source), включая плагины, принудительно включённые в `enabledPlugins` управляемых настроек, если только [`disableCommandPluginSources`](https://code.claude.com/docs/ru/settings-reference#disablecommandpluginsources) явно не установлен в `false`. Источники `command` требуют Claude Code v2.1.229 или новее

262* Claude Code также блокирует команды marketplace [`headersHelper`](https://code.claude.com/docs/ru/plugins/host-marketplace#authenticate-archive-downloads) если только [`disableCommandPluginSources`](https://code.claude.com/docs/ru/settings-reference#disablecommandpluginsources) явно не установлен на `false`, за исключением marketplace, которые сами управляемые параметры объявляют262* Claude Code также блокирует [команды `headersHelper`](https://code.claude.com/docs/ru/plugins/host-marketplace#authenticate-archive-downloads) маркетплейсов, если только [`disableCommandPluginSources`](https://code.claude.com/docs/ru/settings-reference#disablecommandpluginsources) явно не установлен в `false`, за исключением маркетплейса, который объявлен в самих управляемых настройках

263 263 

264См. [что запускается под `allowManagedHooksOnly`](https://code.claude.com/docs/ru/settings-reference#what-runs-under-allowmanagedhooksonly).264См. [что запускается при `allowManagedHooksOnly`](https://code.claude.com/docs/ru/settings-reference#what-runs-under-allowmanagedhooksonly).

265 265 

266Hook записи объединяются на уровнях параметров, а не заменяют друг друга: пользовательские, проектные и локальные параметры добавляют свои собственные hooks без удаления управляемых, и параметр [`disableAllHooks`](#disable-or-remove-hooks) не может отключить управляемые hooks извне управляемых параметров.266Записи хуков объединяются между уровнями настроек, а не заменяют друг друга: пользовательские, проектные и локальные настройки добавляют собственные хуки, не удаляя управляемые, а настройка [`disableAllHooks`](#disable-or-remove-hooks) не может отключить управляемые хуки, если задана вне управляемых настроек.

267 267 

268[HTTP hook allowlists](https://code.claude.com/docs/ru/settings-reference.md#hook-and-skill-settings) применяются к hooks из каждого источника, включая управляемые параметры политики:268[Списки разрешённых URL для HTTP-хуков](https://code.claude.com/docs/ru/settings-reference.md#hook-and-skill-settings) применяются к хукам из любого источника, включая настройки управляемой политики:

269 269 

270* `allowedHttpHookUrls`: когда определено на любом уровне параметров, Claude Code запускает обработчик HTTP hook только если его URL совпадает с объединённым allowlist270* `allowedHttpHookUrls`: если задан на любом уровне настроек, Claude Code запускает обработчик HTTP-хука, только если его URL соответствует объединённому списку разрешённых

271* `httpHookAllowedEnvVars`: когда определено, Claude Code интерполирует только переменные окружения из этого списка в заголовки hook271* `httpHookAllowedEnvVars`: если задан, Claude Code подставляет в заголовки хуков только переменные окружения из этого списка

272 272 

273### Matcher patterns273### Шаблоны matcher

274 274 

275Поле `matcher` фильтрует срабатывание hooks. Способ оценки фильтра зависит от содержащихся в нём символов:275Поле `matcher` фильтрует, когда срабатывают хуки. То, как вычисляется matcher, зависит от содержащихся в нём символов:

276 276 

277| Значение фильтра | Оценивается как | Пример |277| Значение matcher | Вычисляется как | Пример |

278| :- | :- | :- |278| :- | :- | :- |

279| `"*"`, `""` или опущено | Совпадение со всеми | срабатывает при каждом возникновении события |279| `"*"`, `""` или отсутствует | Совпадение со всем | срабатывает при каждом возникновении события |

280| Только буквы, цифры, `_`, `-`, пробелы, `,` и `\|` | Точная строка или список точных строк, разделённых `\|` или `,` с необязательными пробелами вокруг | `Bash` совпадает с инструментом Bash, а для `PreToolUse` и `PermissionRequest` также с [командами Monitor](#match-monitor-commands); `Edit\|Write` и `Edit, Write` точно совпадают с любым из двух инструментов; `code-reviewer` совпадает только с этим типом агента |280| Только буквы, цифры, `_`, `-`, пробелы, `,` и `\|` | Точная строка или список точных строк, разделённых `\|` или `,` с необязательными пробелами вокруг | `Bash` соответствует инструменту Bash, а в `PreToolUse` и `PermissionRequest` также [командам Monitor](#match-monitor-commands); `Edit\|Write` и `Edit, Write` соответствуют в точности любому из двух инструментов; `code-reviewer` соответствует только этому типу агента |

281| Содержит любой другой символ | Регулярное выражение JavaScript без привязки | `^Notebook` совпадает с любым инструментом, имя которого начинается с `Notebook`; `mcp__memory__.*` совпадает с каждым инструментом сервера `memory` |281| Содержит любой другой символ | Регулярное выражение JavaScript без привязки | `^Notebook` соответствует любому инструменту, имя которого начинается с `Notebook`; `mcp__memory__.*` соответствует всем инструментам сервера `memory` |

282 282 

283Фильтр на пути регулярного выражения проверяется с помощью `RegExp.prototype.test` JavaScript, который успешно совпадает в любом месте значения. `Edit.*` совпадает как с `Edit`, так и с `NotebookEdit`; оберните шаблон в `^` и `$`, как в `^Edit$`, когда вам нужно совпадение всей строки.283Matcher, вычисляемый как регулярное выражение, проверяется с помощью `RegExp.prototype.test` в JavaScript, который успешно срабатывает при совпадении в любом месте значения. `Edit.*` соответствует и `Edit`, и `NotebookEdit`; оберните шаблон в `^` и `$`, как в `^Edit$`, если вам нужно совпадение со всей строкой.

284 284 

285`FileChanged` и `StopFailure` используют более узкий набор точного совпадения только букв, цифр, `_` и `|`. Дефис, пробел или запятая в фильтре для этих двух событий держит его на пути регулярного выражения, и только `|` разделяет альтернативы. Каждое другое событие с поддержкой фильтра в таблице ниже принимает `|` или `,`.285`FileChanged` и `StopFailure` используют более узкий набор символов для точного совпадения: только буквы, цифры, `_` и `|`. Дефис, пробел или запятая в matcher для этих двух событий оставляют его на пути регулярного выражения, и альтернативы разделяет только `|`. Все остальные события с поддержкой matcher в следующей таблице принимают `|` или `,`.

286 286 

287Событие `FileChanged` не следует этим правилам при построении своего списка наблюдения. См. [FileChanged](#filechanged).287Событие `FileChanged` не следует этим правилам при построении списка отслеживаемых файлов. См. [FileChanged](#filechanged).

288 288 

289Каждый тип события совпадает с другим полем:289Каждый тип события сопоставляется по своему полю:

290 290 

291| Событие | На что фильтр влияет | Примеры значений фильтра |291| Событие | Что фильтрует matcher | Примеры значений matcher |

292| :- | :- | :- |292| :- | :- | :- |

293| `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied` | имя инструмента | `Bash`, `Edit\|Write`, `mcp__.*` |293| `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied` | имя инструмента | `Bash`, `Edit\|Write`, `mcp__.*` |

294| `SessionStart` | как сеанс начался | `startup`, `resume`, `clear`, `compact`, `fork` |294| `SessionStart` | как началась сессия | `startup`, `resume`, `clear`, `compact`, `fork` |

295| `Setup` | какой флаг CLI запустил setup | `init`, `maintenance` |295| `Setup` | какой флаг CLI запустил настройку | `init`, `maintenance` |

296| `SessionEnd` | почему сеанс закончился | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |296| `SessionEnd` | почему завершилась сессия | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |

297| `Notification` | тип уведомления | `permission_prompt`, `idle_prompt`, `auth_success`, `auth_storage_failure`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |297| `Notification` | тип уведомления | `permission_prompt`, `idle_prompt`, `auth_success`, `auth_storage_failure`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |

298| `SubagentStart` | тип агента | `general-purpose`, `Explore`, `Plan`, пользовательские имена агентов или имена с областью плагина, такие как `^my-plugin:reviewer$` |298| `SubagentStart` | тип агента | `general-purpose`, `Explore`, `Plan`, имена пользовательских агентов или имена с областью плагина, например `^my-plugin:reviewer$` |

299| `PreCompact`, `PostCompact` | что вызвало компактирование | `manual`, `auto` |299| `PreCompact`, `PostCompact` | что запустило сжатие контекста | `manual`, `auto` |

300| `PreModelSwitch`, `PostModelSwitch` | каноническое имя модели, на которую переключается сеанс, как описано в [PreModelSwitch](#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |300| `PreModelSwitch`, `PostModelSwitch` | каноническое имя модели, на которую переключается сессия, как описано в разделе [PreModelSwitch](#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |

301| `SubagentStop` | тип агента | те же значения, что и `SubagentStart` |301| `SubagentStop` | тип агента | те же значения, что и для `SubagentStart` |

302| `ConfigChange` | источник конфигурации | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |302| `ConfigChange` | источник конфигурации | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |

303| `CwdChanged` | поддержка фильтра отсутствует | всегда срабатывает при каждом возникновении |303| `CwdChanged` | matcher не поддерживается | всегда срабатывает при каждом возникновении |

304| `DirectoryAdded` | как был добавлен каталог | `slash_command`, `register_repo_root` |304| `DirectoryAdded` | как был добавлен каталог | `slash_command`, `register_repo_root` |

305| `FileChanged` | буквальные имена файлов для наблюдения (см. [FileChanged](#filechanged)) | `.envrc\|.env` |305| `FileChanged` | буквальные имена файлов для отслеживания (см. [FileChanged](#filechanged)) | `.envrc\|.env` |

306| `StopFailure` | тип ошибки | `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, `unknown` |306| `StopFailure` | тип ошибки | `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, `unknown` |

307| `InstructionsLoaded` | причина загрузки | `session_start`, `nested_traversal`, `path_glob_match`, `include`, `compact` |307| `InstructionsLoaded` | причина загрузки | `session_start`, `nested_traversal`, `path_glob_match`, `include`, `compact` |

308| `UserPromptExpansion` | имя команды | ваши имена skill или команд |308| `UserPromptExpansion` | имя команды | имена ваших скиллов или команд |

309| `Elicitation` | имя MCP сервера | ваши настроенные имена MCP серверов |309| `Elicitation` | имя MCP-сервера | имена ваших настроенных MCP-серверов |

310| `ElicitationResult` | имя MCP сервера | те же значения, что и `Elicitation` |310| `ElicitationResult` | имя MCP-сервера | те же значения, что и для `Elicitation` |

311| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `MessageDisplay` | поддержка фильтра отсутствует | всегда срабатывает при каждом вхождении |311| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `MessageDisplay` | matcher не поддерживается | всегда срабатывает при каждом возникновении |

312 312 

313Совпадение `StopFailure` на `cloud_credential_error` требует Claude Code v2.1.267 или позже, первой версии, которая сообщает об ошибках загрузки учётных данных под этим значением вместо `server_error` или `unknown`.313Сопоставление `StopFailure` по `cloud_credential_error` требует Claude Code v2.1.267 или новее — первой версии, которая сообщает об ошибках загрузки учётных данных с этим значением, а не с `server_error` или `unknown`.

314 314 

315Для большинства событий Claude Code оценивает фильтр против поля из [JSON входа](#hook-input-and-output), который он отправляет вашему hook на stdin. Для событий инструмента это поле — `tool_name`. Для `PreModelSwitch` и `PostModelSwitch`, Claude Code оценивает фильтр против канонического имени, которое он выводит из `to_model`, как описано в [PreModelSwitch](#premodelswitch). Каждый раздел [hook event](#hook-events) перечисляет полный набор значений фильтра и схему входа для этого события.315Для большинства событий Claude Code вычисляет matcher по полю из [входных данных JSON](#hook-input-and-output), которые он отправляет вашему хуку через stdin. Для событий инструментов это поле `tool_name`. Для `PreModelSwitch` и `PostModelSwitch` Claude Code вычисляет matcher по каноническому имени, которое он выводит из `to_model`, как описано в разделе [PreModelSwitch](#premodelswitch). В разделе каждого [события хука](#hook-events) перечислен полный набор значений matcher и схема входных данных для этого события.

316 316 

317Этот пример запускает скрипт линтинга только когда Claude пишет или редактирует файл:317Этот пример запускает скрипт линтинга только тогда, когда Claude записывает или редактирует файл:

318 318 

319```json theme={null}319```json theme={null}

320{320{


334}334}

335```335```

336 336 

337Если вы добавите поле `matcher` к событию без поддержки фильтра, оно будет молча проигнорировано.337Если вы добавите поле `matcher` к событию без поддержки matcher, оно будет молча проигнорировано.

338 338 

339Для событий инструмента вы можете фильтровать более узко, установив поле [`if`](#common-fields) на отдельных обработчиках hook. `if` использует [синтаксис правила разрешения](https://code.claude.com/docs/ru/permissions.md) для совпадения с именем инструмента и аргументами вместе, поэтому `"Bash(git *)"` запускается когда любая подкоманда входа Bash совпадает с `git *` и `"Edit(*.ts)"` запускается только для файлов TypeScript.339Для событий инструментов можно фильтровать точнее, задав [поле `if`](#common-fields) в отдельных обработчиках хуков. `if` использует [синтаксис правил разрешений](https://code.claude.com/docs/ru/permissions.md) для сопоставления имени инструмента и аргументов вместе, поэтому `"Bash(git *)"` запускается, когда любая подкоманда во входных данных Bash соответствует `git *`, а `"Edit(*.ts)"` запускается только для файлов TypeScript.

340 340 

341#### Match MCP tools341#### Сопоставление MCP-инструментов

342 342 

343[MCP](https://code.claude.com/docs/ru/mcp.md) server инструменты отображаются как обычные инструменты в событиях инструментов (`PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied`), поэтому вы можете совпадать с ними так же, как с любым другим именем инструмента.343Инструменты [MCP](https://code.claude.com/docs/ru/mcp.md)-серверов отображаются как обычные инструменты в событиях инструментов (`PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied`), поэтому их можно сопоставлять так же, как любое другое имя инструмента.

344 344 

345MCP инструменты следуют шаблону именования `mcp__<server>__<tool>`, например:345MCP-инструменты следуют шаблону именования `mcp__<server>__<tool>`, например:

346 346 

347* `mcp__memory__create_entities`: инструмент create entities сервера Memory347* `mcp__memory__create_entities`: инструмент создания сущностей сервера Memory

348* `mcp__filesystem__read_file`: инструмент read file сервера Filesystem348* `mcp__filesystem__read_file`: инструмент чтения файла сервера Filesystem

349* `mcp__github__search_repositories`: инструмент поиска сервера GitHub349* `mcp__github__search_repositories`: инструмент поиска сервера GitHub

350 350 

351Чтобы совпадать с каждым инструментом с сервера, добавьте `.*` к префиксу сервера. `.*` требуется: фильтр, такой как `mcp__memory` или `mcp__brave-search`, содержит только символы точного совпадения, поэтому он сравнивается как точная строка и не совпадает ни с одним инструментом.351Чтобы сопоставить все инструменты сервера, добавьте `.*` к префиксу сервера. `.*` обязателен: matcher вроде `mcp__memory` или `mcp__brave-search` содержит только символы точного совпадения, поэтому он сравнивается как точная строка и не соответствует ни одному инструменту.

352 352 

353* `mcp__memory__.*` совпадает со всеми инструментами сервера `memory`353* `mcp__memory__.*` соответствует всем инструментам сервера `memory`

354* `mcp__brave-search__.*` совпадает со всеми инструментами с сервера, чьё имя содержит дефис354* `mcp__brave-search__.*` соответствует всем инструментам сервера, имя которого содержит дефис

355* `mcp__.*__write.*` совпадает с любым инструментом, чьё имя начинается с `write` из любого сервера355* `mcp__.*__write.*` соответствует любому инструменту любого сервера, имя которого начинается с `write`

356 356 

357Инструменты из [plugin-bundled MCP server](https://code.claude.com/docs/ru/mcp.md#plugin-provided-mcp-servers) используют сегмент сервера с областью, который включает имя плагина: `mcp__plugin_<plugin-name>_<server-name>__<tool>`. Фильтр, написанный против голого ключа сервера, никогда не срабатывает для этих инструментов. Для плагина с именем `my-plugin`, который объединяет сервер под ключом `db`, инструмент `query` отображается как `mcp__plugin_my-plugin_db__query`, поэтому фильтр для каждого инструмента с этого сервера — `mcp__plugin_my-plugin_db__.*`. Используйте то же имя инструмента с областью в поле [`if`](#common-fields) обработчика. См. [Plugin-provided MCP servers](https://code.claude.com/docs/ru/mcp.md#plugin-provided-mcp-servers) для того, как строится имя с областью.357Инструменты [MCP-сервера, поставляемого с плагином](https://code.claude.com/docs/ru/mcp.md#plugin-provided-mcp-servers), используют сегмент сервера с областью, включающий имя плагина: `mcp__plugin_<plugin-name>_<server-name>__<tool>`. Matcher, написанный для голого ключа сервера, никогда не срабатывает для этих инструментов. Для плагина с именем `my-plugin`, который поставляет сервер под ключом `db`, инструмент `query` отображается как `mcp__plugin_my-plugin_db__query`, поэтому matcher для всех инструментов этого сервера — `mcp__plugin_my-plugin_db__.*`. Используйте то же имя инструмента с областью в [поле `if`](#common-fields) обработчика. О том, как строится имя с областью, см. [MCP-серверы, предоставляемые плагинами](https://code.claude.com/docs/ru/mcp.md#plugin-provided-mcp-servers).

358 358 

359Этот пример логирует все операции сервера memory и проверяет операции записи из любого MCP сервера:359Этот пример записывает в лог все операции сервера memory и проверяет операции записи от любого MCP-сервера:

360 360 

361```json theme={null}361```json theme={null}

362{362{


387 387 

388#### Сопоставление команд Monitor388#### Сопоставление команд Monitor

389 389 

390Хук [`PreToolUse`](#pretooluse) или [`PermissionRequest`](#permissionrequest) с matcher `Bash` также запускается для shell-команд, которые Claude запускает с помощью [инструмента Monitor](https://code.claude.com/docs/ru/tools-reference.md#monitor-tool), но его `allow` и [`updatedInput`](#pretooluse-decision-control) на них не действуют. Требуется Claude Code v2.1.314 или новее. Matcher вроде `Bash|PowerShell`, `^Bash$` и `Bash.*` тоже являются matcher `Bash`. Хук с matcher `Bash` не запускается для [отслеживания WebSocket](https://code.claude.com/docs/ru/tools-reference.md#websocket-source), а хук `PostToolUse` с таким matcher не запускается для Monitor.390Хук [`PreToolUse`](#pretooluse) или [`PermissionRequest`](#permissionrequest) с matcher `Bash` также запускается для shell-команд, которые Claude запускает с помощью [инструмента Monitor](https://code.claude.com/docs/ru/tools-reference.md#monitor-tool), но его `allow` и [`updatedInput`](#pretooluse-decision-control) на них не действуют. Требуется Claude Code v2.1.314 или новее. Matcher, такие как `Bash|PowerShell`, `^Bash$` и `Bash.*`, тоже являются matcher `Bash`. Хук с matcher `Bash` не запускается для [наблюдения за WebSocket](https://code.claude.com/docs/ru/tools-reference.md#websocket-source), а хук `PostToolUse` с таким matcher не запускается для Monitor.

391 391 

392Хук, запускаемый для команды Monitor, может отклонить её или заставить Claude Code спросить вас о ней. Чтобы разрешить или переписать команду, замените matcher `Bash` на matcher, включающий Monitor:392Хук, который запускается для команды Monitor, может отклонить её или заставить Claude Code спросить вас о ней. Чтобы разрешить или переписать команду, замените matcher `Bash` на тот, который включает Monitor:

393 393 

394* **Matcher, включающий Monitor**: с matcher вроде `Bash|Monitor` или `.*`, либо без matcher, хук получает собственные входные данные вызова Monitor, и `allow` и `updatedInput` применяются. В [`if`](#common-fields) указывайте Monitor, как в `Monitor(tail *)`, который сопоставляется по [тем же правилам, что и `Bash(tail *)`](#bash-if-matching). Если в его `if` указан Bash, хук всё равно получает входные данные вызова Monitor, но `allow` и `updatedInput` не действуют394* **Matcher, включающий Monitor**: с matcher, например `Bash|Monitor` или `.*`, или без matcher хук получает собственные входные данные вызова Monitor, и `allow` и `updatedInput` применяются. В [`if`](#common-fields) укажите Monitor, как в `Monitor(tail *)`, который сопоставляется по [тем же правилам, что и `Bash(tail *)`](#bash-if-matching). Если в его `if` указан Bash, хук всё равно получает входные данные вызова Monitor, но `allow` и `updatedInput` не действуют

395* **Matcher `Bash`**: хук получает вызов Bash. В `if` указывайте Bash, как в `Bash(tail *)`. Хук не запускается, если в его `if` указан Monitor395* **Matcher `Bash`**: хук получает вызов Bash. В `if` укажите Bash, как в `Bash(tail *)`. Хук не запускается, если в его `if` указан Monitor

396 396 

397### Hook handler fields397### Поля обработчика хука

398 398 

399Каждый объект во внутреннем массиве `hooks` — это hook handler: команда оболочки, конечная точка HTTP, инструмент MCP, подсказка LLM или агент, который запускается при совпадении фильтра. Есть пять типов:399Каждый объект во внутреннем массиве `hooks` — это обработчик хука: shell-команда, HTTP-эндпоинт, MCP-инструмент, промпт LLM или агент, который запускается при совпадении matcher. Существует пять типов:

400 400 

401* **[Command hooks](#command-hook-fields)** (`type: "command"`): запускают команду оболочки. Ваш скрипт получает [JSON входные данные](#hook-input-and-output) события на stdin и передаёт результаты обратно через коды выхода и stdout.401* **[Командные хуки](#command-hook-fields)** (`type: "command"`): запускают shell-команду. Ваш скрипт получает [входные данные JSON](#hook-input-and-output) события через stdin и сообщает результаты через коды выхода и stdout.

402* **[HTTP hooks](#http-hook-fields)** (`type: "http"`): отправляют JSON входные данные события как HTTP POST запрос на URL. Конечная точка передаёт результаты обратно через тело ответа, используя тот же [JSON формат выхода](#json-output), что и command hooks.402* **[HTTP-хуки](#http-hook-fields)** (`type: "http"`): отправляют входные данные JSON события как HTTP POST-запрос на URL. Эндпоинт сообщает результаты через тело ответа, используя тот же [формат вывода JSON](#json-output), что и командные хуки.

403* **[MCP tool hooks](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): вызывают инструмент на уже подключённом [MCP сервере](https://code.claude.com/docs/ru/mcp.md). Текстовый вывод инструмента обрабатывается как stdout command hook.403* **[Хуки MCP-инструментов](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): вызывают инструмент на настроенном [MCP-сервере](https://code.claude.com/docs/ru/mcp.md). Текстовый вывод инструмента обрабатывается так же, как stdout командного хука.

404* **[Prompt hooks](#prompt-and-agent-hook-fields)** (`type: "prompt"`): отправляют подсказку модели Claude для однооборотной оценки. Модель возвращает решение как JSON. См. [Prompt-based hooks](#prompt-based-hooks).404* **[Хуки с промптом](#prompt-and-agent-hook-fields)** (`type: "prompt"`): отправляют промпт модели Claude для однократной оценки. Модель возвращает своё решение в виде JSON. См. [Хуки на основе промптов](#prompt-based-hooks).

405* **[Agent hooks](#prompt-and-agent-hook-fields)** (`type: "agent"`): порождают subagent, который может использовать инструменты, такие как Read, Grep и Glob, для проверки условий перед возвратом решения. Agent hooks являются экспериментальными и могут измениться. См. [Agent-based hooks](#agent-based-hooks).405* **[Хуки агентов](#prompt-and-agent-hook-fields)** (`type: "agent"`): порождают субагента, который может использовать такие инструменты, как Read, Grep и Glob, чтобы проверить условия перед возвратом решения. Хуки агентов являются экспериментальными и могут измениться. См. [Хуки на основе агентов](#agent-based-hooks).

406 406 

407Когда срабатывает событие, его совпадающие хуки запускаются параллельно. Если более 12 из них — хуки-промпты или хуки-агенты, одновременно запускаются 12 из них, а остальные стартуют по мере завершения выполняющихся. [`timeout`](#common-fields) каждого ожидающего хука начинает отсчитываться, когда этот хук запускается.407Когда событие срабатывает, соответствующие ему хуки запускаются параллельно. Если более 12 из них являются хуками с промптом или хуками агентов, 12 из них запускаются одновременно, а остальные запускаются по мере завершения работающих. [`timeout`](#common-fields) каждого ожидающего хука начинает отсчёт, когда этот хук запускается.

408 408 

409Если вы определите один и тот же обработчик в нескольких файлах настроек, он запустится один раз. Копия того же обработчика в плагине или скилле остаётся отдельной.409Если вы определите один и тот же обработчик в нескольких файлах настроек, он запустится один раз. Копия того же обработчика в плагине или скилле остаётся отдельной.

410 410 

411Обработчики запускаются в текущем каталоге с окружением Claude Code. Если текущий каталог больше не существует, например это worktree или временный каталог, который другая оболочка удалила посреди сессии, Claude Code запускает командные хуки из первого существующего из следующих каталогов: каталог, в котором началась сессия, корень проекта, ваш домашний каталог или системный временный каталог. Claude Code записывает в [отладочный лог](#debug-hooks) предупреждение с именем резервного каталога. О сессии в worktree, запущенной из десктопного приложения, см. [Что worktree разделяют с основным checkout](https://code.claude.com/docs/ru/worktrees.md#what-worktrees-share-with-the-main-checkout).411Обработчики запускаются в текущем каталоге с окружением Claude Code. Если текущий каталог больше не существует, например worktree или временный каталог, который другая оболочка удалила посреди сессии, Claude Code запускает командные хуки из первого из следующих каталогов, который ещё существует: каталог, в котором началась сессия, корень проекта, ваш домашний каталог или системный временный каталог. Claude Code записывает предупреждение с названием резервного каталога в [лог отладки](#debug-hooks). О сессии в worktree, которую вы запускаете из десктопного приложения, см. [Что worktree разделяют с основной рабочей копией](https://code.claude.com/docs/ru/worktrees.md#what-worktrees-share-with-the-main-checkout).

412 412 

413Переменная окружения `$CLAUDE_CODE_REMOTE` устанавливается на `"true"` в удалённых веб-окружениях и не устанавливается в локальном CLI. Claude Code v2.1.199 и позже устанавливает [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](https://code.claude.com/docs/ru/env-vars) на ID сеанса [Remote Control](https://code.claude.com/docs/ru/remote-control.md) пока локальный сеанс имеет активное соединение Remote Control.413Переменная окружения `$CLAUDE_CODE_REMOTE` имеет значение `"true"` в удалённых веб-окружениях и не задана в локальном CLI. Claude Code v2.1.199 и новее устанавливает [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](https://code.claude.com/docs/ru/env-vars) в идентификатор сессии [Remote Control](https://code.claude.com/docs/ru/remote-control.md), пока у локальной сессии есть активное подключение Remote Control.

414 414 

415#### Common fields415#### Общие поля

416 416 

417Эти поля применяются ко всем типам hooks:417Эти поля применяются ко всем типам хуков:

418 418 

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

420| :- | :- | :- |420| :- | :- | :- |

421| `type` | да | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` или `"agent"` |421| `type` | да | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` или `"agent"` |

422| `if` | нет | [Синтаксис правил разрешений](https://code.claude.com/docs/ru/permissions.md#permission-rule-syntax) для фильтрации того, когда запускается этот хук, например `"Bash(git *)"` или `"Edit(*.ts)"`. Команда хука запускается, только если вызов инструмента совпадает с шаблоном. О том, как шаблоны Bash сопоставляются с подкомандами, `$()` и обратными кавычками, см. [таблицу сопоставления Bash](#bash-if-matching). Вычисляется только для событий инструментов: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` и `PermissionDenied`. Для других событий хук с заданным `if` никогда не запускается |422| `if` | нет | [Синтаксис правил разрешений](https://code.claude.com/docs/ru/permissions.md#permission-rule-syntax) для фильтрации того, когда запускается этот хук, например `"Bash(git *)"` или `"Edit(*.ts)"`. Команда хука запускается, только если вызов инструмента соответствует шаблону. О том, как шаблоны Bash вычисляются для подкоманд, `$()` и обратных кавычек, см. [таблицу сопоставления Bash](#bash-if-matching). Вычисляется только для событий инструментов: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` и `PermissionDenied`. Для других событий хук с заданным `if` никогда не запускается |

423| `timeout` | нет | Секунды перед отменой. Claude Code не применяет его на command hook, который вы запускаете с [`async: true`](#run-hooks-in-the-background). Значения по умолчанию: 600 для `command`, `http` и `mcp_tool`; 30 для `prompt`; 60 для `agent`. Claude Code снижает значение по умолчанию для `command`, `http` и `mcp_tool` до 30 на [`UserPromptSubmit`](#userpromptsubmit), [`PreModelSwitch`](#premodelswitch) и [`PostModelSwitch`](#postmodelswitch), и до 10 на [`MessageDisplay`](#messagedisplay). Hooks [`SessionEnd`](#sessionend) делят бюджет 1.5 секунды; если ваши параметры устанавливают более длительный `timeout` для каждого hook, Claude Code повышает бюджет, чтобы совпадать, до 60 секунд |423| `timeout` | нет | Количество секунд до отмены. Claude Code не применяет его к командному хуку, который вы запускаете с [`async: true`](#run-hooks-in-the-background). Значения по умолчанию: 600 для `command`, `http` и `mcp_tool`; 30 для `prompt`; 60 для `agent`. Claude Code снижает значение по умолчанию для `command`, `http` и `mcp_tool` до 30 в [`UserPromptSubmit`](#userpromptsubmit), [`PreModelSwitch`](#premodelswitch) и [`PostModelSwitch`](#postmodelswitch) и до 10 в [`MessageDisplay`](#messagedisplay). Хуки [`SessionEnd`](#sessionend) делят общий бюджет в 1,5 секунды; если ваши настройки задают более длинный `timeout` для отдельного хука, Claude Code увеличивает бюджет до этого значения, но не более чем до 60 секунд |

424| `statusMessage` | нет | Пользовательское сообщение спиннера, отображаемое во время выполнения hook |424| `statusMessage` | нет | Пользовательское сообщение индикатора, отображаемое во время работы хука |

425| `once` | нет | Если `true`, Claude Code удаляет hook после его первого успешного запуска. Запуск, который не удаётся, блокирует с кодом выхода 2 или истекает по времени, оставляет hook на месте, поэтому он запускается снова при следующем совпадающем событии. Только для hooks, объявленных в [skill frontmatter](#hooks-in-skills-and-agents); игнорируется в файлах настроек и agent frontmatter |425| `once` | нет | Если `true`, Claude Code удаляет хук после его первого успешного запуска. Запуск, который завершается ошибкой, блокирует с кодом выхода 2 или превышает таймаут, оставляет хук на месте, поэтому он запускается снова при следующем подходящем событии. Учитывается только для хуков, объявленных во [frontmatter скилла](#hooks-in-skills-and-agents); игнорируется в файлах настроек и frontmatter агентов |

426 426 

427Поле `if` содержит ровно одно правило разрешения. Нет синтаксиса `&&`, `||` или списка для объединения правил; чтобы применить несколько условий, определите отдельный обработчик hook для каждого.427Поле `if` содержит ровно одно правило разрешений. Синтаксиса `&&`, `||` или списка для объединения правил нет; чтобы применить несколько условий, определите отдельный обработчик хука для каждого.

428 428 

429В условии `if` для файлового инструмента шаблон каталога из одного сегмента, например `"Edit(src/**)"`, совпадает только с каталогом `src` в рабочем каталоге и файлами в нём. Чтобы сопоставить каталог с именем `src` на любой глубине, напишите `"Edit(**/src/**)"`.429В условии `if` для файлового инструмента шаблон каталога из одного сегмента, например `"Edit(src/**)"`, соответствует только каталогу `src` в рабочем каталоге и файлам внутри него. Чтобы сопоставить каталог с именем `src` на любой глубине, напишите `"Edit(**/src/**)"`.

430 430 

431#### Как шаблоны `if` сопоставляются с командами Bash431#### Как шаблоны `if` сопоставляются с командами Bash

432 432 

433Для шаблонов Bash в [поле `if`](#common-fields) то, запустится ли команда вашего хука, зависит от формы шаблона и команды Bash, которую вызывает Claude. Начальные присваивания `VAR=value` удаляются перед сопоставлением.433Для шаблонов Bash в [поле `if`](#common-fields) то, запустится ли команда вашего хука, зависит от формы шаблона и команды Bash, которую вызывает Claude. Начальные присваивания `VAR=value` удаляются перед сопоставлением.

434 434 

435| `if` шаблон | Bash команда | Hook запускается? | Почему |435| Шаблон `if` | Команда Bash | Хук запускается? | Почему |

436| :- | :- | :- | :- |436| :- | :- | :- | :- |

437| `Bash(git *)` | `FOO=bar git push` | да | ведущие присваивания удаляются; `git push` совпадает |437| `Bash(git *)` | `FOO=bar git push` | да | начальные присваивания удаляются; `git push` соответствует |

438| `Bash(git *)` | `npm test && git push` | да | каждая подкоманда проверяется; `git push` совпадает |438| `Bash(git *)` | `npm test && git push` | да | проверяется каждая подкоманда; `git push` соответствует |

439| `Bash(rm *)` | `echo $(rm -rf /)` | да | команды внутри `$()` и обратных кавычек проверяются; `rm -rf /` совпадает |439| `Bash(rm *)` | `echo $(rm -rf /)` | да | команды внутри `$()` и обратных кавычек проверяются; `rm -rf /` соответствует |

440| `Bash(rm *)` | `echo $(date)` | нет | ни одна подкоманда не совпадает с `rm *` |440| `Bash(rm *)` | `echo $(date)` | нет | ни одна подкоманда не соответствует `rm *` |

441| `Bash(git push *)` | `echo $(date)` | да | шаблоны, которые указывают больше чем имя команды, запускают hook в любом случае на `$()`, обратных кавычках или `$VAR` |441| `Bash(git push *)` | `echo $(date)` | да | шаблоны, указывающие больше, чем имя команды, всё равно запускают хук при наличии `$()`, обратных кавычек или `$VAR` |

442 442 

443Когда Claude Code не может определить, какие команды запускает входные данные Bash, он запускает ваш hook независимо от шаблона. Поскольку фильтр `if` является лучшим усилием, используйте [систему разрешений](https://code.claude.com/docs/ru/permissions.md) вместо hook для обеспечения жёсткого разрешения или отказа.443Когда Claude Code не может определить, какие команды запускает входная команда Bash, он запускает ваш хук независимо от шаблона. Поскольку фильтр `if` работает по принципу «насколько возможно», для строгого разрешения или запрета используйте [систему разрешений](https://code.claude.com/docs/ru/permissions.md), а не хук.

444 444 

445#### Command hook fields445#### Поля командного хука

446 446 

447В дополнение к [общим полям](#common-fields), command hooks принимают эти поля:447Помимо [общих полей](#common-fields), командные хуки принимают следующие поля:

448 448 

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

450| :- | :- | :- |450| :- | :- | :- |

451| `command` | да | Команда оболочки для выполнения. С `args`, исполняемый файл для прямого запуска. См. [Exec form and shell form](#exec-form-and-shell-form) |451| `command` | да | Shell-команда для выполнения. С `args` — исполняемый файл, запускаемый напрямую. См. [Форма exec и форма shell](#exec-form-and-shell-form) |

452| `args` | нет | Список аргументов. Когда присутствует, `command` разрешается как исполняемый файл и запускается напрямую с `args` как вектор аргументов, без участия оболочки. См. [Exec form and shell form](#exec-form-and-shell-form) |452| `args` | нет | Список аргументов. Если он присутствует, `command` разрешается как исполняемый файл и запускается напрямую с `args` в качестве вектора аргументов, без участия оболочки. См. [Форма exec и форма shell](#exec-form-and-shell-form) |

453| `async` | нет | Если `true`, запускается в фоне без блокировки. См. [Run hooks in the background](#run-hooks-in-the-background) |453| `async` | нет | Если `true`, выполняется в фоне без блокировки. См. [Запуск хуков в фоне](#run-hooks-in-the-background) |

454| `asyncRewake` | нет | Если `true`, запускается в фоне и пробуждает Claude при коде выхода 2. Hook stderr или stdout, если stderr пусто, показывается Claude как [системное напоминание](https://code.claude.com/docs/ru/glossary.md#system-reminder) чтобы он мог реагировать на долгоживущий фоновый сбой |454| `asyncRewake` | нет | Если `true`, выполняется в фоне и пробуждает Claude при коде выхода 2. Stderr хука, или stdout, если stderr пуст, показывается Claude как [системное напоминание](https://code.claude.com/docs/ru/glossary.md#system-reminder), чтобы он мог отреагировать на сбой длительной фоновой задачи |

455| `shell` | нет | Оболочка для использования для этого hook. Принимает `"bash"` или `"powershell"`. По умолчанию `"bash"`, или `"powershell"` на Windows когда Git Bash не установлен. Установка `"powershell"` запускает команду через PowerShell на Windows. Не требует `CLAUDE_CODE_USE_POWERSHELL_TOOL`, так как hooks порождают PowerShell напрямую. Игнорируется когда установлен `args` |455| `shell` | нет | Оболочка для этого хука. Принимает `"bash"` или `"powershell"`. По умолчанию `"bash"` или `"powershell"` в Windows, если Git Bash не установлен. Значение `"powershell"` запускает команду через PowerShell в Windows. Не требует `CLAUDE_CODE_USE_POWERSHELL_TOOL`, поскольку хуки запускают PowerShell напрямую. Игнорируется, если задан `args` |

456| `onFailure` | нет | Выполняется ли действие, вызвавшее хук, при сбое хука: `"continue"` или `"block"`. О значении `"block"` и о случае, когда поле не задано, см. [Блокировка действия при сбое хука](#block-the-action-when-a-hook-fails). Требует Claude Code v2.1.295 или новее |456| `onFailure` | нет | Выполняется ли действие, вызвавшее хук, если хук завершился сбоем: `"continue"` или `"block"`. О `"block"` и о случае, когда поле не задано, см. [Блокировка действия при сбое хука](#block-the-action-when-a-hook-fails). Требуется Claude Code v2.1.295 или новее |

457 457 

458##### Exec form and shell form458##### Форма exec и форма shell

459 459 

460Command hook запускается в exec form когда установлен `args`, и в shell form когда `args` опущен. Установите `args` всякий раз, когда hook ссылается на [path placeholder](#reference-scripts-by-path), так как каждый элемент передаётся как один аргумент без кавычек. Опустите `args` когда вам нужны функции оболочки, такие как pipes или `&&`, или когда ни одна из этих проблем не применяется.460Командный хук выполняется в форме exec, если задан `args`, и в форме shell, если `args` опущен. Задавайте `args` всякий раз, когда хук ссылается на [плейсхолдер пути](#reference-scripts-by-path), поскольку каждый элемент передаётся как один аргумент без экранирования кавычками. Опускайте `args`, если вам нужны возможности оболочки, такие как конвейеры или `&&`, или если ни одно из этих соображений не применимо.

461 461 

462**Exec form** запускается когда присутствует `args`. Claude Code разрешает `command` как исполняемый файл на `PATH` и запускает его напрямую с `args` как вектор аргументов. Нет оболочки, поэтому каждый элемент `args` — это ровно один аргумент, написанный как есть, и path placeholders, такие как `${CLAUDE_PLUGIN_ROOT}`, подставляются в `command` и в каждый элемент `args` как простые строки. Специальные символы, такие как апострофы, `$` и обратные кавычки, проходят дословно, потому что нет оболочки для их интерпретации. На любой платформе не происходит никакой токенизации оболочки.462**Форма exec** используется, когда `args` присутствует. Claude Code разрешает `command` как исполняемый файл в `PATH` и запускает его напрямую с `args` в качестве вектора аргументов. Оболочки нет, поэтому каждый элемент `args` — это ровно один аргумент в том виде, в котором он написан, а плейсхолдеры путей, такие как `${CLAUDE_PLUGIN_ROOT}`, подставляются в `command` и в каждый элемент `args` как обычные строки. Специальные символы, такие как апострофы, `$` и обратные кавычки, передаются как есть, поскольку нет оболочки, которая бы их интерпретировала. Токенизация оболочкой не выполняется ни на одной платформе.

463 463 

464**Shell form** запускается когда `args` отсутствует. Строка `command` передаётся в оболочку: `sh -c` на macOS и Linux, Git Bash на Windows, или PowerShell когда Git Bash не установлен. Установите поле `shell` для явного выбора. Оболочка токенизирует строку, расширяет переменные и интерпретирует pipes, `&&`, redirects и globs.464**Форма shell** используется, когда `args` отсутствует. Строка `command` передаётся оболочке: `sh -c` в macOS и Linux, Git Bash в Windows или PowerShell, если Git Bash не установлен. Задайте поле `shell`, чтобы выбрать явно. Оболочка токенизирует строку, раскрывает переменные и интерпретирует конвейеры, `&&`, перенаправления и glob-шаблоны.

465 465 

466> [!NOTE]466> [!NOTE]

467>467>

468> На Windows, exec form требует, чтобы `command` разрешался в реальный исполняемый файл, такой как `.exe`. Shims `.cmd` и `.bat`, которые npm, npx, eslint и другие инструменты устанавливают в `node_modules/.bin`, не являются исполняемыми файлами и не могут быть запущены без оболочки. Чтобы запустить их в exec form, вызовите базовый скрипт с `node` напрямую, например `"command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/node_modules/eslint/bin/eslint.js"]`. Паттерн `node` плюс script-path работает на каждой платформе, потому что `node.exe` — это реальный бинарный файл. Чтобы запустить shim `.cmd` или `.bat` по имени, используйте shell form.468> В Windows форма exec требует, чтобы `command` разрешался в настоящий исполняемый файл, например `.exe`. Прослойки `.cmd` и `.bat`, которые npm, npx, eslint и другие инструменты устанавливают в `node_modules/.bin`, не являются исполняемыми файлами и не могут быть запущены без оболочки. Чтобы запустить их в форме exec, вызовите базовый скрипт напрямую через `node`, например `"command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/node_modules/eslint/bin/eslint.js"]`. Шаблон «`node` плюс путь к скрипту» работает на любой платформе, поскольку `node.exe` — настоящий двоичный файл. Чтобы запустить прослойку `.cmd` или `.bat` по имени, используйте форму shell.

469 469 

470Этот пример запускает Node скрипт, поставляемый с плагином. Exec form передаёт разрешённый путь скрипта как один аргумент без кавычек:470Этот пример запускает Node-скрипт, поставляемый с плагином. Форма exec передаёт разрешённый путь к скрипту как один аргумент без экранирования кавычками:

471 471 

472```json theme={null}472```json theme={null}

473{473{


477}477}

478```478```

479 479 

480Эквивалентная shell form нуждается в кавычках для обработки путей с пробелами или специальными символами:480Эквивалентная форма shell требует кавычек для обработки путей с пробелами или специальными символами:

481 481 

482```json theme={null}482```json theme={null}

483{483{


486}486}

487```487```

488 488 

489Обе формы поддерживают одни и те же [path placeholders](#reference-scripts-by-path), и обе экспортируют их как переменные окружения `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` и `CLAUDE_PLUGIN_DATA` на порождённом процессе, поэтому скрипт может читать `process.env.CLAUDE_PLUGIN_ROOT` независимо от того, как он был запущен.489Обе формы поддерживают одни и те же [плейсхолдеры путей](#reference-scripts-by-path), и обе экспортируют их как переменные окружения `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` и `CLAUDE_PLUGIN_DATA` в запущенный процесс, поэтому скрипт может читать `process.env.CLAUDE_PLUGIN_ROOT` независимо от того, как он был запущен.

490 490 

491Plugin hooks дополнительно подставляют значения [`${user_config.*}`](https://code.claude.com/docs/ru/plugins/manifest-reference#user-configuration), только в exec form: значение подставляется в `command` и в каждый элемент `args` как простая строка, поэтому оболочка не переанализирует его.491Хуки плагинов дополнительно подставляют значения [`${user_config.*}`](https://code.claude.com/docs/ru/plugins/manifest-reference#user-configuration), только в форме exec: значение подставляется в `command` и в каждый элемент `args` как обычная строка, поэтому никакая оболочка не разбирает его повторно.

492 492 

493Shell-form plugin hook, чей `command` ссылается на `${user_config.*}`, завершается с [ошибкой](https://code.claude.com/docs/ru/errors.md#plugin-command-references-user-config) вместо запуска. Чтобы использовать значение опции из shell-form hook, прочитайте переменную окружения `$CLAUDE_PLUGIN_OPTION_<KEY>`, такую как `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` для опции `webhook_url`, или установите `args` для переключения hook на exec form. До v2.1.207, shell-form plugin hook команды также подставляли `${user_config.*}`.493Хук плагина в форме shell, у которого `command` ссылается на `${user_config.*}`, завершается [ошибкой](https://code.claude.com/docs/ru/errors.md#plugin-command-references-user-config) вместо запуска. Чтобы использовать значение параметра из хука в форме shell, читайте переменную окружения `$CLAUDE_PLUGIN_OPTION_<KEY>`, например `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` для параметра `webhook_url`, или задайте `args`, чтобы переключить хук в форму exec. До v2.1.207 команды хуков плагинов в форме shell также подставляли `${user_config.*}`.

494 494 

495> [!NOTE]495> [!NOTE]

496>496>

497> В exec form, `command` — это только имя исполняемого файла или путь. Если `command` — это голое имя без разделителя пути и содержит пробелы рядом с `args`, Claude Code логирует предупреждение, потому что spawn не удастся: нет исполняемого файла с именем `node script.js`. Переместите дополнительные токены в `args`. Абсолютные пути с пробелами, такие как `C:\Program Files\nodejs\node.exe`, — это один действительный исполняемый файл и не вызывают предупреждение.497> В форме exec `command` — это только имя или путь исполняемого файла. Если `command` — голое имя без разделителя пути и содержит пробелы при наличии `args`, Claude Code записывает в лог предупреждение, поскольку запуск завершится неудачей: исполняемого файла с именем `node script.js` не существует. Перенесите лишние токены в `args`. Абсолютные пути с пробелами, такие как `C:\Program Files\nodejs\node.exe`, являются одним допустимым исполняемым файлом и не вызывают предупреждения.

498 498 

499#### HTTP hook fields499#### Поля HTTP-хука

500 500 

501В дополнение к [общим полям](#common-fields), HTTP hooks принимают эти поля:501Помимо [общих полей](#common-fields), HTTP-хуки принимают следующие поля:

502 502 

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

504| :- | :- | :- |504| :- | :- | :- |

505| `url` | да | URL для отправки POST запроса |505| `url` | да | URL, на который отправляется POST-запрос |

506| `headers` | нет | Дополнительные HTTP заголовки как пары ключ-значение. Значения поддерживают интерполяцию переменных окружения с использованием синтаксиса `$VAR_NAME` или `${VAR_NAME}`. Разрешены только переменные, указанные в `allowedEnvVars` |506| `headers` | нет | Дополнительные HTTP-заголовки в виде пар «ключ-значение». Значения поддерживают подстановку переменных окружения с помощью синтаксиса `$VAR_NAME` или `${VAR_NAME}`. Разрешаются только переменные, перечисленные в `allowedEnvVars` |

507| `allowedEnvVars` | нет | Список имён переменных окружения, которые могут быть интерполированы в значения заголовков. Ссылки на неуказанные переменные заменяются пустыми строками. Требуется для любой интерполяции переменных окружения |507| `allowedEnvVars` | нет | Список имён переменных окружения, которые можно подставлять в значения заголовков. Ссылки на неперечисленные переменные заменяются пустыми строками. Требуется для работы любой подстановки переменных окружения |

508| `onFailure` | нет | Что происходит с действием при сбое хука: `"continue"` (по умолчанию) или `"block"`. См. [Блокировка действия при сбое хука](#block-the-action-when-a-hook-fails). Требует Claude Code v2.1.295 или новее |508| `onFailure` | нет | Что происходит с действием, когда хук завершается сбоем: `"continue"` (по умолчанию) или `"block"`. См. [Блокировка действия при сбое хука](#block-the-action-when-a-hook-fails). Требуется Claude Code v2.1.295 или новее |

509 509 

510Claude Code отправляет [JSON входные данные](#hook-input-and-output) hook как тело POST запроса с `Content-Type: application/json`. Тело ответа использует тот же [JSON формат выхода](#json-output), что и command hooks.510Claude Code отправляет [входные данные JSON](#hook-input-and-output) хука как тело POST-запроса с `Content-Type: application/json`. Тело ответа использует тот же [формат вывода JSON](#json-output), что и командные хуки.

511 511 

512Обработка ошибок отличается от command hooks; см. [HTTP response handling](#http-response-handling).512Обработка ошибок отличается от командных хуков; см. [Обработка HTTP-ответов](#http-response-handling).

513 513 

514Этот пример отправляет события `PreToolUse` на локальный сервис валидации, аутентифицируясь с токеном из переменной окружения `MY_TOKEN`:514Этот пример отправляет события `PreToolUse` в локальный сервис проверки, аутентифицируясь токеном из переменной окружения `MY_TOKEN`:

515 515 

516```json theme={null}516```json theme={null}

517{517{


536}536}

537```537```

538 538 

539#### MCP tool hook fields539#### Поля хука MCP-инструмента

540 540 

541В дополнение к [общим полям](#common-fields), MCP tool hooks принимают эти поля:541Помимо [общих полей](#common-fields), хуки MCP-инструментов принимают следующие поля:

542 542 

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

544| :- | :- | :- |544| :- | :- | :- |

545| `server` | да | Имя настроенного MCP сервера. Для [plugin-bundled server](https://code.claude.com/docs/ru/mcp.md#plugin-provided-mcp-servers), это имя с областью `plugin:<plugin-name>:<server-name>`, такое как `plugin:my-plugin:db`, не голый ключ сервера |545| `server` | да | Имя настроенного MCP-сервера. Для [сервера, поставляемого с плагином](https://code.claude.com/docs/ru/mcp.md#plugin-provided-mcp-servers), это имя с областью `plugin:<plugin-name>:<server-name>`, например `plugin:my-plugin:db`, а не голый ключ сервера |

546| `tool` | да | Имя инструмента для вызова на этом сервере |546| `tool` | да | Имя инструмента, вызываемого на этом сервере |

547| `input` | нет | Аргументы, передаваемые инструменту. Строковые значения поддерживают подстановку `${path}` из [JSON входа](#hook-input-and-output) hook, такую как `"${tool_input.file_path}"` |547| `input` | нет | Аргументы, передаваемые инструменту. Строковые значения поддерживают подстановку `${path}` из [входных данных JSON](#hook-input-and-output) хука, например `"${tool_input.file_path}"` |

548 548 

549Этот пример вызывает инструмент `security_scan` на MCP сервере `my_server` после каждого `Write` или `Edit`, передавая путь отредактированного файла:549Этот пример вызывает инструмент `security_scan` на MCP-сервере `my_server` после каждого `Write` или `Edit`, передавая путь к отредактированному файлу:

550 550 

551```json theme={null}551```json theme={null}

552{552{


568}568}

569```569```

570 570 

571##### How the tool's result is read571##### Как читается результат инструмента

572 572 

573Claude Code читает текстовое содержимое инструмента так же, как читает command-hook stdout, следуя [правилу разбора под кодом выхода 0](#exit-code-0). Если инструмент возвращает `isError: true`, hook производит неблокирующую ошибку и выполнение продолжается.573Claude Code читает текстовое содержимое инструмента так же, как stdout командного хука, следуя [правилу разбора для кода выхода 0](#exit-code-0). Если инструмент возвращает `isError: true`, хук выдаёт неблокирующую ошибку, и выполнение продолжается.

574 574 

575##### When the server is still connecting575Если ошибка хука содержит одно из этих сообщений, Claude Code не смог прочитать ответ инструмента, поэтому хук не вынес вердикта:

576 576 

577На событиях, где hook может блокировать или изменять результат, такие как `PreToolUse` или `Stop`, Claude Code ждёт подключения сервера перед вызовом инструмента, максимум [`MCP_TIMEOUT`](https://code.claude.com/docs/ru/env-vars) и в пределах собственного [`timeout`](#common-fields) hook. На наблюдательных событиях, таких как `Notification` или `SessionEnd`, он не ждёт.577```text theme={null}

578MCP tool "security_scan" on server "my_server" gave no answer that could be read, because a message from the server was too large, so this hook gave no verdict. If this keeps happening, the tool must send a smaller answer.

579MCP tool "security_scan" on server "my_server" answered without its text, which happens when a result is too large, so this hook gave no verdict. If this keeps happening, the tool must send a smaller answer.

580```

578 581 

579Сервер, показывающий статус [`cached`](https://code.claude.com/docs/ru/mcp#server-status-detail), подключается, когда hook вызывает его инструмент. Если сервер не подключён в этот момент, hook производит неблокирующую ошибку и выполнение продолжается. Hook никогда не запускает поток OAuth, поэтому [аутентифицируйте сервер из `/mcp`](https://code.claude.com/docs/ru/mcp#authenticate-with-remote-mcp-servers) сначала.582В `PreToolUse` Claude Code отклоняет вызов инструмента, который проверял хук. В других событиях, таких как `UserPromptSubmit`, `PostToolUse` и `Stop`, ошибка является неблокирующей.

580 583 

581##### Events that fire before MCP servers are available584Если ошибка продолжает появляться, возвращайте из инструмента меньше данных или измените [`tool` или `input`](#mcp-tool-hook-fields) хука, чтобы ответ был меньше.

582 585 

583`SessionStart` при запуске, включая с `--continue` или `--resume`, и каждое событие `Setup` срабатывают перед доступностью MCP серверов сеанса для hooks. Claude Code пропускает их `mcp_tool` hooks без вызова инструмента, и [debug log](#debug-hooks) записывает `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`, или то же сообщение, называющее `Setup`. Когда `SessionStart` срабатывает снова позже в сеансе, после `/clear` или компактирования, его `mcp_tool` hooks запускаются. Для всего, что сеансу нужно при запуске, используйте `type: "command"` hook на `SessionStart` вместо этого.586##### Когда сервер ещё подключается

584 587 

585#### Prompt and agent hook fields588В событиях, где хук может заблокировать или изменить результат, таких как `PreToolUse` или `Stop`, Claude Code ожидает подключающийся сервер, прежде чем вызвать инструмент, не дольше [`MCP_TIMEOUT`](https://code.claude.com/docs/ru/env-vars) и в пределах собственного [`timeout`](#common-fields) хука. В наблюдательных событиях, таких как `Notification` или `SessionEnd`, он не ждёт.

586 589 

587В дополнение к [общим полям](#common-fields), prompt и agent hooks принимают эти поля:590Сервер со [статусом `cached`](https://code.claude.com/docs/ru/mcp#server-status-detail) подключается, когда хук вызывает его инструмент. Если в этот момент сервер не подключён, хук выдаёт неблокирующую ошибку, и выполнение продолжается. Хук никогда не запускает процесс OAuth, поэтому сначала [аутентифицируйте сервер через `/mcp`](https://code.claude.com/docs/ru/mcp#authenticate-with-remote-mcp-servers).

588 591 

589| Поле | Обязательно | Описание |592##### События, которые срабатывают до того, как MCP-серверы становятся доступны

593 

594`SessionStart` при запуске, в том числе с `--continue` или `--resume`, и каждое событие `Setup` срабатывают до того, как MCP-серверы сессии становятся доступны хукам. Claude Code пропускает их хуки `mcp_tool`, не вызывая инструмент, а в [лог отладки](#debug-hooks) записывается `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)` или то же сообщение с упоминанием `Setup`. Когда `SessionStart` срабатывает снова позже в сессии, после `/clear` или сжатия контекста, его хуки `mcp_tool` запускаются. Для всего, что нужно сессии при запуске, используйте вместо этого хук `type: "command"` в `SessionStart`.

595 

596#### Поля хуков с промптом и хуков агентов

597 

598Помимо [общих полей](#common-fields), хуки с промптом и хуки агентов принимают следующие поля:

599 

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

590| :- | :- | :- |601| :- | :- | :- |

591| `prompt` | да | Текст подсказки для отправки модели. Используйте `$ARGUMENTS` как заполнитель для JSON входа hook. Экранируйте обратной косой чертой для включения буквального текста: `\$1.00` отображается как `$1.00` |602| `prompt` | да | Текст промпта, отправляемого модели. Используйте `$ARGUMENTS` как плейсхолдер для входных данных JSON хука. Экранируйте обратной косой чертой, чтобы включить буквальный текст: `\$1.00` отображается как `$1.00` |

592| `model` | нет | Модель для оценки. По умолчанию — модель, которую Claude Code использует для [фоновых функций](https://code.claude.com/docs/ru/model-config.md#environment-variables) |603| `model` | нет | Модель для оценки. По умолчанию используется модель, которую Claude Code использует для [фоновой функциональности](https://code.claude.com/docs/ru/model-config.md#environment-variables) |

593 604 

594### Reference scripts by path605### Ссылки на скрипты по пути

595 606 

596Используйте эти заполнители для ссылки на скрипты hook относительно корня проекта или плагина, независимо от рабочего каталога при запуске hook:607Используйте эти плейсхолдеры, чтобы ссылаться на скрипты хуков относительно корня проекта или плагина, независимо от рабочего каталога в момент запуска хука:

597 608 

598* `${CLAUDE_PROJECT_DIR}`: корень проекта, где сеанс начался. Claude Code также устанавливает эту переменную в окружении [stdio MCP серверов](https://code.claude.com/docs/ru/mcp.md#option-3-add-a-local-stdio-server) и plugin LSP серверов.609* `${CLAUDE_PROJECT_DIR}`: корень проекта, в котором началась сессия. Claude Code также задаёт эту переменную в окружении [stdio MCP-серверов](https://code.claude.com/docs/ru/mcp.md#option-3-add-a-local-stdio-server) и LSP-серверов плагинов.

599* `${CLAUDE_PLUGIN_ROOT}`: каталог установки плагина, для скриптов, поставляемых с [плагином](https://code.claude.com/docs/ru/plugins/overview.md). См. [plugin environment variables](https://code.claude.com/docs/ru/plugins/manifest-reference.md#environment-variables) для того, как путь ведёт себя при обновлениях.610* `${CLAUDE_PLUGIN_ROOT}`: каталог установки плагина, для скриптов, поставляемых с [плагином](https://code.claude.com/docs/ru/plugins/overview.md). О том, как ведёт себя путь при обновлениях, см. [переменные окружения плагинов](https://code.claude.com/docs/ru/plugins/manifest-reference.md#environment-variables).

600* `${CLAUDE_PLUGIN_DATA}`: [каталог постоянных данных](https://code.claude.com/docs/ru/plugins/components.md#path-variables-and-persistent-data) плагина, для зависимостей и состояния, которые должны пережить обновления плагина.611* `${CLAUDE_PLUGIN_DATA}`: [каталог постоянных данных](https://code.claude.com/docs/ru/plugins/components.md#path-variables-and-persistent-data) плагина, для зависимостей и состояния, которые должны сохраняться при обновлениях плагина.

601 612 

602> [!NOTE]613> [!NOTE]

603>614>

604> **Worktrees отличаются.** Если Claude входит в [worktree](https://code.claude.com/docs/ru/worktrees.md) во время сеанса, Claude Code держит `${CLAUDE_PROJECT_DIR}` там, где он был, и передаёт путь worktree вашим hooks другим способом:615> **С worktree всё иначе.** Если Claude входит в [worktree](https://code.claude.com/docs/ru/worktrees.md) во время сессии, Claude Code оставляет `${CLAUDE_PROJECT_DIR}` там, где он был, и передаёт путь worktree вашим хукам другим способом:

605>616>

606> * **`${CLAUDE_PROJECT_DIR}` остаётся на месте**: он всё ещё указывает на корень проекта, где сеанс начался, поэтому команда, такая как `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh`, всё ещё запускает скрипт в основной checkout.617> * **`${CLAUDE_PROJECT_DIR}` остаётся на месте**: он по-прежнему указывает на корень проекта, в котором началась сессия, поэтому команда вроде `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` по-прежнему запускает скрипт в основной рабочей копии.

607> * **`cwd` следует за Claude**: поле `cwd` во [входных данных JSON](#common-input-fields) хука — это корень worktree после того, как Claude входит в worktree, и новый каталог после того, как Claude выполняет `cd`. Читайте его, когда хуку нужно знать, в каком каталоге работает Claude.618> * **`cwd` следует за Claude**: поле `cwd` во [входных данных JSON](#common-input-fields) хука — это корень worktree после того, как Claude входит в worktree, и новый каталог после того, как Claude выполняет `cd`. Читайте его, когда хуку нужно знать, в каком каталоге работает Claude.

608>619>

609> О том, куда указывает `${CLAUDE_PROJECT_DIR}` в сессии worktree, запущенной из десктопного приложения, см. [Что worktree разделяют с основным checkout](https://code.claude.com/docs/ru/worktrees.md#what-worktrees-share-with-the-main-checkout).620> О сессии в worktree, которую вы запускаете из десктопного приложения, и о том, куда указывает `${CLAUDE_PROJECT_DIR}`, см. [Что worktree разделяют с основной рабочей копией](https://code.claude.com/docs/ru/worktrees.md#what-worktrees-share-with-the-main-checkout).

610 621 

611Предпочитайте [exec form](#exec-form-and-shell-form) для любого hook, который ссылается на path placeholder. В shell form оберните каждый заполнитель в двойные кавычки.622Для любого хука, ссылающегося на плейсхолдер пути, предпочитайте [форму exec](#exec-form-and-shell-form). В форме shell заключайте каждый плейсхолдер в двойные кавычки.

612 623 

613> [tab] Project scripts624> [tab] Скрипты проекта

614>625>

615> Этот пример использует `${CLAUDE_PROJECT_DIR}` для запуска проверки стиля из каталога `.claude/hooks/` проекта после любого вызова инструмента `Write` или `Edit`:626> Этот пример использует `${CLAUDE_PROJECT_DIR}` для запуска средства проверки стиля из каталога `.claude/hooks/` проекта после любого вызова инструмента `Write` или `Edit`:

616>627>

617> ```json theme={null}628> ```json theme={null}

618> {629> {


633> }644> }

634> ```645> ```

635 646 

636> [tab] Plugin scripts647> [tab] Скрипты плагинов

637>648>

638> Определите plugin hooks в `hooks/hooks.json` с опциональным полем `description` верхнего уровня. Когда плагин включен, его hooks объединяются с вашими пользовательскими и проектными hooks.649> Определяйте хуки плагина в `hooks/hooks.json` с необязательным полем `description` верхнего уровня. Когда плагин включён, его хуки объединяются с вашими пользовательскими и проектными хуками.

639>650>

640> Этот пример запускает скрипт форматирования, поставляемый с плагином:651> Этот пример запускает скрипт форматирования, поставляемый с плагином:

641>652>


660> }671> }

661> ```672> ```

662>673>

663> См. [plugin components reference](https://code.claude.com/docs/ru/plugins/components.md#hooks) для получения подробной информации о создании plugin hooks.674> Подробнее о создании хуков плагинов см. в [справочнике по компонентам плагинов](https://code.claude.com/docs/ru/plugins/components.md#hooks).

664 675 

665### Hooks in skills and agents676### Хуки в скиллах и агентах

666 677 

667В дополнение к файлам настроек и плагинам, hooks могут быть определены непосредственно в [skills](https://code.claude.com/docs/ru/skills.md) и [subagents](https://code.claude.com/docs/ru/sub-agents.md) с использованием frontmatter, в том же формате конфигурации, что и hooks на основе настроек. Как долго Claude Code их регистрирует, зависит от компонента:678Помимо файлов настроек и плагинов, хуки можно определять непосредственно в [скиллах](https://code.claude.com/docs/ru/skills.md) и [субагентах](https://code.claude.com/docs/ru/sub-agents.md) с помощью frontmatter, в том же формате конфигурации, что и хуки на основе настроек. То, как долго Claude Code держит их зарегистрированными, зависит от компонента:

668 679 

669* **Subagent hooks**: Claude Code запускает их только пока этот subagent работает и удаляет их, когда он завершается. Claude Code преобразует hook `Stop` здесь в `SubagentStop`, событие, которое срабатывает при завершении subagent.680* **Хуки субагентов**: Claude Code запускает их только во время работы этого субагента и удаляет, когда он завершается. Claude Code преобразует хук `Stop` здесь в `SubagentStop` — событие, которое срабатывает при завершении субагента.

670* **Skill hooks**: Claude Code регистрирует их, когда вы или Claude вызываете skill, и продолжает запускать их для остатка сеанса, на ходах после собственного хода skill. Чтобы Claude Code удалил hook после его первого успешного запуска вместо этого, установите [`once: true`](#common-fields) на нём.681* **Хуки скиллов**: Claude Code регистрирует их, когда вы или Claude вызываете скилл, и продолжает запускать их до конца сессии, в том числе на ходах после собственного хода скилла. Чтобы Claude Code вместо этого удалял хук после его первого успешного запуска, задайте для него [`once: true`](#common-fields).

671 682 

672Этот skill определяет hook `PreToolUse`, который запускает скрипт проверки безопасности перед каждой командой `Bash`:683Этот скилл определяет хук `PreToolUse`, который запускает скрипт проверки безопасности перед каждой командой `Bash`:

673 684 

674```yaml theme={null}685```yaml theme={null}

675---686---


684---695---

685```696```

686 697 

687Subagents используют тот же формат в своём YAML frontmatter.698Субагенты используют тот же формат в своём YAML frontmatter.

688 699 

689Frontmatter hooks в project skill следуют тому же [правилу доверия рабочей области, что и hooks в файлах настроек](#workspace-trust). Claude Code регистрирует их, когда вы или Claude вызываете skill, включая в запуск `-p` в папке, которую вы не доверяли.700Хуки во frontmatter проектного скилла следуют тому же [правилу доверия к рабочему пространству, что и хуки в файлах настроек](#workspace-trust). Claude Code регистрирует их, когда вы или Claude вызываете скилл, в том числе при запуске с `-p` в папке, которой вы не доверяете.

690 701 

691Хуки из frontmatter субагента проекта запускаются только после того, как вы примете [диалоговое окно доверия к рабочему пространству](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust) для папки, из которой взят файл агента. Сессия с `-p` не считается принятием. В разделе [Что запускается до того, как вы доверитесь папке](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder) это сравнивается с правилом для файлов настроек, а на странице о субагентах перечислено, [какие области действия являются исключениями](https://code.claude.com/docs/ru/sub-agents.md#hooks-in-subagent-frontmatter).702Хуки во frontmatter проектного субагента запускаются только после того, как вы примете [диалоговое окно доверия к рабочему пространству](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust) для папки, из которой взят файл агента. Сессия `-p` не считается его принятием. В разделе [Что запускается до того, как вы доверитесь папке](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder) это сравнивается с правилом для файлов настроек, а на странице субагентов перечислено, [какие области действия освобождены](https://code.claude.com/docs/ru/sub-agents.md#hooks-in-subagent-frontmatter).

692 703 

693#### Ограничения хуков скиллов704#### Ограничения хуков скиллов

694 705 

695Если хуки из frontmatter скилла не срабатывают после того, как вы или Claude вызвали скилл, выполните [`/hooks`](#the-%2Fhooks-menu) в этой сессии. Если они есть в списке, см. [Хук не срабатывает](https://code.claude.com/docs/ru/hooks-guide.md#hook-not-firing). Если ни одного из них в списке нет, возможно, скилл попал под блокировку «только плагины» или превысил лимит хуков и работает без всех своих хуков из frontmatter. Проверьте каждый случай:706Если хуки во frontmatter скилла не срабатывают после того, как вы или Claude вызвали скилл, выполните [`/hooks`](#the-%2Fhooks-menu) в этой сессии. Если они там перечислены, см. [Хук не срабатывает](https://code.claude.com/docs/ru/hooks-guide.md#hook-not-firing). Если ни один из них не перечислен, скилл может находиться под блокировкой «только плагины» или превышать лимит хуков и работает без каких-либо своих хуков из frontmatter. Проверьте каждый случай:

696 707 

697* **Блокировка «только плагины»**: администратор вашей организации может ограничить хуки плагинами и управляемыми настройками с помощью управляемой настройки [`strictPluginOnlyCustomization`](https://code.claude.com/docs/ru/settings-reference#strictpluginonlycustomization-hooks). При такой блокировке скилл сохраняет свои хуки из frontmatter, только если это скилл плагина, [встроенный скилл](https://code.claude.com/docs/ru/skills.md#bundled-skills) или скилл из [каталога управляемых настроек](https://code.claude.com/docs/ru/managed-settings.md#delivery-mechanisms). Хуки из ваших собственных файлов настроек тоже не запускаются.708* **Блокировка «только плагины»**: администратор вашей организации может ограничить хуки плагинами и управляемыми настройками с помощью управляемой настройки [`strictPluginOnlyCustomization`](https://code.claude.com/docs/ru/settings-reference#strictpluginonlycustomization-hooks). При такой блокировке скилл сохраняет свои хуки из frontmatter, только если это скилл плагина, [встроенный скилл](https://code.claude.com/docs/ru/skills.md#bundled-skills) или скилл в [каталоге управляемых настроек](https://code.claude.com/docs/ru/managed-settings.md#delivery-mechanisms). Хуки в ваших собственных файлах настроек тоже не запускаются.

698 * **Проверка**: введите `/status` в сессии Claude Code. Если [строка `Setting sources`](https://code.claude.com/docs/ru/settings#check-what-your-organization-enforces) содержит `Enterprise managed settings`, спросите администратора, блокирует ли `strictPluginOnlyCustomization` хуки.709 * **Проверка**: введите `/status` в сессии Claude Code. Если [строка `Setting sources`](https://code.claude.com/docs/ru/settings#check-what-your-organization-enforces) содержит `Enterprise managed settings`, спросите администратора, блокирует ли `strictPluginOnlyCustomization` хуки.

699 * **Решение**: перенесите скилл в [плагин](https://code.claude.com/docs/ru/plugins/create.md#convert-an-existing-claude-setup), потому что скиллы плагинов сохраняют свои хуки из frontmatter. Добавьте плагин в [маркетплейс](https://code.claude.com/docs/ru/plugins/create-marketplace.md#create-a-marketplace) и установите его оттуда. Если Claude Code отклоняет маркетплейс с сообщением [`is blocked by enterprise policy`](https://code.claude.com/docs/ru/plugins/troubleshooting#marketplace-source-is-blocked-by-enterprise-policy), попросите администратора разрешить этот маркетплейс.710 * **Исправление**: перенесите скилл в [плагин](https://code.claude.com/docs/ru/plugins/create.md#convert-an-existing-claude-setup), поскольку скиллы плагинов сохраняют свои хуки из frontmatter. Добавьте плагин в [маркетплейс](https://code.claude.com/docs/ru/plugins/create-marketplace.md#create-a-marketplace), а затем установите его оттуда. Если Claude Code отклоняет маркетплейс с сообщением [`is blocked by enterprise policy`](https://code.claude.com/docs/ru/plugins/troubleshooting#marketplace-source-is-blocked-by-enterprise-policy), попросите администратора разрешить этот маркетплейс.

700* **Лимит хуков**: в Claude Code v2.1.304 и новее у каждого источника скиллов есть собственный лимит на сессию. Ваш проект, ваша папка личных скиллов и каждый плагин считаются отдельными источниками. Скиллы из одного источника могут зарегистрировать не более 1 024 хуков. Matcher этих хуков в сумме могут содержать не более 16 384 символов. Matcher, под которым несколько хуков, учитывается по одному разу для каждого хука.711* **Лимит хуков**: в Claude Code v2.1.304 или новее у каждого источника скиллов есть собственный лимит на сессию. Ваш проект, ваша папка личных скиллов и каждый плагин считаются отдельными источниками. Скиллы из одного источника могут зарегистрировать не более 1 024 хуков. Matcher этих хуков в сумме могут содержать не более 16 384 символов. Matcher, под которым находится несколько хуков, учитывается один раз для каждого хука.

701 * **Проверка**: повторите сессию, в которой хук не сработал, с включённым отладочным логированием:712 * **Проверка**: повторите сессию, в которой хук не сработал, с включённым логированием отладки:

702 1. Запустите новую сессию из оболочки командой `claude --debug`. Если вы не запускаете сессии из оболочки, вместо этого первым делом введите [`/debug`](https://code.claude.com/docs/ru/commands#all-commands) в новой сессии.713 1. Запустите новую сессию из оболочки с помощью `claude --debug`. Если вы не запускаете сессии из оболочки, вместо этого сначала введите [`/debug`](https://code.claude.com/docs/ru/commands#all-commands) в новой сессии.

703 2. Вызовите те же скиллы в том же порядке, включая те, которые вызывал Claude, потому что обе суммы накапливаются скилл за скиллом. Попросите Claude вызвать любой скилл, который вы не можете ввести как команду.714 2. Вызовите те же скиллы в том же порядке, включая те, которые вызывал Claude, поскольку оба итоговых значения накапливаются скилл за скиллом. Попросите Claude вызвать любой скилл, который вы не можете ввести как команду.

704 3. Найдите в [отладочном логе](#debug-hooks) текст `registers none of its hooks`. Строка с этим текстом называет скилл, превысивший лимит.715 3. Найдите в [логе отладки](#debug-hooks) `registers none of its hooks`. Строка с этим текстом называет скилл, который превысил лимит.

705 * **Решение**: объявите меньше хуков или более короткие matcher в этом скилле или в других скиллах из того же источника, затем начните новую сессию. Если эти скиллы не ваши и вы не можете их редактировать, попросите их автора внести такое изменение. До тех пор начинайте новую сессию и вызывайте нужный скилл раньше любого другого скилла из того же источника.716 * **Исправление**: объявите меньше хуков или более короткие matcher в этом скилле или в других скиллах из его источника, затем начните новую сессию. Если эти скиллы не ваши и вы не можете их редактировать, попросите их автора внести это изменение. До тех пор начинайте новую сессию и вызывайте нужный скилл раньше любого другого скилла из его источника.

706 717 

707Если ни один из случаев к вам не относится, проверьте, нет ли [frontmatter, который не удалось разобрать](https://code.claude.com/docs/ru/skills.md#skill-not-triggering).718Если ни один из случаев не ваш, проверьте, нет ли [frontmatter, который не удалось разобрать](https://code.claude.com/docs/ru/skills.md#skill-not-triggering).

708 719 

709### Меню `/hooks`720### Меню `/hooks`

710 721 

711Введите `/hooks` в Claude Code, чтобы открыть браузер настроенных хуков, доступный только для чтения. В списке для каждого хука указано, откуда он взят: пользовательские настройки, настройки проекта, локальные настройки, плагин или текущая сессия.722Введите `/hooks` в Claude Code, чтобы открыть браузер настроенных хуков только для чтения. В списке каждый хук помечен источником, например пользовательские настройки, проектные настройки, локальные настройки, плагин или текущая сессия.

712 723 

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

714 725 

715Чтобы просмотреть все события хуков, включая те, для которых хуки не настроены, выберите `All events` в конце списка.726Чтобы просмотреть все события хуков, включая те, для которых хуки не настроены, выберите `All events` в конце списка.

716 727 

717### Отключение или удаление hooks728### Отключение или удаление хуков

718 729 

719Чтобы удалить хук, определённый в файле настроек, удалите его запись из этого файла.730Чтобы удалить хук, определённый в файле настроек, удалите его запись из этого файла.

720 731 

721Чтобы временно отключить все hooks без их удаления, установите `"disableAllHooks": true` в файле настроек. Claude Code читает значение, оставшееся после применения [приоритета параметров](https://code.claude.com/docs/ru/settings.md#settings-precedence), поэтому `"disableAllHooks": false` в `.claude/settings.json` проекта переопределяет `true` в ваших пользовательских параметрах. Чтобы отключить hooks для одного запуска, независимо от того, что говорят параметры проекта, передайте `--settings '{"disableAllHooks": true}'`, что имеет приоритет над параметрами проекта и локальными параметрами. Нет способа отключить отдельный hook, сохраняя его в конфигурации.732Чтобы временно отключить все хуки, не удаляя их, задайте `"disableAllHooks": true` в файле настроек. Claude Code читает значение, оставшееся после применения [приоритета настроек](https://code.claude.com/docs/ru/settings.md#settings-precedence), поэтому `"disableAllHooks": false` в `.claude/settings.json` проекта переопределяет `true` в ваших пользовательских настройках. Чтобы отключить хуки для одного запуска независимо от настроек проекта, передайте `--settings '{"disableAllHooks": true}'`, что имеет приоритет над проектными и локальными настройками. Способа отключить отдельный хук, сохранив его в конфигурации, нет.

722 733 

723Параметр `disableAllHooks` соблюдает иерархию управляемых параметров. Если администратор настроил hooks через управляемые параметры политики, `disableAllHooks`, установленный в пользовательских, проектных или локальных параметрах, не может отключить эти управляемые hooks. Только `disableAllHooks`, установленный на уровне управляемых параметров, может отключить управляемые hooks. Для полного охвата каждого уровня см. [`disableAllHooks`](https://code.claude.com/docs/ru/settings-reference#disableallhooks).734Настройка `disableAllHooks` учитывает иерархию управляемых настроек. Если администратор настроил хуки через настройки управляемой политики, `disableAllHooks`, заданный в пользовательских, проектных или локальных настройках, не может отключить эти управляемые хуки. Только `disableAllHooks`, заданный на уровне управляемых настроек, может отключить управляемые хуки. О полном охвате каждого уровня см. [`disableAllHooks`](https://code.claude.com/docs/ru/settings-reference#disableallhooks).

724 735 

725Прямые редактирования hooks в файлах настроек обычно захватываются автоматически наблюдателем файлов.736Прямые изменения хуков в файлах настроек обычно подхватываются автоматически средством отслеживания файлов.

726 737 

727## Входные и выходные данные хуков738## Входные и выходные данные хуков

728 739 


892 903 

893#### Хуки, запускающие фоновый процесс904#### Хуки, запускающие фоновый процесс

894 905 

906Хук может запустить долго работающую программу, например сервер разработки, и оставить её работать, пока сессия продолжается. В скрипте хука или в команде в [форме оболочки](#exec-form-and-shell-form):

907 

908* Запустите программу в фоновом режиме

909* Перенаправьте её stdout и stderr. Например, команда Bash `npm run dev > dev-server.log 2>&1 &` направляет оба потока в файл. Если вы их не перенаправите, хуку, который не является [асинхронным](#run-hooks-in-the-background), требуется до 10 секунд, чтобы завершиться после выхода собственного процесса.

910 

895Если ваш командный хук принимает решение в фоновом процессе и завершается, то отказ, который этот процесс выводит после того, как Claude Code перестал читать вывод, не блокирует вызов инструмента. Для хука, который не является [асинхронным](#run-hooks-in-the-background), Claude Code заканчивает чтение вывода хука вскоре после завершения собственного процесса хука.911Если ваш командный хук принимает решение в фоновом процессе и завершается, то отказ, который этот процесс выводит после того, как Claude Code перестал читать вывод, не блокирует вызов инструмента. Для хука, который не является [асинхронным](#run-hooks-in-the-background), Claude Code заканчивает чтение вывода хука вскоре после завершения собственного процесса хука.

896 912 

897Выводите решение до запуска фонового процесса и перенаправляйте stdout и stderr этого процесса. Если ваш скрипт выводит разрешение, а затем запускает фоновый процесс, не перенаправив его stdout и stderr, Claude Code блокирует вызов инструмента. Ошибка хука содержит `refusing to honor the suspect capture`.913Выводите решение до запуска фонового процесса и перенаправляйте stdout и stderr этого процесса. Если ваш скрипт выводит разрешение, а затем запускает фоновый процесс, не перенаправив его stdout и stderr, Claude Code блокирует вызов инструмента. Ошибка хука содержит `stdio went quiet` и `refusing to honor the suspect capture`.

898 914 

899Этот скрипт хука `PreToolUse` выводит решение с помощью `policy-check.sh`, а затем загружает метрики в фоновом режиме:915Этот скрипт хука `PreToolUse` выводит решение с помощью `policy-check.sh`, а затем загружает метрики в фоновом режиме:

900 916 


1193 1209 

1194* `PreToolUse`: `updatedInput` непосредственно в `hookSpecificOutput` заменяет аргументы инструмента перед его запуском. Смотрите [Управление решениями PreToolUse](#pretooluse-decision-control)1210* `PreToolUse`: `updatedInput` непосредственно в `hookSpecificOutput` заменяет аргументы инструмента перед его запуском. Смотрите [Управление решениями PreToolUse](#pretooluse-decision-control)

1195* `PermissionRequest`: `updatedInput` внутри объекта `decision`. Смотрите [Управление решениями PermissionRequest](#permissionrequest-decision-control)1211* `PermissionRequest`: `updatedInput` внутри объекта `decision`. Смотрите [Управление решениями PermissionRequest](#permissionrequest-decision-control)

1196* `PostToolUse`: `updatedToolOutput` заменяет результат инструмента. Смотрите [Управление решениями PostToolUse](#posttooluse-decision-control)1212* `PostToolUse`: `updatedToolOutput` заменяет результат инструмента. В облачной сессии [Cowork](https://claude.com/docs/cowork/overview) Claude Code игнорирует `updatedToolOutput`, если инструментом является `AskUserQuestion` или `ExitPlanMode`, и Claude читает исходный ответ или план. Смотрите [Управление решениями PostToolUse](#posttooluse-decision-control)

1197* `UserPromptSubmit`: не может заменить промпт; он только внедряет `additionalContext` рядом с ним1213* `UserPromptSubmit`: не может заменить промпт; он только внедряет `additionalContext` рядом с ним

1198 1214 

1199Для сценариев редактирования или преобразования данных перехватывайте исходящие входные данные инструментов в `PreToolUse`, а входящие результаты инструментов — в `PostToolUse`.1215Для сценариев редактирования или преобразования данных перехватывайте исходящие входные данные инструментов в `PreToolUse`, а входящие результаты инструментов — в `PostToolUse`.


2210| `addDirectories` | `directories`, `destination` | Добавляет рабочие каталоги. `directories` — массив строк с путями |2226| `addDirectories` | `directories`, `destination` | Добавляет рабочие каталоги. `directories` — массив строк с путями |

2211| `removeDirectories` | `directories`, `destination` | Удаляет рабочие каталоги |2227| `removeDirectories` | `directories`, `destination` | Удаляет рабочие каталоги |

2212 2228 

2229В `rules` для [правила разрешений](https://code.claude.com/docs/ru/permissions.md#permission-rule-syntax), записанного как `Tool(specifier)`, `toolName` — это имя инструмента, а `ruleContent` — спецификатор:

2230 

2231* `Bash(npm test)`: `{ "toolName": "Bash", "ruleContent": "npm test" }`

2232* `Bash` или `Bash(*)`: `{ "toolName": "Bash" }`, потому что оба соответствуют всему инструменту

2233* `mcp__github__get_issue`: `{ "toolName": "mcp__github__get_issue" }`

2234 

2235Не указывайте `ruleContent` в разрешающем правиле для [MCP-инструмента](https://code.claude.com/docs/ru/permissions.md#mcp). Если его добавить, правило не будет соответствовать ни одному вызову.

2236 

2213> [!NOTE]2237> [!NOTE]

2214>2238>

2215> `setMode` с `bypassPermissions` вступает в силу, только если вы запустили сессию, когда режим обхода уже был доступен: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` или `permissions.defaultMode: "bypassPermissions"` в [пользовательских настройках, `--settings` или управляемых настройках](https://code.claude.com/docs/ru/settings-reference#permissions-defaultmode). В противном случае обновление ничего не делает. Обновление также ничего не делает, когда [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/ru/permissions#managed-settings) отключает этот режим или когда сессия запускается в [ограниченном режиме](https://code.claude.com/docs/ru/cli-reference.md#cli-flags).2239> `setMode` с `bypassPermissions` вступает в силу, только если вы запустили сессию, когда режим обхода уже был доступен: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` или `permissions.defaultMode: "bypassPermissions"` в [пользовательских настройках, `--settings` или управляемых настройках](https://code.claude.com/docs/ru/settings-reference#permissions-defaultmode). В противном случае обновление ничего не делает. Обновление также ничего не делает, когда [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/ru/permissions#managed-settings) отключает этот режим или когда сессия запускается в [ограниченном режиме](https://code.claude.com/docs/ru/cli-reference.md#cli-flags).


2289| `reason` | Объяснение, показываемое Claude, когда `decision` равно `"block"` |2313| `reason` | Объяснение, показываемое Claude, когда `decision` равно `"block"` |

2290| `additionalContext` | Строка, добавляемая в контекст Claude вместе с результатом инструмента. См. [Добавление контекста для Claude](#add-context-for-claude) |2314| `additionalContext` | Строка, добавляемая в контекст Claude вместе с результатом инструмента. См. [Добавление контекста для Claude](#add-context-for-claude) |

2291| `classifierContext` | Краткое примечание о результате этого вызова, предназначенное для классификатора [авторежима](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode), а не для Claude. См. [Аннотирование результата для классификатора авторежима](#annotate-a-result-for-the-auto-mode-classifier). Требуется Claude Code v2.1.236 или новее |2315| `classifierContext` | Краткое примечание о результате этого вызова, предназначенное для классификатора [авторежима](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode), а не для Claude. См. [Аннотирование результата для классификатора авторежима](#annotate-a-result-for-the-auto-mode-classifier). Требуется Claude Code v2.1.236 или новее |

2292| `updatedToolOutput` | Заменяет вывод инструмента указанным значением до отправки его Claude. Значение должно соответствовать форме вывода инструмента |2316| `updatedToolOutput` | Заменяет вывод инструмента переданным значением до того, как он будет отправлен Claude. Значение должно соответствовать структуре вывода инструмента. В облачной сессии [Cowork](https://claude.com/docs/cowork/overview) Claude Code игнорирует это поле, когда инструментом является `AskUserQuestion` или `ExitPlanMode`, и Claude читает исходный ответ или план |

2293| `updatedMCPToolOutput` | Заменяет вывод только для [инструментов MCP](#match-mcp-tools). Предпочтительнее использовать `updatedToolOutput`, который работает для всех инструментов |2317| `updatedMCPToolOutput` | Заменяет вывод только для [MCP-инструментов](#match-mcp-tools). Предпочитайте `updatedToolOutput`, который работает и для встроенных инструментов |

2294 2318 

2295Пример ниже заменяет вывод вызова `Bash`. Значение замены соответствует форме вывода инструмента `Bash`:2319Пример ниже заменяет вывод вызова `Bash`. Значение замены соответствует форме вывода инструмента `Bash`:

2296 2320 

hooks-guide.md +1 −1

Details

964 964 

965> [!NOTE]965> [!NOTE]

966>966>

967> Если на вашем компьютере нет [управляемых настроек](https://code.claude.com/docs/ru/settings.md#check-what-your-organization-enforces) и ваша сессия не использует [учётные данные `/login`](https://code.claude.com/docs/ru/authentication#authentication-precedence) для плана Team или Enterprise, [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) может одобрить вызов, заблокированный вашим хуком `PreToolUse`. Сессия, которая вместо этого работает с API-ключом или долгоживущим [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/ru/authentication#generate-a-long-lived-token), не использует этот вход, даже если данные этого входа сохранены.967> На вашем компьютере может не быть [управляемых настроек](https://code.claude.com/docs/ru/settings.md#check-what-your-organization-enforces) и [файла `managed-mcp.json`](https://code.claude.com/docs/ru/managed-mcp#deploy-managed-mcp-json), а ваша сессия может не использовать [учётные данные `/login`](https://code.claude.com/docs/ru/authentication#authentication-precedence) для плана Team или Enterprise. В такой конфигурации [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) может одобрить вызов, заблокированный вашим хуком `PreToolUse`. Сессия, которая вместо этого работает с API-ключом или долгоживущим [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/ru/authentication#generate-a-long-lived-token), не использует этот вход, даже если данные этого входа сохранены.

968>968>

969> В режиме планирования мод может одобрить такой заблокированный вызов, только если он только для чтения, то есть не редактирование файла. Случаи, в которых одобрение мода не преодолевает ваши правила и хуки, описаны в разделе [Расширение разрешений с помощью хуков](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods).969> В режиме планирования мод может одобрить такой заблокированный вызов, только если он только для чтения, то есть не редактирование файла. Случаи, в которых одобрение мода не преодолевает ваши правила и хуки, описаны в разделе [Расширение разрешений с помощью хуков](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods).

970 970 

Details

251| `d`/`x` | Удалить выделение |251| `d`/`x` | Удалить выделение |

252| `y` | Скопировать выделение |252| `y` | Скопировать выделение |

253| `c`/`s` | Изменить выделение |253| `c`/`s` | Изменить выделение |

254| `p` | Заменить выделение содержимым регистра |254| `p`/`P` | Заменить выделение содержимым регистра |

255| `r{char}` | Заменить каждый выбранный символ на `{char}` |255| `r{char}` | Заменить каждый выбранный символ на `{char}` |

256| `~`/`u`/`U` | Переключить, преобразовать в нижний или верхний регистр выделение |256| `~`/`u`/`U` | Переключить, преобразовать в нижний или верхний регистр выделение |

257| `>`/`<` | Увеличить или уменьшить отступ выбранных строк |257| `>`/`<` | Увеличить или уменьшить отступ выбранных строк |


275* История ввода хранится для каждого рабочего каталога275* История ввода хранится для каждого рабочего каталога

276* Выполнение `/clear` начинает новый сеанс: при вызове истории сначала отображаются подсказки нового сеанса, а затем подсказки из более ранних сеансов. Разговор из предыдущего сеанса сохраняется и может быть возобновлен.276* Выполнение `/clear` начинает новый сеанс: при вызове истории сначала отображаются подсказки нового сеанса, а затем подсказки из более ранних сеансов. Разговор из предыдущего сеанса сохраняется и может быть возобновлен.

277* Если вы отправите одну и ту же подсказку дважды подряд, будет записана одна запись в истории, поэтому нажатие стрелки вверх переходит к предыдущей отличающейся подсказке277* Если вы отправите одну и ту же подсказку дважды подряд, будет записана одна запись в истории, поэтому нажатие стрелки вверх переходит к предыдущей отличающейся подсказке

278* Когда вы вызываете подсказку, которая включала вставленный текст, Claude Code отправляет полное содержимое вставки при повторной отправке. Если содержимое было [очищено](https://code.claude.com/docs/ru/claude-directory.md#cleaned-up-automatically), Claude Code не отправляет буквальную строку `[Pasted text #N]`; см. [Вставка большого содержимого](https://code.claude.com/docs/ru/terminal-config.md#paste-large-content) для информации о том, что происходит с подсказкой278* Когда вы вызываете промпт, который включал вставленный текст, Claude Code отправляет полное содержимое вставки при повторной отправке. Если содержимое было [очищено](https://code.claude.com/docs/ru/claude-directory.md#cleaned-up-automatically), Claude Code не отправляет буквальную строку `[Pasted text #N]`; см. [Вставка большого содержимого](https://code.claude.com/docs/ru/terminal-config.md#paste-large-content) для информации о том, что происходит с промптом

279* Расширение истории с помощью `!` отключено по умолчанию279* Расширение истории с помощью `!` отключено по умолчанию

280 280 

281### Восстановление очищенного черновика281### Восстановление очищенного черновика


304 304 

305Принятие совпадения или отмена поиска вступают в силу немедленно, даже если Claude Code всё ещё загружает историю.305Принятие совпадения или отмена поиска вступают в силу немедленно, даже если Claude Code всё ещё загружает историю.

306 306 

307Чтобы найти более ранний промпт, когда вы помните только что-то длинное, что вставляли в него, например лог ошибок, нажмите `Ctrl+R` и введите слово из вставленного текста. Требуется Claude Code v2.1.314 или более поздней версии.

308 

307## Фоновые команды Bash309## Фоновые команды Bash

308 310 

309Claude Code поддерживает запуск команд Bash в фоне, позволяя вам продолжать работу, пока выполняются долгоживущие процессы.311Claude Code поддерживает запуск команд Bash в фоне, позволяя вам продолжать работу, пока выполняются долгоживущие процессы.

keybindings.md +1 −1

Details

305 305 

306### Действия diff306### Действия diff

307 307 

308Эти действия работают только в прежнем средстве просмотра diff в Claude Code, которое `/diff` открывает вне [полноэкранного рендеринга](https://code.claude.com/docs/ru/fullscreen.md) после того, как вы отключите [мод `cc-plugin-diff`](https://code.claude.com/docs/ru/plugins/mods/overview#mods-built-into-claude-code) в `/plugin`. Пока этот мод включён, `/diff` вместо этого открывает [диалоговое окно diff](https://code.claude.com/docs/ru/interactive-mode.md#diff-dialog). `keybindings.json`, в котором указаны эти действия, в любом случае загружается без ошибок.308Эти действия работают только в прежнем средстве просмотра diff в Claude Code, которое `/diff` открывает вне [полноэкранного рендеринга](https://code.claude.com/docs/ru/fullscreen.md) после того, как вы отключите [мод `cc-plugin-diff`](https://code.claude.com/docs/ru/plugins/mods/overview#mods-built-into-claude-code) в `/plugin`. Пока этот мод включён, `/diff` вместо этого открывает [диалоговое окно diff](https://code.claude.com/docs/ru/interactive-mode.md#diff-dialog).

309 309 

310Действия, доступные в контексте `DiffDialog`:310Действия, доступные в контексте `DiffDialog`:

311 311 

Details

197* `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.197* `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.

198* `Plugin "<name>" not found in marketplace "claude-plugins-official"`: ваша локальная копия каталога маркетплейса может быть устаревшей. Обновите её с помощью `/plugin marketplace update claude-plugins-official`, затем повторите попытку установки. Если повторная попытка выводит то же сообщение, см. [Plugin not found in marketplace](https://code.claude.com/docs/ru/plugins/troubleshooting.md#plugin-not-found-in-marketplace).198* `Plugin "<name>" not found in marketplace "claude-plugins-official"`: ваша локальная копия каталога маркетплейса может быть устаревшей. Обновите её с помощью `/plugin marketplace update claude-plugins-official`, затем повторите попытку установки. Если повторная попытка выводит то же сообщение, см. [Plugin not found in marketplace](https://code.claude.com/docs/ru/plugins/troubleshooting.md#plugin-not-found-in-marketplace).

199 199 

200Чтобы включить плагин для всех в репозитории, а не устанавливать его самостоятельно, добавьте его в параметр проекта [`enabledPlugins`](https://code.claude.com/docs/ru/settings-reference#plugin-settings).200Чтобы включить плагин для всех в репозитории, добавьте его в [настройку проекта `enabledPlugins`](https://code.claude.com/docs/ru/settings-reference#plugin-settings). Каждому участнику всё равно нужно [установить его](https://code.claude.com/docs/ru/plugins/loading.md#enabled-in-project-settings-but-not-installed).

201 201 

202Code intelligence plugins требуют двоичного файла языкового сервера языка на машине каждого разработчика. См. [какой двоичный файл требует каждый язык](https://code.claude.com/docs/ru/plugins/code-intelligence.md). Установка из официального маркетплейса требует доступа в сеть к GitHub, где размещается маркетплейс. На ограниченной сети [добавьте маркетплейс с внутреннего хоста Git или локального пути](https://code.claude.com/docs/ru/plugins/install.md#add-a-marketplace) вместо этого.202Code intelligence plugins требуют двоичного файла языкового сервера языка на машине каждого разработчика. См. [какой двоичный файл требует каждый язык](https://code.claude.com/docs/ru/plugins/code-intelligence.md). Установка из официального маркетплейса требует доступа в сеть к GitHub, где размещается маркетплейс. На ограниченной сети [добавьте маркетплейс с внутреннего хоста Git или локального пути](https://code.claude.com/docs/ru/plugins/install.md#add-a-marketplace) вместо этого.

203 203 


235 235 

236Перечислите каталоги в `sparsePaths`, а не отдельные файлы. Файлы на уровне корня, такие как `package.json`, `tsconfig.base.json` и файлы блокировки, всегда проверяются наряду с каталогами, которые вы перечисляете. Каталоги на уровне корня нет, поэтому включите `.claude` в список, если вы хотите, чтобы `.claude/settings.json` или `.claude/rules/` корня репозитория были доступны внутри worktree. Для project skills, agents и commands см. [What worktrees share with the main checkout](https://code.claude.com/docs/ru/worktrees.md#what-worktrees-share-with-the-main-checkout).236Перечислите каталоги в `sparsePaths`, а не отдельные файлы. Файлы на уровне корня, такие как `package.json`, `tsconfig.base.json` и файлы блокировки, всегда проверяются наряду с каталогами, которые вы перечисляете. Каталоги на уровне корня нет, поэтому включите `.claude` в список, если вы хотите, чтобы `.claude/settings.json` или `.claude/rules/` корня репозитория были доступны внутри worktree. Для project skills, agents и commands см. [What worktrees share with the main checkout](https://code.claude.com/docs/ru/worktrees.md#what-worktrees-share-with-the-main-checkout).

237 237 

238Разреженный checkout требует, чтобы git включил `extensions.worktreeConfig` в общем файле `.git/config` репозитория, пока существует разреженный worktree. Claude Code удаляет эту запись после удаления последнего worktree, но только если Claude Code её добавил. Он никогда не удаляет значение, которое вы установили сами.238> [!NOTE]

239>

240> Разреженный checkout требует, чтобы git включил `extensions.worktreeConfig` в общем файле `.git/config` репозитория, пока существует разреженный worktree. Claude Code удаляет эту запись после удаления последнего worktree, но только если Claude Code её добавил.

239 241 

240Чтобы избежать дублирования больших каталогов, таких как `node_modules`, в worktrees, объедините `sparsePaths` с `symlinkDirectories` в одном `.claude/settings.json`:242Чтобы избежать дублирования больших каталогов, таких как `node_modules`, в worktrees, объедините `sparsePaths` с `symlinkDirectories` в одном `.claude/settings.json`:

241 243 

Details

156 156 

157### Конфликты с существующим входом157### Конфликты с существующим входом

158 158 

159Переменная учетных данных шлюза имеет приоритет над сохраненным входом claude.ai или ключом Console. Ваш вход claude.ai остается сохраненным и неиспользуемым, пока переменная установлена; отмените установку переменной, и Claude Code вернется к нему. С `ANTHROPIC_AUTH_TOKEN` переменная имеет приоритет немедленно. С `ANTHROPIC_API_KEY` вам предлагается один раз в интерактивном режиме одобрить ключ перед тем, как он возьмет верх.159Переменная учётных данных шлюза имеет приоритет над сохранённым входом claude.ai или ключом Console. С `ANTHROPIC_AUTH_TOKEN` переменная имеет приоритет немедленно. С `ANTHROPIC_API_KEY` вам один раз в интерактивном режиме предлагается одобрить ключ, прежде чем он вступит в силу.

160 160 

161Запустите `/status`, чтобы подтвердить, какой источник учетных данных активен. Если при запуске показывается предупреждение о конфликте аутентификации, называющее два источника, см. первую строку [таблицы устранения неполадок](#troubleshoot-gateway-errors), чтобы узнать, какой из них отбросить. Чтобы очистить сохраненный вход, чтобы остались только учетные данные шлюза, запустите `/logout`.161Запустите `/status`, чтобы подтвердить, какой источник учетных данных активен. Если при запуске показывается предупреждение о конфликте аутентификации, называющее два источника, см. первую строку [таблицы устранения неполадок](#troubleshoot-gateway-errors), чтобы узнать, какой из них отбросить. Чтобы очистить сохраненный вход, чтобы остались только учетные данные шлюза, запустите `/logout`.

162 162 


378У этой переменной следующие эффекты и ограничения:378У этой переменной следующие эффекты и ограничения:

379 379 

380* Она отключает автообновления, поэтому предусмотрите другой способ обновления, например через менеджер пакетов или управляемое распространение.380* Она отключает автообновления, поэтому предусмотрите другой способ обновления, например через менеджер пакетов или управляемое распространение.

381* Она подавляет проверку доступности [быстрого режима](https://code.claude.com/docs/ru/fast-mode.md). Если предыдущая проверка ещё не включила быстрый режим на этом компьютере, `/fast` сообщает, что быстрый режим недоступен.381* Она подавляет проверку доступности [быстрого режима](https://code.claude.com/docs/ru/fast-mode.md). Если при использовании Anthropic API команда `/fast` после этого сообщает, что быстрый режим недоступен, см. раздел [использование быстрого режима за прокси и LLM-шлюзами](https://code.claude.com/docs/ru/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways), чтобы восстановить быстрый режим.

382* Она не влияет на [обнаружение моделей шлюза](#add-gateway-models-to-the-model-picker), которое обращается только к вашему шлюзу. До v2.1.257 эта переменная также останавливала обновление результатов обнаружения, поэтому в меню выбора оставался ранее кэшированный список.382* Она не влияет на [обнаружение моделей шлюза](#add-gateway-models-to-the-model-picker), которое обращается только к вашему шлюзу. До v2.1.257 эта переменная также останавливала обновление результатов обнаружения, поэтому в меню выбора оставался ранее кэшированный список.

383* [Проверка безопасности доменов](https://code.claude.com/docs/ru/data-usage.md#webfetch-domain-safety-check) инструмента WebFetch не затрагивается и по-прежнему обращается к `api.anthropic.com`. Отключите её отдельно с помощью `skipWebFetchPreflight: true` в [настройках](https://code.claude.com/docs/ru/settings.md), если ваша сеть блокирует этот хост.383* [Проверка безопасности доменов](https://code.claude.com/docs/ru/data-usage.md#webfetch-domain-safety-check) инструмента WebFetch не затрагивается и по-прежнему обращается к `api.anthropic.com`. Отключите её отдельно с помощью `skipWebFetchPreflight: true` в [настройках](https://code.claude.com/docs/ru/settings.md), если ваша сеть блокирует этот хост.

384* Каждый поток телеметрии и управляющая им переменная описаны в разделе [сервисы телеметрии](https://code.claude.com/docs/ru/data-usage.md#telemetry-services).384* Каждый поток телеметрии и управляющая им переменная описаны в разделе [сервисы телеметрии](https://code.claude.com/docs/ru/data-usage.md#telemetry-services).

Details

251 251 

252* Приглашение входа означает пробел в учетных данных. Запустите `/status` и откройте вкладку **Status**: когда строка `Setting sources` не включает управляемые параметры, распределение не достигло машины; когда она включает, учетные данные разработчика не были доставлены, поэтому установите `ANTHROPIC_AUTH_TOKEN` или `apiKeyHelper`252* Приглашение входа означает пробел в учетных данных. Запустите `/status` и откройте вкладку **Status**: когда строка `Setting sources` не включает управляемые параметры, распределение не достигло машины; когда она включает, учетные данные разработчика не были доставлены, поэтому установите `ANTHROPIC_AUTH_TOKEN` или `apiKeyHelper`

253* Ошибки `Failed to authenticate` означают, что шлюз отклоняет запросы; его журнал говорит, какие учетные данные не прошли. Отклонение, которое сам журнал шлюза регистрирует, называет ключ разработчика, в то время как `401` от `api.anthropic.com` или конечной точки вашего поставщика означает, что учетные данные поставщика, которые держит шлюз, были отклонены253* Ошибки `Failed to authenticate` означают, что шлюз отклоняет запросы; его журнал говорит, какие учетные данные не прошли. Отклонение, которое сам журнал шлюза регистрирует, называет ключ разработчика, в то время как `401` от `api.anthropic.com` или конечной точки вашего поставщика означает, что учетные данные поставщика, которые держит шлюз, были отклонены

254* Одноразовое приглашение одобрения для ключа ожидается при первом использовании, когда шлюз ожидает ключи в заголовке `x-api-key`, установленном как `ANTHROPIC_API_KEY`. С `ANTHROPIC_AUTH_TOKEN` никакое приглашение не появляется и переменная берет на себя молча; ранее сохраненный вход claude.ai неактивен для этого сеанса254* Одноразовый запрос подтверждения для ключа ожидается при первом использовании, когда шлюз ожидает ключи в заголовке `x-api-key`, установленном как `ANTHROPIC_API_KEY`

255 255 

256Если ваша организация использует [быстрый режим](https://code.claude.com/docs/ru/fast-mode.md), запустите `/fast` здесь тоже: проверка доступности вызывает `api.anthropic.com` напрямую, а не следует базовому URL шлюза, поэтому сеанс, маршрутизируемый через шлюз, может сообщить быстрый режим как недоступный или отключенный, даже если вывод работает. [Использовать быстрый режим за прокси и LLM шлюзами](https://code.claude.com/docs/ru/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) сопоставляет каждое сообщение с переменной, которая его восстанавливает, распределяемой с [остальной конфигурацией](#distribute-the-configuration).256Если ваша организация использует [быстрый режим](https://code.claude.com/docs/ru/fast-mode.md), запустите `/fast` здесь тоже: проверка доступности вызывает `api.anthropic.com` напрямую, а не следует базовому URL шлюза, поэтому сеанс, маршрутизируемый через шлюз, может сообщить быстрый режим как недоступный или отключенный, даже если вывод работает. [Использовать быстрый режим за прокси и LLM шлюзами](https://code.claude.com/docs/ru/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) сопоставляет каждое сообщение с переменной, которая его восстанавливает, распределяемой с [остальной конфигурацией](#distribute-the-configuration).

257 257 

managed-mcp.md +1 −1

Details

187 187 

188* `type` — это `http` или `sse`. Как в `.mcp.json`, `streamable-http` принимается как псевдоним для `http`.188* `type` — это `http` или `sse`. Как в `.mcp.json`, `streamable-http` принимается как псевдоним для `http`.

189* `url` — это URL `https://`. Claude Code отказывает в обычном URL `http://`, включая тот, который указывает на `localhost`.189* `url` — это URL `https://`. Claude Code отказывает в обычном URL `http://`, включая тот, который указывает на `localhost`.

190* Запись не содержит членов `command`, `args`, `env` или `headersHelper`, поэтому документ управляемых параметров никогда не называет программу для запуска на машине пользователя.190* Запись не содержит членов `command`, `args`, `env` или `headersHelper`.

191* Ни одно значение не содержит ссылку `${VAR}`. Claude Code не расширяет переменные окружения в этих записях, поэтому пишите буквальные значения.191* Ни одно значение не содержит ссылку `${VAR}`. Claude Code не расширяет переменные окружения в этих записях, поэтому пишите буквальные значения.

192* Имя сервера содержит только буквы, цифры, дефисы и подчёркивания, и ни один ключ или значение не содержит управляющих или невидимых символов форматирования.192* Имя сервера содержит только буквы, цифры, дефисы и подчёркивания, и ни один ключ или значение не содержит управляющих или невидимых символов форматирования.

193 193 

mcp.md +233 −235

Details

62 62 

63MCP-серверы можно настроить несколькими способами в зависимости от ваших потребностей:63MCP-серверы можно настроить несколькими способами в зависимости от ваших потребностей:

64 64 

65### Вариант 1: Добавление удалённого HTTP-сервера65### Вариант 1: добавление удалённого HTTP-сервера

66 66 

67HTTP-серверы — рекомендуемый вариант для подключения к удалённым MCP-серверам. Это наиболее широко поддерживаемый транспорт для облачных сервисов.67HTTP-серверы — рекомендуемый вариант для подключения к удалённым MCP-серверам. Это наиболее широко поддерживаемый транспорт для облачных сервисов.

68 68 

69```bash theme={null}69```bash theme={null}

70# Базовый синтаксис70# Basic syntax

71claude mcp add --transport http <name> <url>71claude mcp add --transport http <name> <url>

72 72 

73# Реальный пример: подключение к Notion73# Real example: Connect to Notion

74claude mcp add --transport http notion https://mcp.notion.com/mcp74claude mcp add --transport http notion https://mcp.notion.com/mcp

75 75 

76# Пример с Bearer-токеном76# Example with Bearer token

77claude mcp add --transport http secure-api https://api.example.com/mcp \77claude mcp add --transport http secure-api https://api.example.com/mcp \

78 --header "Authorization: Bearer your-token"78 --header "Authorization: Bearer your-token"

79```79```

80 80 

81При настройке MCP-серверов через JSON в `.mcp.json`, `~/.claude.json` или `claude mcp add-json` поле `type` принимает `streamable-http` как псевдоним для `http`. Спецификация MCP использует для этого транспорта имя `streamable-http`, поэтому конфигурации, скопированные из документации сервера, работают без изменений.81При настройке MCP-серверов через JSON в `.mcp.json`, `~/.claude.json` или `claude mcp add-json` поле `type` принимает `streamable-http` как псевдоним для `http`. В спецификации MCP этот транспорт называется `streamable-http`, поэтому конфигурации, скопированные из документации сервера, работают без изменений.

82 82 

83Запись JSON, в которой есть `url`, но нет `type`, является ошибкой конфигурации, потому что Claude Code считает запись без `type` stdio-сервером. Claude Code пропускает такой сервер и сообщает `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.83Запись JSON, в которой есть `url`, но нет `type`, является ошибкой конфигурации, поскольку Claude Code считает запись без `type` stdio-сервером. Claude Code пропускает такой сервер и сообщает `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.

84 84 

85Только приложение-хост SDK, например приложение на [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/mcp.md) или [настольное приложение](https://code.claude.com/docs/ru/desktop.md), может зарегистрировать встроенный в процесс сервер `"type": "sdk"`. Claude Code пропускает запись `"type": "sdk"` в `.mcp.json`, `~/.claude.json` или настройках и сообщает `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.85Только хост-приложение SDK, например приложение на [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/mcp.md) или [десктопное приложение](https://code.claude.com/docs/ru/desktop.md), может зарегистрировать внутрипроцессный сервер `"type": "sdk"`. Claude Code пропускает запись `"type": "sdk"` в `.mcp.json`, `~/.claude.json` или настройках и сообщает `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

86 86 

87> [!NOTE]87> [!NOTE]

88>88>

89> При запусках с `--output-format stream-json` Claude Code также сообщает о пропущенной записи `--mcp-config` в [поле `mcp_server_errors`](https://code.claude.com/docs/ru/headless#stream-responses) события `system/init`, чтобы скрипты могли обнаружить, что сервер так и не загрузился.89> При запусках с `--output-format stream-json` Claude Code также сообщает о пропущенной записи `--mcp-config` в [поле `mcp_server_errors`](https://code.claude.com/docs/ru/headless#stream-responses) события `system/init`, чтобы скрипты могли обнаружить, что сервер так и не загрузился.

90 90 

91### Вариант 2: Добавление удалённого SSE-сервера91### Вариант 2: добавление удалённого SSE-сервера

92 92 

93> [!WARNING]93> [!WARNING]

94>94>

95> Транспорт SSE (Server-Sent Events) устарел. Используйте вместо него HTTP-серверы, где это возможно.95> Транспорт SSE (Server-Sent Events) объявлен устаревшим. По возможности используйте вместо него HTTP-серверы.

96 96 

97Некоторые сервисы по-прежнему предоставляют только SSE-эндпоинт. Добавляйте их той же командой `claude mcp add --transport http <name> <url>`, что и [HTTP-сервер](#option-1-add-a-remote-http-server). Claude Code сначала пробует транспорт HTTP и переключается на SSE, если сервер его не принимает. Автоматическое переключение требует Claude Code v2.1.265 или новее.97Некоторые сервисы по-прежнему предоставляют только SSE-эндпоинт. Добавляйте их той же командой `claude mcp add --transport http <name> <url>`, что и [HTTP-сервер](#option-1-add-a-remote-http-server). Claude Code сначала пробует транспорт HTTP и переключается на SSE, если сервер его не принимает. Для автоматического переключения требуется Claude Code v2.1.265 или новее.

98 98 

99В более ранней версии или для прямого подключения через SSE передайте вместо этого `--transport sse`:99В более ранней версии, или чтобы подключиться через SSE напрямую, передайте вместо этого `--transport sse`:

100 100 

101```bash theme={null}101```bash theme={null}

102# Базовый синтаксис102# Basic syntax

103claude mcp add --transport sse <name> <url>103claude mcp add --transport sse <name> <url>

104 104 

105# Реальный пример: подключение к Asana105# Real example: Connect to Asana

106claude mcp add --transport sse asana https://mcp.asana.com/sse106claude mcp add --transport sse asana https://mcp.asana.com/sse

107 107 

108# Пример с заголовком аутентификации108# Example with authentication header

109claude mcp add --transport sse private-api https://api.company.com/sse \109claude mcp add --transport sse private-api https://api.company.com/sse \

110 --header "X-API-Key: your-key-here"110 --header "X-API-Key: your-key-here"

111```111```

112 112 

113### Вариант 3: Добавление локального stdio-сервера113### Вариант 3: добавление локального stdio-сервера

114 114 

115Stdio-серверы работают как локальные процессы на вашей машине. Они идеально подходят для инструментов, которым нужен прямой доступ к системе, или для пользовательских скриптов.115Stdio-серверы работают как локальные процессы на вашем компьютере. Они идеально подходят для инструментов, которым нужен прямой доступ к системе, или для пользовательских скриптов.

116 116 

117Claude Code устанавливает в окружении запускаемого сервера переменную `CLAUDE_PROJECT_DIR`, указывающую на корень проекта, поэтому ваш сервер может разрешать пути относительно проекта, не завися от рабочего каталога. Это тот же каталог, который хуки получают в своей переменной `CLAUDE_PROJECT_DIR`. Читайте её внутри процесса вашего сервера, например `process.env.CLAUDE_PROJECT_DIR` в Node или `os.environ["CLAUDE_PROJECT_DIR"]` в Python.117Claude Code задаёт в окружении запущенного сервера переменную `CLAUDE_PROJECT_DIR`, равную корню проекта, чтобы ваш сервер мог разрешать пути относительно проекта, не завися от рабочего каталога. Это тот же каталог, который хуки получают в своей переменной `CLAUDE_PROJECT_DIR`. Считывайте её внутри процесса сервера, например `process.env.CLAUDE_PROJECT_DIR` в Node или `os.environ["CLAUDE_PROJECT_DIR"]` в Python.

118 118 

119`CLAUDE_PROJECT_DIR` — это стабильный корень проекта, и он не меняется, когда вы добавляете или удаляете рабочие каталоги во время сессии. Сервер, который ограничивает собственный доступ к файловой системе набором разрешённых каталогов, должен вместо этого реализовать MCP-запрос `roots/list`. Claude Code отвечает на `roots/list` каталогом запуска сессии плюс каждым [дополнительным рабочим каталогом](https://code.claude.com/docs/ru/permissions.md#working-directories), который вы предоставили с помощью `--add-dir`, `/add-dir` или настройки `additionalDirectories`. Claude Code отправляет `notifications/roots/list_changed`, когда этот набор меняется.119`CLAUDE_PROJECT_DIR` — это стабильный корень проекта, и он не меняется, когда вы добавляете или удаляете рабочие каталоги посреди сессии. Серверу, который ограничивает собственный доступ к файловой системе набором разрешённых каталогов, следует вместо этого реализовать запрос MCP `roots/list`. Claude Code отвечает на `roots/list` каталогом запуска сессии плюс каждым [дополнительным рабочим каталогом](https://code.claude.com/docs/ru/permissions.md#working-directories), который вы предоставили через `--add-dir`, `/add-dir` или настройку `additionalDirectories`. Claude Code отправляет `notifications/roots/list_changed`, когда этот набор меняется.

120 120 

121Эта переменная устанавливается в окружении сервера, а не в собственном окружении Claude Code, поэтому ссылка на неё через подстановку `${VAR}` в `command` или `args` записи `.mcp.json` с областью действия проекта или записи сервера с локальной или пользовательской областью действия в `~/.claude.json` требует значения по умолчанию, например `${CLAUDE_PROJECT_DIR:-.}`. Конфигурации MCP, предоставляемые плагинами, подставляют `${CLAUDE_PROJECT_DIR}` напрямую и не нуждаются в значении по умолчанию.121Эта переменная задаётся в окружении сервера, а не в собственном окружении Claude Code, поэтому для ссылки на неё через подстановку `${VAR}` в `command` или `args` записи `.mcp.json` с областью действия проекта либо записи сервера с локальной или пользовательской областью действия в `~/.claude.json` требуется значение по умолчанию, например `${CLAUDE_PROJECT_DIR:-.}`. Конфигурации MCP, предоставляемые плагинами, подставляют `${CLAUDE_PROJECT_DIR}` напрямую, и значение по умолчанию им не нужно.

122 122 

123```bash theme={null}123```bash theme={null}

124# Базовый синтаксис124# Basic syntax

125claude mcp add [options] <name> -- <command> [args...]125claude mcp add [options] <name> -- <command> [args...]

126 126 

127# Реальный пример: добавление сервера Airtable127# Real example: Add Airtable server

128claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \128claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \

129 -- npx -y airtable-mcp-server129 -- npx -y airtable-mcp-server

130```130```

131 131 

132> [!NOTE]132> [!NOTE]

133>133>

134> Для stdio-серверов `--` (двойной дефис) отделяет собственные опции Claude, такие как `--transport`, `--env` и `--scope`, от команды и аргументов, которые запускают сервер. Всё после `--` передаётся серверу без изменений.134> Для stdio-серверов `--` (двойной дефис) отделяет собственные параметры Claude, такие как `--transport`, `--env` и `--scope`, от команды и аргументов, запускающих сервер. Всё, что идёт после `--`, передаётся серверу без изменений.

135>135>

136> Например:136> Например:

137>137>

138> * `claude mcp add --transport stdio myserver -- npx server` → запускает `npx server`138> * `claude mcp add --transport stdio myserver -- npx server` → запускает `npx server`

139> * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → запускает `python server.py --port 8080` с `KEY=value` в окружении139> * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → запускает `python server.py --port 8080` с `KEY=value` в окружении

140>140>

141> Без `--` Claude Code попытался бы разобрать флаги сервера, такие как `--port` выше, как свои собственные опции.141> Без `--` Claude Code попытался бы разобрать флаги сервера, например `--port` выше, как собственные параметры.

142>142>

143> `--env` принимает несколько пар `KEY=value`. Если имя сервера идёт сразу после `--env`, CLI считает имя ещё одной парой и отклоняет его, поэтому поместите хотя бы одну другую опцию, например `--transport stdio`, между `--env` и именем сервера.143> `--env` принимает несколько пар `KEY=value`. Если имя сервера идёт сразу после `--env`, CLI считывает имя как ещё одну пару и отклоняет его, поэтому поместите хотя бы один другой параметр, например `--transport stdio`, между `--env` и именем сервера.

144 144 

145#### Как Claude Code останавливает stdio-сервер145#### Как Claude Code останавливает stdio-сервер

146 146 

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

148 148 

149* **В macOS и Linux**: Claude Code отправляет `SIGINT`, затем `SIGTERM`, если процесс всё ещё работает через 100 миллисекунд, затем `SIGKILL` ещё через 400 миллисекунд.149* **В macOS и Linux**: Claude Code отправляет `SIGINT`, затем `SIGTERM`, если процесс всё ещё работает через 100 миллисекунд, затем `SIGKILL` ещё через 400 миллисекунд.

150* **В Windows**: Claude Code закрывает stdin сервера, затем завершает дерево процессов сервера, если процесс всё ещё работает через 300 миллисекунд.150* **В Windows**: Claude Code закрывает stdin сервера, затем завершает дерево процессов сервера, если процесс всё ещё работает через 300 миллисекунд.

151 151 

152До версии v2.1.296 Claude Code в Windows сразу завершал дерево процессов сервера, не закрывая предварительно stdin и не дожидаясь завершения.152До v2.1.296 Claude Code в Windows сразу завершал дерево процессов сервера, не закрывая предварительно stdin и не ожидая.

153 153 

154### Вариант 4: Добавление удалённого WebSocket-сервера154### Вариант 4: добавление удалённого WebSocket-сервера

155 155 

156WebSocket-серверы поддерживают постоянное двунаправленное соединение, что подходит для удалённых MCP-серверов, которые отправляют Claude события по собственной инициативе. Используйте вместо этого HTTP, если ваш сервер только отвечает на запросы, так как HTTP поддерживает OAuth и флаг `claude mcp add --transport`, а WebSocket не поддерживает ни то, ни другое.156WebSocket-серверы поддерживают постоянное двунаправленное соединение, что подходит удалённым MCP-серверам, которые отправляют события Claude по собственной инициативе. Используйте HTTP, если ваш сервер только отвечает на запросы, поскольку HTTP поддерживает OAuth и флаг `claude mcp add --transport`, а WebSocket не поддерживает ни то, ни другое.

157 157 

158Настраивайте WebSocket-серверы в `.mcp.json` или с помощью `claude mcp add-json`:158Настраивайте WebSocket-серверы в `.mcp.json` или с помощью `claude mcp add-json`:

159 159 


162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'

163```163```

164 164 

165Запись `type: "ws"` принимает те же поля `url`, `headers`, `headersHelper`, `timeout` и `alwaysLoad`, что и `http`. Аутентификация выполняется только через заголовки, поэтому передайте статический токен в `headers` или генерируйте его при подключении с помощью [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Флаг `claude mcp add --transport` не принимает `ws`.165Запись `type: "ws"` принимает те же поля `url`, `headers`, `headersHelper`, `timeout` и `alwaysLoad`, что и `http`. Аутентификация выполняется только через заголовки, поэтому передайте статический токен в `headers` или генерируйте его в момент подключения с помощью [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Флаг `claude mcp add --transport` не принимает `ws`.

166 166 

167### Добавление сервера по инструкциям по настройке, написанным для другого клиента167### Добавление сервера по инструкциям по настройке, написанным для другого клиента

168 168 

169MCP-серверы не привязаны к Claude Code, поэтому инструкции по настройке сервера могут быть написаны для Claude Desktop, Cursor или другого MCP-клиента и не содержать команды `claude mcp add`. Чтобы всё равно добавить сервер, найдите в этих инструкциях URL, команду запуска или блок JSON:169MCP-серверы не привязаны к Claude Code, поэтому инструкции по настройке сервера могут быть написаны для Claude Desktop, Cursor или другого MCP-клиента и не содержать команды `claude mcp add`. Чтобы всё равно добавить сервер, найдите в этих инструкциях URL, команду запуска или блок JSON:

170 170 

171* **URL**, например `https://mcp.example.com/mcp`: сервер удалённый.171* **URL**, например `https://mcp.example.com/mcp`: сервер удалённый.

172* **Команда запуска**, например `npx -y @example/mcp-server`: сервер работает на вашей машине.172* **Команда запуска**, например `npx -y @example/mcp-server`: сервер работает на вашем компьютере.

173* **Блок JSON `mcpServers`**: конфигурация, написанная для файла настроек другого клиента.173* **Блок JSON `mcpServers`**: конфигурация, написанная для файла настроек другого клиента.

174 174 

175Каждый из них — один из входных данных, которые принимают четыре варианта из раздела [Установка MCP-серверов](#installing-mcp-servers). Найдите ниже свой случай, чтобы превратить его в команду, которую принимает Claude Code. Каждая команда записывает конфигурацию в [локальную область действия](#local-scope), если вы не добавите `--scope project` или `--scope user`.175Каждый из них — это один из входных данных, которые принимают четыре варианта из раздела [Установка MCP-серверов](#installing-mcp-servers). Найдите ниже свой вариант, чтобы превратить его в команду, которую принимает Claude Code. Каждая команда записывает конфигурацию в [локальную область действия](#local-scope), если вы не добавите `--scope project` или `--scope user`.

176 176 

177#### Добавление сервера из URL177#### Добавление сервера по URL

178 178 

179URL означает, что сервер удалённый. Для эндпоинта `https://` добавьте его с `--transport http` или следуйте [Варианту 2](#option-2-add-a-remote-sse-server), если в инструкциях сказано, что эндпоинт использует SSE. Для эндпоинта `wss://` используйте вместо этого [Вариант 4](#option-4-add-a-remote-websocket-server), так как `--transport` не принимает `ws`:179URL означает, что сервер удалённый. Для эндпоинта `https://` добавьте его с `--transport http` или следуйте [варианту 2](#option-2-add-a-remote-sse-server), если в инструкциях сказано, что эндпоинт использует SSE. Для эндпоинта `wss://` используйте вместо этого [вариант 4](#option-4-add-a-remote-websocket-server), поскольку `--transport` не принимает `ws`:

180 180 

181```bash theme={null}181```bash theme={null}

182claude mcp add --transport http example https://mcp.example.com/mcp182claude mcp add --transport http example https://mcp.example.com/mcp

183```183```

184 184 

185Если в инструкциях также указан API-ключ или заголовок с токеном, передайте его с `--header`, как показано в [Варианте 1](#option-1-add-a-remote-http-server).185Если в инструкциях также указан API-ключ или заголовок с токеном, передайте его с помощью `--header`, как показано в [варианте 1](#option-1-add-a-remote-http-server).

186 186 

187#### Добавление сервера из команды `npx`, `uvx` или двоичного файла187#### Добавление сервера по команде `npx`, `uvx` или бинарного файла

188 188 

189Команда запуска означает, что сервер работает как локальный stdio-процесс. Поместите всю команду после `--`, чтобы Claude Code передал флаги, такие как `-y`, команде, запускающей сервер, а не считал их своими опциями. Передайте все переменные окружения, которые требуют инструкции, с помощью `--env` после имени сервера и перед `--`:189Команда запуска означает, что сервер работает как локальный stdio-процесс. Поместите всю команду после `--`, чтобы Claude Code передал флаги, такие как `-y`, команде, запускающей сервер, а не считывал их как собственные параметры. Передайте все переменные окружения, которые требуют инструкции, с помощью `--env` после имени сервера и перед `--`:

190 190 

191```bash theme={null}191```bash theme={null}

192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server

193```193```

194 194 

195[Вариант 3](#option-3-add-a-local-stdio-server) подробно описывает разделитель `--`.195Разделитель `--` подробно описан в [варианте 3](#option-3-add-a-local-stdio-server).

196 196 

197#### Добавление сервера из блока JSON `mcpServers`197#### Добавление сервера из блока JSON `mcpServers`

198 198 

199Блок `mcpServers`, написанный для другого MCP-клиента, например Claude Desktop, использует тот же ключ-обёртку и ту же форму записи, которые читает Claude Code. Передайте `claude mcp add-json` объект внутри `mcpServers`, а не обёртку. Две разновидности записей требуют предварительного исправления:199Блок `mcpServers`, написанный для другого MCP-клиента, например Claude Desktop, использует тот же ключ-обёртку и ту же структуру записей, что читает Claude Code. Передайте `claude mcp add-json` объект внутри `mcpServers`, а не обёртку. Две разновидности записей сначала нужно исправить:

200 200 

201* **`url` без `type`**: добавьте `"type": "http"`, `"type": "sse"` или `"type": "ws"` в соответствии с эндпоинтом. Claude Code считает запись без `type` stdio-сервером, поэтому запись с `url` без `type` не работает.201* **`url` без `type`**: добавьте `"type": "http"`, `"type": "sse"` или `"type": "ws"` в соответствии с эндпоинтом. Claude Code считает запись без `type` stdio-сервером, поэтому запись с `url`, но без `type` завершается ошибкой.

202* **Ключ с символами, отличными от букв, цифр, дефисов и подчёркиваний**: выберите имя сервера, в котором используются только эти символы. В остальных случаях ключ и есть имя сервера.202* **Ключ с символами, отличными от букв, цифр, дефисов и подчёркиваний**: выберите имя сервера, в котором используются только эти символы. В остальных случаях ключ и есть имя сервера.

203 203 

204Например, этот блок:204Например, этот блок:


220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'

221```221```

222 222 

223Раздел [Добавление MCP-серверов из конфигурации JSON](#add-mcp-servers-from-json-configuration) описывает экранирование в оболочке и флаг `--scope` для `add-json`. Чтобы вместо этого поделиться сервером с вашей командой, добавьте `--scope project` или добавьте запись в `mcpServers` в файле `.mcp.json` в корне проекта и сделайте коммит. Раздел [Область действия проекта](#project-scope) описывает, как Claude Code загружает и одобряет этот файл.223Экранирование в оболочке и флаг `--scope` для `add-json` описаны в разделе [Добавление MCP-серверов из конфигурации JSON](#add-mcp-servers-from-json-configuration). Чтобы вместо этого поделиться сервером с командой, добавьте `--scope project` или добавьте запись в `mcpServers` в файле `.mcp.json` в корне проекта и сделайте коммит. Как Claude Code загружает и подтверждает этот файл, описано в разделе [Область действия проекта](#project-scope).

224 224 

225Каждая команда `claude mcp add` и `claude mcp add-json` при успехе выводит строку `Added ...`. Чтобы проверить, что Claude Code подключился, выполните `claude mcp get <name>`; раздел [Статус сервера](#server-status) описывает показываемые статусы и шаг одобрения для серверов из `.mcp.json`.225Каждая команда `claude mcp add` и `claude mcp add-json` при успехе выводит строку `Added ...`. Чтобы проверить, что Claude Code подключился, выполните `claude mcp get <name>`; отображаемые статусы и шаг подтверждения для серверов из `.mcp.json` описаны в разделе [Статус сервера](#server-status).

226 226 

227### Управление серверами227### Управление серверами

228 228 

229После настройки вы можете управлять своими MCP-серверами с помощью этих команд:229После настройки вы можете управлять MCP-серверами с помощью этих команд:

230 230 

231```bash theme={null}231```bash theme={null}

232# Список всех настроенных серверов232# List all configured servers

233claude mcp list233claude mcp list

234 234 

235# Получить сведения о конкретном сервере235# Get details for a specific server

236claude mcp get notion236claude mcp get notion

237 237 

238# Удалить сервер238# Remove a server

239claude mcp remove notion239claude mcp remove notion

240 240 

241# (внутри Claude Code) Проверить статус сервера241# (within Claude Code) Check server status

242/mcp242/mcp

243```243```

244 244 

245Когда вы удаляете удалённый сервер, Claude Code также удаляет токены OAuth и регистрацию клиента, которые он сохранил для этого сервера. Claude Code не отзывает токены на сервере авторизации, который их выдал. Чтобы отозвать токены там, где сервер авторизации поддерживает отзыв, выполните в оболочке [`claude mcp logout <name>`](#authenticate-from-the-command-line) перед `claude mcp remove <name>`.245Когда вы удаляете удалённый сервер, Claude Code также удаляет токены OAuth и регистрацию клиента, которые он сохранил для этого сервера. Claude Code не отзывает токены на сервере авторизации, который их выдал. Чтобы отозвать токены там, где сервер авторизации поддерживает отзыв, выполните [`claude mcp logout <name>`](#authenticate-from-the-command-line) в оболочке перед `claude mcp remove <name>`.

246 246 

247#### Статус сервера247#### Статус сервера

248 248 

249`claude mcp add` подтверждает успешное добавление, выводя строку `Added ...`, что означает, что конфигурация записана. Если вместо этого команда выводит сообщение `was not saved`, см. [MCP server was not saved or removed](https://code.claude.com/docs/ru/errors.md#mcp-server-was-not-saved-or-removed); для сообщения `may not have been saved` см. [MCP server may not have been saved or removed](https://code.claude.com/docs/ru/errors.md#mcp-server-may-not-have-been-saved-or-removed).249`claude mcp add` подтверждает успешное добавление, выводя строку `Added ...`, что означает, что конфигурация записана. Если вместо этого команда выводит сообщение `was not saved`, см. [MCP-сервер не был сохранён или удалён](https://code.claude.com/docs/ru/errors.md#mcp-server-was-not-saved-or-removed); для сообщения `may not have been saved` см. [MCP-сервер, возможно, не был сохранён или удалён](https://code.claude.com/docs/ru/errors.md#mcp-server-may-not-have-been-saved-or-removed).

250 250 

251`claude mcp list` показывает рядом с каждым сервером в списке статус работоспособности, например `✔ Connected`, `! Needs authentication` или `✘ Failed to connect`. Статус сбоя означает, что Claude Code не смог подключиться к этому серверу, а не то, что не удалось выполнить команду list.251`claude mcp list` показывает рядом с каждым сервером в списке статус работоспособности, например `✔ Connected`, `! Needs authentication` или `✘ Failed to connect`. Статус сбоя означает, что Claude Code не смог подключиться к этому серверу, а не что команда вывода списка завершилась ошибкой.

252 252 

253Статусы из этого списка отражают решение конфигурации, а не попытку подключения, поэтому Claude Code выводит их без подключения к серверу:253Статусы в этом списке отражают решение, принятое в конфигурации, а не попытку подключения, поэтому Claude Code выводит их, не подключаясь к серверу:

254 254 

255* ``⏸ Pending approval (run `claude` to approve)``: сервер с областью действия project из `.mcp.json`, который вы ещё не подтвердили. Claude Code показывает его и в `claude mcp list`, и в `claude mcp get <name>`. Запустите `claude` в интерактивном режиме, чтобы просмотреть и подтвердить его.255* ``⏸ Pending approval (run `claude` to approve)``: сервер с областью действия проекта из `.mcp.json`, который вы ещё не подтвердили. Claude Code показывает его и в `claude mcp list`, и в `claude mcp get <name>`. Запустите `claude` в интерактивном режиме, чтобы просмотреть и подтвердить его.

256* `✘ Rejected (see disabledMcpjsonServers in settings)`: сервер из `.mcp.json`, который отклоняет запись [`disabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#disabledmcpjsonservers). Claude Code показывает его только в `claude mcp get <name>`.256* `✘ Rejected (see disabledMcpjsonServers in settings)`: сервер из `.mcp.json`, который отклоняется записью [`disabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#disabledmcpjsonservers). Claude Code показывает его только в `claude mcp get <name>`.

257* `⊘ Disabled for this project (re-enable via /mcp)`: сервер, указанный в списке [`disabledMcpServers`](#disable-a-server-without-removing-it) проекта. Claude Code показывает его и в `claude mcp list`, и в `claude mcp get <name>`. Включите сервер обратно в панели `/mcp`.257* `⊘ Disabled for this project (re-enable via /mcp)`: сервер, указанный в списке [`disabledMcpServers`](#disable-a-server-without-removing-it) проекта. Claude Code показывает его и в `claude mcp list`, и в `claude mcp get <name>`. Включите сервер снова на панели `/mcp`.

258* `✘ Blocked by enterprise managed policy`: сервер, который отклоняет одна из политик вашей организации. Claude Code показывает его и в `claude mcp list`, и в `claude mcp get <name>`. Сервер, заблокированный списком разрешённых, списком запрещённых или другим ограничением в [управляемой конфигурации MCP](https://code.claude.com/docs/ru/managed-mcp.md#how-restrictions-appear-to-users), скрыт в обеих командах, а не показан с этим статусом. Спросите администратора, какая политика блокирует сервер.258* `✘ Blocked by enterprise managed policy`: сервер, который отклоняет одна из политик вашей организации. Claude Code показывает его и в `claude mcp list`, и в `claude mcp get <name>`. Сервер, заблокированный списком разрешённых серверов, списком запрещённых серверов или другим ограничением в [управляемой конфигурации MCP](https://code.claude.com/docs/ru/managed-mcp.md#how-restrictions-appear-to-users), скрыт в обеих командах, а не показан с этим статусом. Спросите администратора, какая политика блокирует сервер.

259 259 

260#### Одобрение серверов проекта и доверие к рабочему пространству260#### Подтверждение серверов проекта и доверие к рабочему пространству

261 261 

262`claude mcp list` и `claude mcp get` читают одобрения `.mcp.json` только из файлов настроек, не добавленных в репозиторий, пока вы не доверитесь рабочему пространству, запустив в нём `claude` и приняв диалоговое окно доверия к рабочему пространству. Клонированный репозиторий не может одобрить собственные серверы: [`enableAllProjectMcpServers`](https://code.claude.com/docs/ru/settings-reference#enableallprojectmcpservers) или [`enabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#enabledmcpjsonservers), добавленные в `.claude/settings.json` проекта, игнорируются в недоверенной папке, и сервер остаётся в статусе `⏸ Pending approval` вместо подключения и проверки работоспособности.262`claude mcp list` и `claude mcp get` считывают подтверждения для `.mcp.json` только из файлов настроек, которые не добавлены в репозиторий, пока вы не доверитесь рабочему пространству, запустив в нём `claude` и приняв диалоговое окно доверия к рабочему пространству. Клонированный репозиторий не может подтвердить собственные серверы: [`enableAllProjectMcpServers`](https://code.claude.com/docs/ru/settings-reference#enableallprojectmcpservers) или [`enabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#enabledmcpjsonservers), закоммиченные в `.claude/settings.json` проекта, игнорируются в недоверенной папке, и сервер остаётся в статусе `⏸ Pending approval`, а не подключается и проверяется на работоспособность.

263 263 

264Одобрения из этих источников по-прежнему применяются в недоверенной папке:264Подтверждения из этих источников по-прежнему действуют в недоверенной папке:

265 265 

266* ваш пользовательский `~/.claude/settings.json`266* ваш пользовательский `~/.claude/settings.json`

267* управляемые настройки267* управляемые настройки

268* настройки, переданные с `--settings`268* настройки, переданные через `--settings`

269 269 

270Claude Code также применяет одобрения из неотслеживаемого `.claude/settings.local.json`, но для проверки того, отслеживается ли файл, он запускает git, а эту проверку он выполняет только в [доверенной папке](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust). В папке, которой вы никогда не доверяли, Claude Code ждёт диалогового окна доверия, прежде чем применить одобрения из файла, если только папка не является вашим собственным каталогом конфигурации: вашим домашним каталогом или каталогом, чей `.claude` вы указали в [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/ru/env-vars). До версии v2.1.207 Claude Code применял одобрения из неотслеживаемого `.claude/settings.local.json` даже в папке, которой вы никогда не доверяли.270Claude Code также применяет подтверждения из неотслеживаемого `.claude/settings.local.json`, но он запускает git, чтобы проверить, отслеживается ли файл, и выполняет эту проверку только в [доверенной папке](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust). В папке, которой вы никогда не доверяли, Claude Code ждёт диалогового окна доверия, прежде чем применить подтверждения из файла, если только эта папка не является вашим собственным домашним каталогом конфигурации: вашим домашним каталогом или каталогом, чей `.claude` вы задали как [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/ru/env-vars). До v2.1.207 Claude Code применял подтверждения из неотслеживаемого `.claude/settings.local.json` даже в папке, которой вы никогда не доверяли.

271 271 

272Запись `disabledMcpjsonServers` в любом файле настроек по-прежнему отклоняет сервер.272Запись `disabledMcpjsonServers` в любом файле настроек по-прежнему отклоняет сервер.

273 273 

274#### Подробности статуса сервера274#### Подробности статуса сервера

275 275 

276В `/mcp`, включая меню сервера там, и в менеджере [`/plugin`](https://code.claude.com/docs/ru/plugins/install) удалённый HTTP- или SSE-сервер, который вы использовали раньше, может показывать статус `cached`, например `cached 2h ago · connects on first use · 5 tools`. Claude Code загрузил список инструментов сервера из своего кэша обнаружения, сохранённого в предыдущей сессии, вместо подключения при запуске, и Claude Code подключает сервер, когда Claude впервые вызывает один из инструментов этого сервера. Инструменты доступны с вашего первого сообщения, поэтому вам ничего не нужно делать. Кэш обнаружения и его статус `cached` требуют Claude Code v2.1.221 или новее.276В `/mcp`, включая меню сервера там, и в менеджере [`/plugin`](https://code.claude.com/docs/ru/plugins/install) удалённый HTTP- или SSE-сервер, которым вы пользовались раньше, может показывать статус `cached`, например `cached 2h ago · connects on first use · 5 tools`. Claude Code загрузил список инструментов сервера из своего кэша обнаружения, сохранённого в предыдущей сессии, вместо подключения при запуске, и Claude Code подключает сервер при первом вызове Claude одного из инструментов сервера. Инструменты доступны с вашего первого сообщения, поэтому ничего делать не нужно. Для кэша обнаружения и его статуса `cached` требуется Claude Code v2.1.221 или новее.

277 277 

278Кэш обнаружения по умолчанию отключён, если постепенное развёртывание не включило его для вашей учётной записи. Установите [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/ru/env-vars), чтобы включить его, или `0`, чтобы оставить его отключённым, даже если развёртывание его включило. До версии v2.1.238 кэш был включён по умолчанию.278Кэш обнаружения по умолчанию отключён, если только постепенное развёртывание не включило его для вашей учётной записи. Задайте [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/ru/env-vars), чтобы включить его, или `0`, чтобы оставить его отключённым даже при включении через развёртывание. До v2.1.238 кэш был включён по умолчанию.

279 279 

280Когда вы выбираете **Disable** или **Clear authentication** в меню сервера в `/mcp`, Claude Code также удаляет запись кэша этого сервера. **Reconnect** тоже удаляет её для подключённого сервера или сервера со сбоем; для сервера со статусом `cached` **Reconnect** подключает сервер сразу и сохраняет запись. В следующий раз, когда Claude Code подключится к серверу после удаления записи, он получит список инструментов с сервера, а не из кэша.280Когда вы выбираете **Disable** или **Clear authentication** в меню сервера в `/mcp`, Claude Code также удаляет запись кэша этого сервера. **Reconnect** тоже удаляет её для подключённого сервера или сервера со сбоем; для сервера в статусе `cached` **Reconnect** подключает сервер сейчас и сохраняет запись. При следующем подключении к серверу после удаления записи Claude Code получает список инструментов с сервера, а не из кэша.

281 281 

282##### Сбои подключения и ненастроенные серверы282##### Сбои подключения и ненастроенные серверы

283 283 

284Когда статус сервера — `✘ Failed to connect`, `claude mcp list` добавляет подробности сбоя к этой строке статуса, а `claude mcp get <name>` показывает их в строке `Issue:`. Подробности — это HTTP-статус или код ошибки, а также любой текст ошибки, возвращённый сервером. Подробное представление сервера в `/mcp` включает тот же текст от сервера в строке `Issue:`.284Когда статус сервера — `✘ Failed to connect`, `claude mcp list` добавляет подробности сбоя к этой строке статуса, а `claude mcp get <name>` показывает их в строке `Issue:`. Подробности — это HTTP-статус или код ошибки, а также текст ошибки, который вернул сервер. Подробное представление сервера в `/mcp` включает тот же текст от сервера в строке `Issue:`.

285 285 

286Claude Code удаляет из этих подробностей текст, похожий на учётные данные, и никогда не включает раскрытый URL сервера, который может содержать секреты. Claude Code не добавляет подробностей к статусу `✘ Connection error`, потому что текст исключения, который он вывел бы там, может содержать этот URL.286Claude Code скрывает в этих подробностях текст, похожий на учётные данные, и никогда не включает развёрнутый URL сервера, который может содержать секреты. К статусу `✘ Connection error` Claude Code не добавляет подробностей, поскольку текст исключения, который он вывел бы там, может содержать этот URL.

287 287 

288Когда вы завершаете аутентификацию из `/mcp`, а подключение по-прежнему не удаётся с HTTP-статусом или кодом ошибки транспорта, Claude Code добавляет этот код и origin URL сервера в сообщение, которое выводит после попытки. Origin — это схема и хост, плюс порт, если он указан в URL, например `https://mcp.example.com`.288Когда вы завершаете аутентификацию из `/mcp`, а подключение всё равно завершается с HTTP-статусом или кодом ошибки транспорта, Claude Code добавляет этот код и источник (origin) URL сервера в сообщение, которое выводит после попытки. Источник — это схема и хост, а также порт, если он указан в URL, например `https://mcp.example.com`.

289 289 

290* Путь и строка запроса никогда не появляются в этом сообщении.290* Путь и строка запроса никогда не появляются в этом сообщении.

291* Для сервера в локальной, проектной или пользовательской [области действия](#mcp-installation-scopes) или в управляемой конфигурации MCP origin показывает хост в том виде, в каком он записан в этой конфигурации, поэтому ссылка `${VAR}` в хосте в сообщении не раскрывается.291* Для сервера с локальной, проектной или пользовательской [областью действия](#mcp-installation-scopes) или в управляемой конфигурации MCP источник показывает хост так, как он записан в этой конфигурации, поэтому ссылка `${VAR}` в хосте не раскрывается в сообщении.

292* Для сбоя без статуса или кода ошибки Claude Code показывает текст ошибки без origin.292* Для сбоя без статуса или кода ошибки Claude Code показывает текст ошибки без источника.

293 293 

294Удалённый сервер, в конфигурации которого указан пустой `url`, отображается как `not configured` в `/mcp`, в `claude mcp list` и в менеджере [`/plugin`](https://code.claude.com/docs/ru/plugins/install), и Claude Code не пытается к нему подключиться. Плагин может включать такую запись-заполнитель для коннектора, который вы настроите позже, поэтому Claude Code не сообщает о ней как об ошибке или проблеме настройки. В подробном представлении сервера в `/mcp` отображается `No URL configured for this server`; укажите `url` записи, чтобы подключить его.294Удалённый сервер, в конфигурации которого пустой `url`, отображается как `not configured` в `/mcp`, в `claude mcp list` и в менеджере [`/plugin`](https://code.claude.com/docs/ru/plugins/install), и Claude Code не пытается к нему подключиться. Плагин может включать подобную запись-заглушку для коннектора, который вы настроите позже, поэтому Claude Code не сообщает о ней как об ошибке или проблеме настройки. В подробном представлении сервера в `/mcp` написано `No URL configured for this server`; задайте `url` записи, чтобы подключить его.

295 295 

296#### Предупреждения о конфигурации296#### Предупреждения о конфигурации

297 297 

298Claude Code предупреждает о перечисленных ниже проблемах конфигурации. В каждом пункте указано, что проверяет Claude Code и как устранить предупреждение:298Claude Code предупреждает о перечисленных ниже проблемах конфигурации. В каждом пункте указано, что проверяет Claude Code и как устранить предупреждение:

299 299 

300* **Скрытые пробельные символы**: Claude Code предупреждает, когда значение конфигурации MCP содержит скрытые начальные или конечные пробельные символы, которые часто появляются при вставке токена с завершающим переводом строки. Claude Code проверяет `command`, `url`, каждую запись `args`, а также значения и имена ключей в `env` и `headers`. Claude Code показывает предупреждение в выводе `claude mcp list` и в `/mcp`, называя затронутые поля без вывода их значений, например `Leading or trailing whitespace in: headers.Authorization`. Claude Code не обрезает пробельные символы и использует значения точно в том виде, в каком они записаны, поэтому отредактируйте конфигурацию, чтобы их удалить.300* **Скрытые пробельные символы**: Claude Code предупреждает, когда значение в конфигурации MCP содержит скрытые начальные или конечные пробельные символы, что часто возникает при вставке токена с завершающим переводом строки. Claude Code проверяет `command`, `url`, каждую запись `args`, а также значения и имена ключей в `env` и `headers`. Claude Code показывает предупреждение в выводе `claude mcp list` и в `/mcp`, называя затронутые поля без вывода их значений, например `Leading or trailing whitespace in: headers.Authorization`. Claude Code не обрезает пробельные символы и использует значения в точности как записано, поэтому отредактируйте конфигурацию, чтобы удалить их.

301* **Одно имя в нескольких областях действия**: если вы определяете одно и то же имя сервера в нескольких [областях действия](#mcp-installation-scopes) с разными эндпоинтами, Claude Code предупреждает о конфликте в выводе `claude mcp list` и в `/mcp`. Claude Code хранит входы через OAuth отдельно для каждого эндпоинта, поэтому, когда вы проходите аутентификацию для определения, загружаемого в одном проекте, вам всё равно нужно отдельно войти в проекте, где загружается другое определение. Оставьте нужный эндпоинт и удалите остальные с помощью `claude mcp remove <name> --scope <scope>`. В предупреждении Claude Code приводит эндпоинт каждой области действия в том виде, в каком он записан в вашей конфигурации, с нераскрытыми [ссылками `${VAR}`](#environment-variable-expansion-in-mcp-json), поэтому он никогда не показывает разрешённое значение, такое как API-ключ.301* **Одно и то же имя в нескольких областях действия**: если вы определили одно и то же имя сервера в нескольких [областях действия](#mcp-installation-scopes) с разными эндпоинтами, Claude Code предупреждает о конфликте в выводе `claude mcp list` и в `/mcp`. Claude Code хранит входы через OAuth для каждого эндпоинта отдельно, поэтому после аутентификации определения, загружающегося в одном проекте, вам всё равно нужно войти отдельно в проекте, где загружается другое определение. Оставьте нужный эндпоинт, а остальные удалите с помощью `claude mcp remove <name> --scope <scope>`. В предупреждении Claude Code приводит эндпоинт каждой области действия так, как он записан в вашей конфигурации, с нераскрытыми [ссылками `${VAR}`](#environment-variable-expansion-in-mcp-json), поэтому он никогда не показывает раскрытое значение, например API-ключ.

302* **Зарезервированные имена**: Claude Code резервирует имена своих встроенных серверов, включая `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview` и `Claude Browser`. Если ваша конфигурация определяет сервер с зарезервированным именем, Claude Code пропускает его при загрузке и показывает предупреждение с просьбой переименовать его. `claude mcp add` отклоняет зарезервированное имя с ошибкой. `Claude Preview` и `Claude Browser` обозначают встроенный сервер, который использует [панель предпросмотра настольного приложения Claude Code](https://code.claude.com/docs/ru/desktop.md#preview-your-app).302* **Зарезервированные имена**: Claude Code резервирует имена своих встроенных серверов, включая `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview` и `Claude Browser`. Если ваша конфигурация определяет сервер с зарезервированным именем, Claude Code пропускает его при загрузке и показывает предупреждение с просьбой переименовать его. `claude mcp add` отклоняет зарезервированное имя с ошибкой. `Claude Preview` и `Claude Browser` — оба имени встроенного сервера, который использует [панель предварительного просмотра десктопного приложения Claude Code](https://code.claude.com/docs/ru/desktop.md#preview-your-app).

303* **Отсутствующая переменная окружения**: если [ссылка `${VAR}`](#environment-variable-expansion-in-mcp-json) в конфигурации сервера указывает на переменную, которая не установлена и не имеет `:-default`, Claude Code выводит предупреждение в `claude mcp list` и в `/mcp`, называя переменную, и всё равно загружает сервер с нераскрытым текстом `${VAR}`. Установите переменную или добавьте резервный вариант `${VAR:-default}`. В `url` и `headers` удалённого сервера некоторые переменные учётных данных вместо этого [читаются как пустые](#credential-variables-that-read-as-empty), без предупреждения.303* **Отсутствующая переменная окружения**: если [ссылка `${VAR}`](#environment-variable-expansion-in-mcp-json) в конфигурации сервера называет переменную, которая не задана и не имеет `:-default`, Claude Code предупреждает в выводе `claude mcp list` и в `/mcp`, называя переменную, и всё равно загружает сервер с нераскрытым текстом `${VAR}`. Задайте переменную или добавьте резервный вариант `${VAR:-default}`. В `url` и `headers` удалённого сервера некоторые переменные с учётными данными вместо этого [считываются как пустые](#credential-variables-that-read-as-empty) без предупреждения.

304 304 

305#### Доступность инструментов305#### Доступность инструментов

306 306 


308 308 

309##### Количество инструментов в облачной сессии309##### Количество инструментов в облачной сессии

310 310 

311В [облачной сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) значение вида `3 of 13 tools available` означает, что Claude не может использовать остальные 10. Проверьте, среди прочего, следующие причины:311В [облачной сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) запись вроде `3 of 13 tools available` означает, что Claude не может использовать остальные 10. Проверьте, среди прочего, следующие причины:

312 312 

313* **Правило запрета в `.claude/settings.json` вашего репозитория называет этот инструмент или весь его сервер**: удалите [правило](https://code.claude.com/docs/ru/permissions.md#mcp), если [ваша сессия читает этот файл](https://code.claude.com/docs/ru/settings.md#settings-in-cloud-sessions)313* **Правило запрета в `.claude/settings.json` вашего репозитория называет инструмент или весь его сервер**: удалите [правило](https://code.claude.com/docs/ru/permissions.md#mcp), если [ваша сессия читает этот файл](https://code.claude.com/docs/ru/settings.md#settings-in-cloud-sessions)

314* **Полное имя инструмента длиннее 128 символов**: выполните [шаги для слишком длинного имени](https://code.claude.com/docs/ru/errors.md#mcp-tool-name-over-128-characters)314* **Полное имя инструмента длиннее 128 символов**: выполните [шаги для слишком длинного имени](https://code.claude.com/docs/ru/errors.md#mcp-tool-name-over-128-characters)

315* **Сервер предоставляет инструмент для своего собственного интерфейса, а не для Claude**: если вы поддерживаете сервер, добавьте `model` в `_meta.ui.visibility` инструмента, чтобы предоставить инструмент Claude. В противном случае исправлять нечего.315* **Сервер указывает инструмент для собственного интерфейса, а не для Claude**: если вы сопровождаете сервер, добавьте `model` в `_meta.ui.visibility` инструмента, чтобы предоставить инструмент Claude. В противном случае исправлять нечего.

316 316 

317##### Инструменты сервера, который ещё подключается317##### Инструменты сервера, который всё ещё подключается

318 318 

319Если для вашего запроса нужны инструменты сервера, который всё ещё подключается в фоне, Claude ждёт этот сервер, прежде чем продолжить. То, как происходит ожидание, зависит от вашей конфигурации:319Если вашему запросу нужны инструменты сервера, который всё ещё подключается в фоновом режиме, Claude ждёт этот сервер, прежде чем продолжить. Как происходит ожидание, зависит от вашей конфигурации:

320 320 

321* **С [поиском инструментов](#scale-with-mcp-tool-search), по умолчанию**: ожидание происходит внутри вызова `ToolSearch`.321* **С [поиском инструментов](#scale-with-mcp-tool-search), по умолчанию**: ожидание происходит внутри вызова `ToolSearch`.

322* **Без поиска инструментов**: Claude вместо этого использует инструмент `WaitForMcpServers`. К конфигурациям без поиска инструментов относятся `ENABLE_TOOL_SEARCH=false` и модель, выпущенная раньше Claude Opus 4.5, Claude Sonnet 4.5 и Claude Haiku 4.5, на Agent Platform от Google Cloud. Для шлюза `ANTHROPIC_BASE_URL` см. [Поиск инструментов через LLM-шлюз](#tool-search-through-a-gateway).322* **Без поиска инструментов**: Claude использует вместо этого инструмент `WaitForMcpServers`. К конфигурациям без поиска инструментов относятся `ENABLE_TOOL_SEARCH=false` и модель старше Claude Opus 4.5, Claude Sonnet 4.5 и Claude Haiku 4.5 на Agent Platform от Google Cloud. Для шлюза `ANTHROPIC_BASE_URL` см. [Поиск инструментов через LLM-шлюз](#tool-search-through-a-gateway).

323* **В Microsoft Foundry при [развёртывании, размещённом в Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude начинает с пути поиска инструментов, а не с `WaitForMcpServers`, так как Claude Code узнаёт об отклонении на стороне сервера развёртывания только из API. После того как Claude Code переключит это развёртывание на [предварительную загрузку](#scale-with-mcp-tool-search), инструменты сервера, завершившего подключение, становятся доступны при следующем запросе Claude.323* **В [развёртывании, размещённом в Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), в Microsoft Foundry**: Claude начинает с пути поиска инструментов, а не с `WaitForMcpServers`, поскольку Claude Code узнаёт об отклонении на стороне сервера развёртывания только из API. После того как Claude Code переключит это развёртывание на [предварительную загрузку](#scale-with-mcp-tool-search), инструменты сервера, завершившего подключение, становятся доступны при следующем запросе Claude.

324 324 

325При включённом поиске инструментов, когда сервер завершает подключение, пока Claude работает, Claude Code сообщает Claude имена инструментов сервера при его следующем запросе в том же ходе. Затем Claude может искать и вызывать эти инструменты, не дожидаясь вашего следующего сообщения.325При включённом поиске инструментов, когда сервер завершает подключение во время работы Claude, Claude Code перечисляет Claude имена инструментов сервера при его следующем запросе в рамках того же хода. Затем Claude может искать и вызывать эти инструменты, не дожидаясь вашего следующего сообщения.

326 326 

327После возобновления сессии Claude может вызвать инструмент из сохранённого диалога, пока MCP-сервер этого инструмента ещё подключается. Пока сервер выполняет первую попытку подключения, Claude Code удерживает вызов до 10 секунд и выполняет его, как только инструмент становится доступен. Если сервер не подключается вовремя или уже [повторяет попытку после неудачной](#automatic-reconnection), вызов завершается [ошибкой инструмента](https://code.claude.com/docs/ru/errors.md#no-such-tool-available) `No such tool available`.327После возобновления сессии Claude может вызвать инструмент из сохранённого диалога, пока MCP-сервер этого инструмента ещё подключается. Пока сервер выполняет первую попытку подключения, Claude Code удерживает вызов до 10 секунд и выполняет его, как только инструмент становится доступен. Если сервер не подключается вовремя или уже [повторяет попытку после неудачной](#automatic-reconnection), вызов завершается [ошибкой инструмента](https://code.claude.com/docs/ru/errors.md#no-such-tool-available) `No such tool available`.

328 328 

329### Отключение сервера без его удаления329### Отключение сервера без его удаления

330 330 

331Выключите сервер в панели `/mcp`, чтобы Claude Code перестал к нему подключаться, не теряя его конфигурацию. Claude Code по-прежнему показывает сервер в `/mcp` с пометкой, что он отключён.331Выключите сервер на панели `/mcp`, чтобы Claude Code перестал к нему подключаться, не теряя его конфигурацию. Claude Code по-прежнему показывает сервер в `/mcp` с пометкой об отключении.

332 332 

333Когда вы переключаете сервер, Claude Code записывает ваш выбор для каждого проекта в `~/.claude.json`, в один из двух списков, которые охватывают непересекающиеся наборы серверов:333Когда вы переключаете сервер, Claude Code записывает ваш выбор для каждого проекта в `~/.claude.json` в один из двух списков, которые охватывают непересекающиеся наборы серверов:

334 334 

335* `disabledMcpServers`: список исключений для пользовательских серверов, серверов плагинов, серверов, которые ваша организация [предоставляет через управляемые настройки](https://code.claude.com/docs/ru/managed-mcp.md#provide-servers-through-managed-settings), коннекторов claude.ai, которые Claude Code [получает сам](#how-connectors-reach-claude-code), и встроенных серверов, включённых по умолчанию. Claude Code не подключается к серверу, указанному здесь. Когда вы отключаете коннектор claude.ai с помощью переключателя `/mcp` для проекта, описанного в разделе [Отключение коннекторов claude.ai](#disable-claude-ai-connectors), Claude Code записывает его в этот список под отображаемым именем, например `claude.ai Slack`.335* `disabledMcpServers`: список для отказа от серверов, настроенных пользователем, серверов плагинов, серверов, которые ваша организация [предоставляет через управляемые настройки](https://code.claude.com/docs/ru/managed-mcp.md#provide-servers-through-managed-settings), коннекторов claude.ai, которые Claude Code [получает сам](#how-connectors-reach-claude-code), и встроенных серверов, включённых по умолчанию. Claude Code не подключается к серверу, указанному здесь. Когда вы отключаете коннектор claude.ai с помощью переключателя `/mcp` для проекта, описанного в разделе [Отключение коннекторов claude.ai](#disable-claude-ai-connectors), Claude Code записывает его в этот список под отображаемым именем, например `claude.ai Slack`.

336* `enabledMcpServers`: список включения для встроенных серверов, отключённых по умолчанию, таких как `computer-use`. Claude Code подключается к серверу, отключённому по умолчанию, только если вы укажете его здесь.336* `enabledMcpServers`: список для явного включения встроенных серверов, выключенных по умолчанию, например `computer-use`. Claude Code подключается к выключенному по умолчанию серверу, только если вы укажете его здесь.

337 337 

338Для каждого сервера Claude Code проверяет ровно один из двух списков, поэтому ни один список не переопределяет другой. Если вы добавите обычный сервер в `enabledMcpServers` или встроенный сервер, отключённый по умолчанию, в `disabledMcpServers`, Claude Code проигнорирует эту запись.338Для каждого сервера Claude Code обращается ровно к одному из двух списков, поэтому ни один список не переопределяет другой. Если вы добавите обычный сервер в `enabledMcpServers` или выключенный по умолчанию встроенный сервер в `disabledMcpServers`, Claude Code проигнорирует эту запись.

339 339 

340`disabledMcpServers` и `enabledMcpServers` не связаны с [`enabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#enabledmcpjsonservers) и [`disabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#disabledmcpjsonservers), которые управляют одобрением серверов, определённых в файле `.mcp.json` проекта.340`disabledMcpServers` и `enabledMcpServers` не связаны с [`enabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#enabledmcpjsonservers) и [`disabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#disabledmcpjsonservers), которые управляют подтверждением серверов, определённых в файле `.mcp.json` проекта.

341 341 

342### Среды выполнения MCP-клиента342### Среды выполнения MCP-клиента

343 343 

344Claude Code подключается к MCP-серверам через одну из двух сред выполнения клиента. Среда выполнения v1 построена на MCP TypeScript SDK 1.x. Среда выполнения v2 — это тот же код на [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), который добавляет ревизию протокола MCP 2026-07-28. Остальная часть этой страницы относится к обеим средам выполнения, кроме разделов, где явно упомянута среда выполнения v2.344Claude Code подключается к MCP-серверам через одну из двух сред выполнения клиента. Среда выполнения v1 построена на MCP TypeScript SDK 1.x. Среда выполнения v2 — это тот же код на [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), который добавляет ревизию протокола MCP 2026-07-28. Остальная часть этой страницы относится к обеим средам выполнения, кроме разделов, где названа среда выполнения v2.

345 345 

346Claude Code выбирает среду выполнения при каждом запуске и сохраняет её до выхода. В сессиях, где он [получает флаги функций](https://code.claude.com/docs/ru/env-vars.md#features-that-need-feature-flag-fetching), он использует среду выполнения v2 в Claude Code v2.1.232 или новее.346Claude Code выбирает среду выполнения при каждом запуске и сохраняет её до выхода. В сессиях, где он [получает флаги функций](https://code.claude.com/docs/ru/env-vars.md#features-that-need-feature-flag-fetching), он использует среду выполнения v2 в Claude Code v2.1.232 или новее.

347 347 

348В сессиях, где он не получает флаги функций, Claude Code по умолчанию использует среду выполнения v2 в Claude Code v2.1.274 или новее:348В сессиях, где он не получает флаги функций, Claude Code по умолчанию использует среду выполнения v2 в Claude Code v2.1.274 или новее:

349 349 

350* Сессии на Amazon Bedrock, Claude Platform on AWS, Agent Platform от Google Cloud или Microsoft Foundry, если платформа-хост, встраивающая Claude Code, не устанавливает [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/ru/env-vars)350* Сессии на Amazon Bedrock, Claude Platform on AWS, Agent Platform от Google Cloud или Microsoft Foundry, если только хост-платформа, встраивающая Claude Code, не задаёт [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/ru/env-vars)

351* Сессии с входом через [шлюз приложений Claude](https://code.claude.com/docs/ru/claude-apps-gateway)351* Сессии со входом через [шлюз приложений Claude](https://code.claude.com/docs/ru/claude-apps-gateway)

352* Сессии, в которых вы отключаете телеметрию или получение флагов функций, например с помощью `DISABLE_TELEMETRY`352* Сессии, в которых вы отключили телеметрию или получение флагов функций, например с помощью `DISABLE_TELEMETRY`

353 353 

354В v2 Claude Code также:354В v2 Claude Code также:

355 355 

356* Спрашивает HTTP-, stdio-серверы и серверы коннекторов claude.ai, поддерживают ли они более новую ревизию, и использует её с теми, которые поддерживают. Это относится и к коннекторам облачных сессий и сессий [Remote Control](https://code.claude.com/docs/ru/remote-control.md). Ко всем остальным серверам он подключается так же, как v1.356* Спрашивает HTTP-, stdio-серверы и серверы коннекторов claude.ai, поддерживают ли они более новую ревизию, и использует её с теми, которые поддерживают. Это включает коннекторы облачных сессий и сессий [Remote Control](https://code.claude.com/docs/ru/remote-control.md). Ко всем остальным серверам Claude Code подключается так же, как v1.

357* Получает уведомления `list_changed` от серверов на более новой ревизии через [поток, который держит открытым](#notification-streams-on-the-v2-runtime).357* Получает уведомления `list_changed` от серверов на более новой ревизии через [поток, который держит открытым](#notification-streams-on-the-v2-runtime).

358* Не регистрирует сервер [канала](#push-messages-with-channels), который подключается на более новой ревизии, потому что эта ревизия не может передавать сообщения канала.358* Не регистрирует сервер [канала](#push-messages-with-channels), подключающийся на более новой ревизии, поскольку эта ревизия не может передавать сообщения каналов.

359* Прерывает [вход через MCP OAuth](#authenticate-with-remote-mcp-servers), если ответ авторизации указывает неожиданного издателя.359* Прерывает [вход через MCP OAuth](#authenticate-with-remote-mcp-servers), если в ответе авторизации указан неожиданный издатель.

360* Отправляет [учётные данные MCP OAuth](#authenticate-with-remote-mcp-servers) только на эндпоинт токена, обслуживаемый по HTTPS или на `localhost`, `127.0.0.1` или `::1`. Вход не удаётся для сервера, эндпоинт токена которого — простой `http://` в любом другом месте, например на устройстве в вашей локальной сети. См. [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/ru/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).360* Отправляет учётные данные [MCP OAuth](#authenticate-with-remote-mcp-servers) только на эндпоинт токенов, обслуживаемый по HTTPS или по адресу `localhost`, `127.0.0.1` или `::1`. Вход завершается ошибкой для сервера, чей эндпоинт токенов работает по простому `http://` в любом другом месте, например на устройстве в вашей локальной сети. См. [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/ru/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).

361 361 

362Anthropic может оставить конкретный сервер на более ранней версии протокола или без этого потока с помощью флага функции, который получает Claude Code. Чтобы выбрать среду выполнения самостоятельно, задайте [`MCP_SDK_GENERATION`](https://code.claude.com/docs/ru/env-vars) значение `v1` или `v2`.362Anthropic может оставить конкретный сервер на более раннем протоколе или без этого потока с помощью флага функции, который получает Claude Code. Чтобы выбрать среду выполнения самостоятельно, задайте [`MCP_SDK_GENERATION`](https://code.claude.com/docs/ru/env-vars) равным `v1` или `v2`.

363 363 

364Чтобы решить, спрашивает ли Claude Code серверы о более новой ревизии, задайте [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/ru/env-vars) значение `auto` или `legacy`. Если эта переменная не задана, Claude Code может не спрашивать stdio-сервер в течение 7 дней, например после того как сервер завершился в ответ на вопрос. Чтобы обновлённый сервер был опрошен раньше, задайте `auto`.364Чтобы решить, спрашивает ли Claude Code серверы о более новой ревизии, задайте [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/ru/env-vars) равным `auto` или `legacy`. Если эта переменная не задана, Claude Code может не спрашивать stdio-сервер в течение 7 дней, например после того, как сервер завершил работу при запросе. Чтобы обновлённый сервер опросили раньше, задайте `auto`.

365 365 

366### Динамическое обновление инструментов366### Динамическое обновление инструментов

367 367 

368MCP-сервер может изменять предлагаемые им инструменты, промпты или ресурсы во время подключения и отправлять уведомление `list_changed`. Когда такое уведомление приходит:368MCP-сервер может изменить предлагаемые им инструменты, промпты или ресурсы во время подключения и отправить уведомление `list_changed`. Когда оно приходит:

369 369 

370* **В интерактивной сессии терминала** Claude Code получает обновлённый список с этого сервера, поэтому вам не нужно его переподключать.370* **В интерактивной сессии терминала** Claude Code получает обновлённый список с этого сервера, поэтому переподключать его не нужно.

371* **В [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с флагом `-p` и в [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md)** Claude Code при этих уведомлениях обновляет только список инструментов.371* **В [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с флагом `-p` и в [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md)** Claude Code при таких уведомлениях обновляет только список инструментов.

372 372 

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

374 374 

375#### Потоки уведомлений в среде выполнения v2375#### Потоки уведомлений в среде выполнения v2

376 376 

377В [среде выполнения v2](#mcp-client-runtimes) Claude Code получает уведомления `list_changed` от сервера на более новой ревизии протокола через поток, который держит открытым. Когда поток закрывается, Claude Code открывает его снова с двумя ограничениями:377В [среде выполнения v2](#mcp-client-runtimes) Claude Code получает уведомления `list_changed` от сервера на более новой ревизии протокола через поток, который держит открытым. Когда поток закрывается, Claude Code открывает его снова с двумя ограничениями:

378 378 

379* **Поток снова закрывается в течение 10 секунд**: Claude Code открывает его повторно до трёх раз, затем прекращает попытки для этого соединения.379* **Поток снова закрывается в течение 10 секунд**: Claude Code открывает его повторно до трёх раз, затем прекращает попытки для этого подключения.

380* **Поток остаётся открытым дольше 10 секунд, затем закрывается**, как это обычно происходит с потоками к бессерверным хостам: после пяти повторных открытий за час Claude Code ждёт около шести часов перед следующим.380* **Поток остаётся открытым дольше 10 секунд, затем закрывается**, как обычно происходит с потоками к serverless-хостам: после пяти повторных открытий за час Claude Code ждёт около шести часов перед следующим.

381 381 

382Пока поток не открыт повторно, у вас остаются последние полученные инструменты, промпты и ресурсы сервера. Чтобы получить его изменения раньше, переподключите сервер в `/mcp`.382Пока поток не открыт повторно, у вас остаются последние полученные инструменты, промпты и ресурсы сервера. Чтобы получить его изменения раньше, переподключите сервер из `/mcp`.

383 383 

384### Автоматическое переподключение384### Автоматическое переподключение

385 385 

386Claude Code переподключает удалённый сервер, который отключился во время сессии, и повторяет попытку первого подключения HTTP- или SSE-сервера после временной ошибки. Для stdio-сервера см. [Stdio-серверы, которые завершаются или не запускаются](#stdio-servers-that-exit-or-fail-to-start).386Claude Code переподключает удалённый сервер, отключившийся посреди сессии, и повторяет первую попытку подключения HTTP- или SSE-сервера после временной ошибки. Для stdio-сервера см. [Stdio-серверы, которые завершают работу или не запускаются](#stdio-servers-that-exit-or-fail-to-start).

387 387 

388#### Отключения удалённого сервера во время сессии388#### Отключение удалённого сервера посреди сессии

389 389 

390Сначала Claude Code пытается переподключить отключившийся удалённый сервер до пяти раз с экспоненциальной задержкой, начиная с задержки в одну секунду и удваивая её каждый раз:390Сначала Claude Code пытается переподключить отключившийся удалённый сервер до пяти раз с экспоненциальной задержкой, начиная с задержки в одну секунду и удваивая её каждый раз:

391 391 

392* **В интерактивной сессии**: `/mcp` показывает сервер как ожидающий, пока Claude Code переподключается. После пяти неудачных попыток Claude Code помечает сервер как сбойный или как требующий аутентификации, если серверу снова нужна авторизация. Когда он помечает сервер как сбойный, вы видите уведомление `MCP server "<name>" disconnected · open /mcp to reconnect`. Вы можете повторить попытку вручную в `/mcp`.392* **В интерактивной сессии**: `/mcp` показывает сервер как ожидающий, пока Claude Code переподключается. После пяти неудачных попыток Claude Code помечает сервер как сбойный или как требующий аутентификации, если сервер нужно авторизовать заново. Когда он помечает сервер как сбойный, вы видите уведомление `MCP server "<name>" disconnected · open /mcp to reconnect`. Вы можете повторить попытку вручную из `/mcp`.

393* **В запусках [`claude -p`](https://code.claude.com/docs/ru/headless) и сессиях [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md)**: Claude Code делает те же пять попыток, без панели `/mcp` для их отображения. Если все пять неудачны, запуск продолжается без инструментов сервера:393* **В запусках [`claude -p`](https://code.claude.com/docs/ru/headless) и сессиях [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md)**: Claude Code делает те же пять попыток, но без панели `/mcp`, где они отображались бы. Если все пять завершаются неудачей, запуск продолжается без инструментов сервера:

394 * **После временной ошибки, такой как ответ 5xx или таймаут**: Claude Code продолжает повторять попытки для HTTP- или SSE-сервера в фоне. Повторные попытки продолжаются примерно до получаса, и инструменты сервера снова становятся доступны, когда одна из них подключается. До тех пор сессия Agent SDK сообщает [статус](https://code.claude.com/docs/ru/agent-sdk/mcp.md#error-handling) `failed`, и ваш код может [переподключить сервер](https://code.claude.com/docs/ru/agent-sdk/mcp.md#error-handling). Чтобы переподключить его в `claude -p`, запустите его заново.394 * **После временной ошибки, например ответа 5xx или таймаута**: Claude Code продолжает повторять попытки подключения HTTP- или SSE-сервера в фоновом режиме. Повторные попытки продолжаются примерно до получаса, и инструменты сервера снова становятся доступны, когда одна из них завершается подключением. До тех пор сессия Agent SDK сообщает [статус](https://code.claude.com/docs/ru/agent-sdk/mcp.md#error-handling) `failed`, и ваш код может [переподключить сервер](https://code.claude.com/docs/ru/agent-sdk/mcp.md#error-handling). Чтобы переподключить его в `claude -p`, запустите выполнение заново.

395 * **Когда сервер [требует повторного входа](#authenticate-with-remote-mcp-servers)**: Claude Code прекращает повторные попытки, а сессия Agent SDK сообщает статус сервера `needs-auth`. Войдите с помощью [`claude mcp login <name>`](#authenticate-from-the-command-line) в своей оболочке. Затем запустите его заново или, в сессии Agent SDK, вместо этого [переподключите сервер](https://code.claude.com/docs/ru/agent-sdk/mcp.md#error-handling).395 * **Когда сервер [требует повторного входа](#authenticate-with-remote-mcp-servers)**: Claude Code прекращает повторные попытки, а сессия Agent SDK сообщает статус сервера `needs-auth`. Войдите с помощью [`claude mcp login <name>`](#authenticate-from-the-command-line) в оболочке. Затем запустите выполнение заново или, в сессии Agent SDK, вместо этого [переподключите сервер](https://code.claude.com/docs/ru/agent-sdk/mcp.md#error-handling).

396 396 

397#### Неудачные первые подключения397#### Неудачные первые подключения

398 398 

399Когда первое подключение HTTP- или SSE-сервера не удаётся из-за временной ошибки, такой как ответ 5xx, отказ в соединении или таймаут, Claude Code повторяет попытку до трёх раз. Если подключение по-прежнему не удаётся, Claude Code помечает сервер как сбойный.399Когда первое подключение HTTP- или SSE-сервера завершается временной ошибкой, например ответом 5xx, отказом в соединении или таймаутом, Claude Code повторяет попытку до трёх раз. Если подключиться так и не удаётся, Claude Code помечает сервер как сбойный.

400 400 

401Эти повторные попытки не применяются в следующих случаях:401Эти повторные попытки не применяются в следующих случаях:

402 402 

403* Первое подключение stdio-сервера. Чтобы попробовать снова, см. [Stdio-серверы, которые завершаются или не запускаются](#stdio-servers-that-exit-or-fail-to-start)403* Первое подключение stdio-сервера. Чтобы попробовать снова, см. [Stdio-серверы, которые завершают работу или не запускаются](#stdio-servers-that-exit-or-fail-to-start)

404* Первое подключение WebSocket-сервера. Чтобы попробовать снова в интерактивной сессии в терминале, выберите **Reconnect** в меню сервера в `/mcp`404* Первое подключение WebSocket-сервера. Чтобы попробовать снова в интерактивной сессии терминала, выберите **Reconnect** в меню сервера в `/mcp`

405* Ошибка аутентификации или «не найдено», потому что для её устранения требуется изменить конфигурацию. Когда [`headersHelper`](#use-dynamic-headers-for-custom-authentication) — единственный источник заголовка `Authorization` для сервера, Claude Code всё равно повторяет попытку при ошибке аутентификации, потому что перезапускает helper при каждой попытке и может получить свежие учётные данные405* Ошибка аутентификации или «не найдено», поскольку для её устранения требуется изменить конфигурацию. Когда [`headersHelper`](#use-dynamic-headers-for-custom-authentication) — единственный источник заголовка `Authorization` для сервера, Claude Code всё равно повторяет попытку после ошибки аутентификации, поскольку он заново запускает helper при каждой попытке и может получить свежие учётные данные

406 406 

407#### Stdio-серверы, которые завершаются или не запускаются407#### Stdio-серверы, которые завершают работу или не запускаются

408 408 

409Чтобы снова запустить stdio-сервер, смотрите столбец, соответствующий тому, что с ним произошло. Найдите свою строку по тому, как вы запускаете Claude Code: интерактивная сессия, запуск `claude -p` или сессия Agent SDK.409Чтобы снова запустить stdio-сервер, смотрите столбец, соответствующий тому, что с ним произошло. Найдите свою строку по тому, как вы запускаете Claude Code: интерактивная сессия, запуск `claude -p` или сессия Agent SDK.

410 410 

411| Как вы запускаете Claude Code | Процесс сервера завершается во время сессии | Первое подключение сервера не удаётся |411| Как вы запускаете Claude Code | Процесс сервера завершается посреди сессии | Первое подключение сервера завершается неудачей |

412| - | - | - |412| - | - | - |

413| Интерактивная сессия | Claude Code помечает сервер как сбойный. Чтобы снова запустить его, выберите **Reconnect** в меню сервера в `/mcp` | Claude Code помечает сервер как сбойный. Чтобы снова запустить его, выберите **Reconnect** в меню сервера в `/mcp` |413| Интерактивная сессия | Claude Code помечает сервер как сбойный. Чтобы запустить его снова, выберите **Reconnect** в меню сервера в `/mcp` | Claude Code помечает сервер как сбойный. Чтобы запустить его снова, выберите **Reconnect** в меню сервера в `/mcp` |

414| Запуск `claude -p` | Claude Code снова запускает сервер, когда Claude в следующий раз вызывает один из инструментов сервера, и вызов выполняется, как только сервер подключится | Запуск продолжается без инструментов сервера. Чтобы Claude Code снова попробовал подключиться, запустите его заново. Если сервер предоставляется плагином, новые запуски пропускают подключение в течение 15 минут после сбоя, поэтому сначала подождите это время или [повторите попытку раньше](https://code.claude.com/docs/ru/errors.md#skipping-connection-recent-failure-cached) |414| Запуск `claude -p` | Claude Code снова запускает сервер при следующем вызове Claude одного из инструментов сервера, и вызов выполняется, как только сервер подключится | Запуск продолжается без инструментов сервера. Чтобы Claude Code снова попробовал подключиться, запустите выполнение заново. Когда сервер предоставлен плагином, новые запуски пропускают подключение в течение 15 минут после сбоя, поэтому сначала подождите это время или [повторите попытку раньше](https://code.claude.com/docs/ru/errors.md#skipping-connection-recent-failure-cached) |

415| Сессия Agent SDK | Claude Code снова запускает сервер, когда Claude в следующий раз вызывает один из инструментов сервера, и вызов выполняется, как только сервер подключится | Сессия продолжается без инструментов сервера. Ваш код может [переподключить сервер](https://code.claude.com/docs/ru/agent-sdk/mcp.md#error-handling) |415| Сессия Agent SDK | Claude Code снова запускает сервер при следующем вызове Claude одного из инструментов сервера, и вызов выполняется, как только сервер подключится | Сессия продолжается без инструментов сервера. Ваш код может [переподключить сервер](https://code.claude.com/docs/ru/agent-sdk/mcp.md#error-handling) |

416 416 

417#### Неудачные запросы обнаружения417#### Неудачные запросы обнаружения

418 418 

419После подключения сервера Claude Code отправляет ему запросы обнаружения возможностей, такие как `tools/list`, `prompts/list` и `resources/list`. Claude Code повторяет эти запросы до трёх раз с короткой задержкой после временной сетевой или серверной ошибки. Он не повторяет попытки при ошибках аутентификации, ответах 4xx или таймаутах запросов.419После подключения сервера Claude Code отправляет ему запросы обнаружения возможностей, такие как `tools/list`, `prompts/list` и `resources/list`. После временной сетевой или серверной ошибки Claude Code повторяет эти запросы до трёх раз с короткой задержкой. Он не повторяет запросы после ошибок аутентификации, ответов 4xx или таймаутов запросов.

420 420 

421#### Самостоятельная повторная попытка для сбойных серверов421#### Самостоятельное повторное подключение сбойных серверов

422 422 

423Чтобы повторить попытку для всех серверов, которые дали сбой или требуют аутентификации, выполните `/mcp reconnect all` в промпте Claude Code в интерактивной сессии в терминале. Для этого требуется Claude Code v2.1.284 или новее. Более ранние версии выводят `MCP server "all" not found`.423Чтобы повторить подключение всех серверов со сбоем или требующих аутентификации, выполните `/mcp reconnect all` в промпте Claude Code в интерактивной сессии терминала. Для этого требуется Claude Code v2.1.284 или новее. Более ранние версии выводят `MCP server "all" not found`.

424 424 

425#### Как Claude узнаёт о сбое сервера425#### Как Claude узнаёт о сбое сервера

426 426 

427Сообщает ли Claude Code Claude о настроенном сервере, который не смог подключиться, зависит от [поиска инструментов](#scale-with-mcp-tool-search), который включён по умолчанию:427Сообщает ли Claude Code модели Claude о настроенном сервере, который не смог подключиться, зависит от [поиска инструментов](#scale-with-mcp-tool-search), который включён по умолчанию:

428 428 

429* С поиском инструментов Claude Code сообщает Claude, какой сервер дал сбой и какова ошибка подключения, поэтому Claude сообщает о сбое подключения в своём ответе. Claude Code включает ту же информацию в результаты `ToolSearch`, которые не нашли подходящего инструмента.429* С поиском инструментов Claude Code сообщает Claude, какой сервер дал сбой, и его ошибку подключения, поэтому Claude сообщает о сбое подключения в своём ответе. Claude Code включает ту же информацию в результаты `ToolSearch`, не нашедшие подходящего инструмента.

430* В любой [конфигурации без поиска инструментов](#configure-tool-search) Claude Code не сообщает Claude о неудачных подключениях серверов.430* В любой [конфигурации без поиска инструментов](#configure-tool-search) Claude Code не сообщает Claude о неудачных подключениях серверов.

431 431 

432### Отправка сообщений через каналы432### Отправка сообщений через каналы

433 433 

434MCP-сервер также может отправлять сообщения прямо в вашу сессию, чтобы Claude мог реагировать на внешние события, такие как результаты CI, оповещения мониторинга или сообщения чата. Чтобы включить это, ваш сервер объявляет возможность `claude/channel`, а вы включаете его флагом `--channels` при запуске. См. [Каналы](https://code.claude.com/docs/ru/channels.md), чтобы использовать официально поддерживаемый канал, или [Справочник по каналам](https://code.claude.com/docs/ru/channels-reference.md), чтобы создать собственный.434MCP-сервер также может отправлять сообщения прямо в вашу сессию, чтобы Claude мог реагировать на внешние события, такие как результаты CI, оповещения мониторинга или сообщения чата. Чтобы включить это, ваш сервер объявляет возможность `claude/channel`, а вы явно включаете его флагом `--channels` при запуске. См. [Каналы](https://code.claude.com/docs/ru/channels.md), чтобы использовать официально поддерживаемый канал, или [Справочник по каналам](https://code.claude.com/docs/ru/channels-reference.md), чтобы создать собственный.

435 435 

436В [среде выполнения v2](#mcp-client-runtimes) сервер канала, который согласует ревизию протокола MCP 2026-07-28, не может доставлять сообщения канала, поэтому Claude Code не регистрирует его как канал. Сервер канала, который не поддерживает эту ревизию, подключается по более раннему рукопожатию и регистрируется как прежде.436В [среде выполнения v2](#mcp-client-runtimes) сервер канала, согласовавший ревизию протокола MCP 2026-07-28, не может доставлять сообщения каналов, поэтому Claude Code не регистрирует его как канал. Сервер канала, не поддерживающий эту ревизию, подключается по более раннему рукопожатию и регистрируется как прежде.

437 437 

438Claude Code по умолчанию запрашивает эту ревизию у stdio-серверов. Чтобы оставить stdio-сервер канала на более раннем рукопожатии, установите [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/ru/env-vars) в `legacy`, что оставляет на нём все серверы.438По умолчанию Claude Code запрашивает эту ревизию у stdio-серверов. Чтобы оставить stdio-сервер канала на более раннем рукопожатии, задайте [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/ru/env-vars) равным `legacy`, что оставляет на нём все серверы.

439 439 

440> [!TIP]440> [!TIP]

441>441>

442> Советы:442> Советы:

443>443>

444> * Используйте флаг `-s` или `--scope`, чтобы указать, где хранится конфигурация:444> * Используйте флаг `-s` или `--scope`, чтобы указать, где хранится конфигурация:

445> * `local` (по умолчанию): доступно только вам в текущем проекте445> * `local` (по умолчанию): доступна только вам в текущем проекте

446> * `project`: доступно всем в проекте через файл `.mcp.json`446> * `project`: доступна всем участникам проекта через файл `.mcp.json`

447> * `user`: доступно вам во всех проектах447> * `user`: доступна вам во всех проектах

448> * Устанавливайте переменные окружения с помощью флагов `-e` или `--env` (например, `-e KEY=value`)448> * Задавайте переменные окружения флагами `-e` или `--env` (например, `-e KEY=value`)

449> * Флаги `--transport` и `--header` также принимают короткие формы `-t` и `-H`449> * Флаги `--transport` и `--header` также принимают короткие формы `-t` и `-H`

450> * Настройте таймаут запуска MCP-сервера с помощью переменной окружения `MCP_TIMEOUT` (например, `MCP_TIMEOUT=10000 claude` устанавливает таймаут в 10 секунд)450> * Настройте таймаут запуска MCP-сервера с помощью переменной окружения `MCP_TIMEOUT` (например, `MCP_TIMEOUT=10000 claude` задаёт таймаут 10 секунд)

451> * Задайте таймаут выполнения инструментов для отдельного сервера, добавив поле `timeout` в миллисекундах в запись `.mcp.json` этого сервера, например `"timeout": 600000` для десяти минут. Это переопределяет переменную окружения `MCP_TOOL_TIMEOUT` только для этого сервера451> * Задайте таймаут выполнения инструментов для отдельного сервера, добавив поле `timeout` в миллисекундах в запись этого сервера в `.mcp.json`, например `"timeout": 600000` для десяти минут. Это переопределяет переменную окружения `MCP_TOOL_TIMEOUT` только для этого сервера

452> * Claude Code показывает предупреждение, когда вывод инструмента MCP превышает 10 000 токенов, и по умолчанию ограничивает вывод 25 000 токенами. Чтобы изменить лимит токенов, установите переменную окружения `MAX_MCP_OUTPUT_TOKENS`, например `MAX_MCP_OUTPUT_TOKENS=50000`. Порог предупреждения фиксирован. Если сервер не повышает собственный лимит инструмента, успешные текстовые результаты длиннее 50 000 символов сохраняются в файл независимо от этой переменной. См. [Ограничения и предупреждения вывода MCP](#mcp-output-limits-and-warnings)452> * Claude Code показывает предупреждение, когда вывод инструмента MCP превышает 10 000 токенов, и по умолчанию ограничивает вывод 25 000 токенами. Чтобы изменить лимит токенов, задайте переменную окружения `MAX_MCP_OUTPUT_TOKENS`, например `MAX_MCP_OUTPUT_TOKENS=50000`. Порог предупреждения фиксирован. Если сервер не повышает собственный лимит инструмента, успешные текстовые результаты длиннее 50 000 символов сохраняются в файл независимо от этой переменной. См. [Лимиты вывода MCP и предупреждения](#mcp-output-limits-and-warnings)

453> * Используйте `/mcp` для аутентификации на удалённых серверах, требующих аутентификации OAuth 2.0453> * Используйте `/mcp` для аутентификации на удалённых серверах, требующих аутентификации OAuth 2.0

454 454 

455### Ограничения времени для вызовов MCP-инструментов455### Ограничения времени для вызовов инструментов MCP

456 456 

457Чтобы ограничить время выполнения вызова MCP-инструмента:457Чтобы ограничить время выполнения вызова инструмента MCP:

458 458 

459* **Для отдельного сервера**: добавьте поле `timeout` в миллисекундах в запись конфигурации этого сервера459* **Для отдельного сервера**: добавьте поле `timeout` в миллисекундах в запись конфигурации этого сервера

460* **Для всех серверов**: установите [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/ru/env-vars)460* **Для всех серверов**: задайте [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/ru/env-vars)

461 461 

462`timeout` отдельного сервера — это жёсткий лимит реального времени на каждый вызов инструмента, и уведомления о прогрессе от сервера его не продлевают. Значения меньше 1000 игнорируются, и используется `MCP_TOOL_TIMEOUT` или его значение по умолчанию около 28 часов, если эта переменная не установлена. Для HTTP-, SSE-сервера или сервера [коннектора claude.ai](https://code.claude.com/docs/ru/mcp.md#use-mcp-servers-from-claude-ai) также есть второй таймер на каждый запрос, который охватывает каждый запрос вплоть до первого байта ответа сервера. Claude Code устанавливает этот таймер в наибольшее из трёх значений: 60 секунд, таймаут инструментов, применяемый к серверу, и `MCP_TIMEOUT`. Значение по умолчанию 28 часов для неустановленного `MCP_TOOL_TIMEOUT` в этом сравнении не участвует, а значение меньше 60 секунд не сокращает таймер. У stdio- и WebSocket-серверов нет таймера на каждый запрос.462`timeout` для отдельного сервера — это жёсткое ограничение по реальному времени на каждый вызов инструмента, и уведомления о ходе выполнения от сервера не продлевают его. Значения ниже 1000 игнорируются, и используется `MCP_TOOL_TIMEOUT` или, если эта переменная не задана, её значение по умолчанию — около 28 часов. Для HTTP-, SSE-сервера или [коннектора claude.ai](https://code.claude.com/docs/ru/mcp.md#use-mcp-servers-from-claude-ai) существует также второй таймер на каждый запрос, который охватывает каждый запрос вплоть до первого байта ответа сервера. Claude Code устанавливает этот таймер равным наибольшему из трёх значений: 60 секунд, таймаут инструментов, применимый к серверу, и `MCP_TIMEOUT`. Значение по умолчанию в 28 часов для незаданной `MCP_TOOL_TIMEOUT` в этом сравнении не участвует, а значение меньше 60 секунд не сокращает таймер. У stdio- и WebSocket-серверов нет таймера на каждый запрос.

463 463 

464`timeout` отдельного сервера не менее 1000 также служит нижней границей для описанного ниже таймаута бездействия: Claude Code никогда не прерывает вызовы инструментов этого сервера из-за бездействия раньше, чем истечёт `timeout` этого сервера.464`timeout` для отдельного сервера, равный не менее 1000, также служит нижней границей для описанного ниже таймаута простоя: Claude Code никогда не прерывает вызовы инструментов этого сервера из-за простоя раньше, чем истечёт `timeout` для этого сервера.

465 465 

466Вызов инструмента MCP-сервера, который в течение окна бездействия не отправляет ни ответа, ни уведомления о прогрессе, прерывается с ошибкой, не дожидаясь лимита реального времени. Таймаут бездействия применяется ко всем типам серверов, кроме серверов IDE и встроенных в процесс серверов SDK. Окно бездействия по умолчанию составляет пять минут для HTTP-, SSE-, WebSocket-серверов и серверов [коннекторов claude.ai](#use-mcp-servers-from-claude-ai) и 30 минут для stdio-серверов.466Вызов инструмента MCP-сервера, который не присылает ни ответа, ни уведомления о ходе выполнения в течение окна простоя, прерывается с ошибкой вместо ожидания ограничения по реальному времени. Таймаут простоя применяется ко всем типам серверов, кроме серверов IDE и внутрипроцессных серверов SDK. Окно простоя по умолчанию составляет пять минут для HTTP-, SSE-, WebSocket-серверов и [коннекторов claude.ai](#use-mcp-servers-from-claude-ai) и 30 минут для stdio-серверов.

467 467 

468Установите переменную окружения [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/ru/env-vars) в миллисекундах, чтобы изменить окно бездействия, или установите её в `0`, чтобы отключить проверку.468Задайте переменную окружения [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/ru/env-vars) в миллисекундах, чтобы изменить окно простоя, или задайте её равной `0`, чтобы отключить проверку.

469 469 

470Эти таймауты ограничивают, как долго может выполняться вызов, но не всегда то, как долго он блокирует сессию: вызов в основном диалоге, который выполняется дольше двух минут, сначала переходит в фоновую задачу. См. [Автоматический перевод долгих вызовов инструментов в фон](#automatic-backgrounding-of-long-tool-calls).470Эти таймауты ограничивают, сколько может длиться вызов, но не всегда то, как долго он блокирует сессию: вызов в основном диалоге, который длится дольше двух минут, сначала переносится в фоновую задачу. См. [Автоматический перенос длительных вызовов инструментов в фон](#automatic-backgrounding-of-long-tool-calls).

471 471 

472### Автоматический перевод долгих вызовов инструментов в фон472### Автоматический перенос длительных вызовов инструментов в фон

473 473 

474Если подробный вид фонового вызова в [`/tasks`](https://code.claude.com/docs/ru/commands#all-commands) показывает `runs on the server; survives exiting this session`, см. [MCP-задачи, выполняемые на сервере](#mcp-tasks-that-run-on-the-server).474Если в подробном представлении фонового вызова в [`/tasks`](https://code.claude.com/docs/ru/commands#all-commands) указано `runs on the server; survives exiting this session`, см. [Задачи MCP, выполняемые на сервере](#mcp-tasks-that-run-on-the-server).

475 475 

476Вызов инструмента MCP в основном диалоге, который всё ещё выполняется через две минуты, переходит в фоновую задачу, а не блокирует сессию. Claude сразу получает ID задачи и продолжает работу, а результат приходит в виде уведомления задачи, когда вызов завершается.476Вызов инструмента MCP в основном диалоге, который всё ещё выполняется через две минуты, переносится в фоновую задачу, а не блокирует сессию. Claude сразу получает ID задачи и продолжает работу, а результат приходит в виде уведомления задачи, когда вызов завершается.

477 477 

478Задача отображается в [`/tasks`](https://code.claude.com/docs/ru/commands#all-commands), где вы также можете её остановить, и она не сохраняется после выхода из сессии. В записи задачи отображается последний прогресс, о котором сообщил сервер. Если вы остановите задачу, Claude Code отменит вызов и сообщит Claude, что результата не будет. Остановка не гарантирует, что остановится сервер: он мог уже выполнить часть работы или всё же завершить её.478Задача появляется в [`/tasks`](https://code.claude.com/docs/ru/commands#all-commands), где её также можно остановить, и не сохраняется после выхода из сессии. Запись задачи показывает последний ход выполнения, о котором сообщил сервер. Если вы остановите задачу, Claude Code отменит вызов и сообщит Claude, что результата не будет. Остановка не гарантирует, что сервер прекратит работу: он мог уже выполнить часть работы или всё ещё может её завершить.

479 479 

480Ограничения на каждый вызов продолжают действовать, пока вызов выполняется в фоне: лимит реального времени, заданный `timeout` отдельного сервера или [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/ru/env-vars), и таймаут бездействия, заданный [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/ru/env-vars).480Ограничения на вызов продолжают действовать, пока вызов выполняется в фоне: ограничение по реальному времени, заданное `timeout` для отдельного сервера или [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/ru/env-vars), и таймаут простоя, заданный [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/ru/env-vars).

481 481 

482Чтобы изменить или отключить автоматический перевод в фон:482Чтобы изменить или отключить автоматический перенос в фон:

483 483 

484* Установите переменную окружения [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/ru/env-vars) в миллисекундах, чтобы изменить порог, или в `0`, чтобы отключить автоматический перевод в фон. При `0` Claude также [ждёт MCP-задачи](#make-claude-wait-for-the-result-of-an-mcp-task) в интерактивной сессии484* Задайте переменную окружения [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/ru/env-vars) в миллисекундах, чтобы изменить порог, или задайте её равной `0`, чтобы отключить автоматический перенос в фон. При `0` Claude также [ждёт задачи MCP](#make-claude-wait-for-the-result-of-an-mcp-task) в интерактивной сессии

485* Задайте [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/ru/env-vars) равной `1`, чтобы отключить автоматический перевод в фон и [фоновые команды](https://code.claude.com/docs/ru/tools-reference.md#background-commands)485* Задайте [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/ru/env-vars) равной `1`, чтобы отключить автоматический перенос в фон и [фоновые команды](https://code.claude.com/docs/ru/tools-reference.md#background-commands)

486 486 

487Некоторые вызовы никогда не переводятся в фон:487Некоторые вызовы никогда не переносятся в фон:

488 488 

489* Вызовы из [субагентов](https://code.claude.com/docs/ru/sub-agents.md); Claude Code переводит в фон только вызовы основного диалога489* Вызовы из [субагентов](https://code.claude.com/docs/ru/sub-agents.md); Claude Code переносит в фон только вызовы основного диалога

490* Вызовы к серверам IDE490* Вызовы серверов IDE

491* Вызовы в [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md), если только `CLAUDE_AUTO_BACKGROUND_TASKS` не установлена в `1`, так как однократный запуск может завершиться до получения результата491* Вызовы в [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md), если `CLAUDE_AUTO_BACKGROUND_TASKS` не задана равной `1`, поскольку однократный запуск может завершиться до прихода результата

492 492 

493Вызов, ожидающий открытого [диалогового окна elicitation](#respond-to-mcp-elicitation-requests), не переводится в фон, пока окно открыто; сервер ждёт вашего ввода, а не работает медленно, поэтому Claude Code откладывает перевод до закрытия диалогового окна.493Вызов, ожидающий ответа в открытом [диалоговом окне elicitation](#respond-to-mcp-elicitation-requests), не переносится в фон, пока диалоговое окно открыто; сервер заблокирован в ожидании вашего ввода, а не работает медленно, поэтому Claude Code откладывает перенос до закрытия диалогового окна.

494 494 

495### MCP-задачи, выполняемые на сервере495### Задачи MCP, выполняемые на сервере

496 496 

497MCP-задача — это длительная работа, например экспорт отчёта или сборка, которую MCP-сервер выполняет сам с помощью [расширения MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview). Вызов инструмента Claude возвращается, как только сервер принимает работу, поэтому Claude продолжает работать, если только вы не [заставите Claude ждать](#make-claude-wait-for-the-result-of-an-mcp-task). Когда работа завершается, об этом сообщается в транскрипте, и Claude получает результат. Попросите Claude показать его.497Задача MCP — это длительная работа, например экспорт отчёта или сборка, которую MCP-сервер выполняет сам с помощью [расширения MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview). Вызов инструмента Claude возвращается, как только сервер принимает работу, поэтому Claude продолжает работать, если только вы не [заставите Claude ждать](#make-claude-wait-for-the-result-of-an-mcp-task). Когда работа завершается, об этом сообщается в транскрипте, и Claude получает результат. Попросите Claude его показать.

498 498 

499Тем временем в нижней панели отображается счётчик, например `1 MCP task`, а Claude Code отслеживает задачу, проверяя её статус у сервера. Задача на удалённом сервере продолжает выполняться после вашего выхода. Чтобы снова отслеживать её, [возобновите ту же сессию](#exit-clear-or-resume-while-an-mcp-task-runs).499Тем временем нижняя панель показывает счётчик, например `1 MCP task`, а Claude Code отслеживает задачу, проверяя её статус на сервере. Задача на удалённом сервере продолжает выполняться после вашего выхода. Чтобы снова отслеживать её, [возобновите ту же сессию](#exit-clear-or-resume-while-an-mcp-task-runs).

500 500 

501> [!NOTE]501> [!NOTE]

502>502>

503> MCP-задачи доступны в публичной бета-версии в Claude Code CLI и требуют Claude Code v2.1.304 или новее. В разделе [Что нужно, чтобы вызов стал MCP-задачей](#requirements-for-mcp-tasks) перечислены сессии и серверы, которые их получают.503> Задачи MCP доступны в публичной бета-версии в Claude Code CLI и требуют Claude Code v2.1.304 или новее. В разделе [Что нужно, чтобы вызов стал задачей MCP](#requirements-for-mcp-tasks) перечислены сессии и серверы, которые их получают.

504 504 

505#### Остановка MCP-задачи или получение её результата505#### Остановка задачи MCP или получение её результата

506 506 

507Чтобы остановить выполняющуюся задачу, выберите её в [`/tasks`](https://code.claude.com/docs/ru/commands#all-commands) и нажмите `x` или попросите об этом Claude. Claude Code прекращает отслеживать задачу и просит сервер отменить её, хотя сервер всё равно может её завершить. Сначала переподключите отключённый сервер из `/mcp`, иначе запрос на отмену не будет отправлен, а Claude Code забудет задачу и не сможет снова её отслеживать. Нажатие `Esc` не останавливает фоновую задачу.507Чтобы остановить выполняющуюся задачу, выберите её в [`/tasks`](https://code.claude.com/docs/ru/commands#all-commands) и нажмите `x` или попросите об этом Claude. Claude Code прекращает отслеживать задачу и просит сервер отменить её, хотя сервер может всё равно её завершить. Сначала переподключите отключённый сервер из `/mcp`, иначе запрос на отмену не будет отправлен, а Claude Code забудет задачу и не сможет снова её отслеживать. Нажатие `Esc` не останавливает фоновую задачу.

508 508 

509Когда задача завершается, в транскрипте появляется строка вроде этой:509Когда задача завершается, в транскрипте появляется строка вроде этой:

510 510 


512MCP task <server task id> (<server>/<tool>) completed.512MCP task <server task id> (<server>/<tool>) completed.

513```513```

514 514 

515Результат передаётся Claude, а не в транскрипт, поэтому попросите Claude его показать. Если Claude бездействует в момент прихода результата, Claude начинает работать с ним без запроса.515Результат передаётся Claude, а не в транскрипт, поэтому попросите Claude его показать. Если Claude простаивает в момент прихода результата, Claude начинает работать с ним без вашего запроса.

516 516 

517#### Ответ на вопрос от MCP-задачи517#### Ответ на вопрос от задачи MCP

518 518 

519Выполняющаяся задача может открыть [диалоговое окно elicitation](#respond-to-mcp-elicitation-requests), чтобы запросить у вас ввод. Пока открыт `/tasks`, диалоговое окно скрыто, поэтому закройте `/tasks`, чтобы ответить. Отказ или нажатие `Esc` — это ответ серверу, который затем решает, продолжается ли задача.519Выполняющаяся задача может открыть [диалоговое окно elicitation](#respond-to-mcp-elicitation-requests), чтобы запросить у вас ввод. Пока открыт `/tasks`, диалоговое окно скрыто, поэтому закройте `/tasks`, чтобы ответить. Отказ или нажатие `Esc` — это ответ серверу, который затем решает, продолжать ли задачу.

520 520 

521В [неинтерактивной](https://code.claude.com/docs/ru/headless.md) сессии Claude Code просит сервер отменить задачу, которая запрашивает ввод, не запуская ваши [хуки `Elicitation`](https://code.claude.com/docs/ru/hooks#elicitation) и не вызывая коллбэк `onElicitation` из Agent SDK.521В [неинтерактивной](https://code.claude.com/docs/ru/headless.md) сессии Claude Code просит сервер отменить задачу, запрашивающую ввод, не запуская ваши [хуки `Elicitation`](https://code.claude.com/docs/ru/hooks#elicitation) и не вызывая callback `onElicitation` из Agent SDK.

522 522 

523#### Выход, очистка или возобновление во время выполнения MCP-задачи523#### Выход, очистка или возобновление во время выполнения задачи MCP

524 524 

525Задача на удалённом сервере продолжает выполняться после вашего выхода. Процесс stdio-сервера останавливается при выходе из Claude Code, хотя его задачи показывают `runs on the server; survives exiting this session` в `/tasks`. Если в документации этого сервера не сказано, что работа переживает процесс, сначала дайте этим задачам завершиться или остановите их в `/tasks`.525Задача на удалённом сервере продолжает выполняться после вашего выхода. Процесс stdio-сервера останавливается при выходе из Claude Code, хотя его задачи отображаются в `/tasks` как `runs on the server; survives exiting this session`. Если в документации этого сервера не сказано, что работа переживает процесс, дайте таким задачам завершиться или сначала остановите их в `/tasks`.

526 526 

527| Ситуация | Что происходит с задачей | Что можно сделать |527| Ситуация | Что происходит с задачей | Что вы можете сделать |

528| - | - | - |528| - | - | - |

529| Вы выполняете `/clear` или `/branch` либо переходите через `/resume` в другую сессию | Пока Claude Code остаётся открытым, результат приходит в ваш текущий диалог | После выхода выполните `claude --resume` для сессии, в которой задача была запущена |529| Вы выполняете `/clear` или `/branch` либо `/resume` другой сессии | Пока Claude Code остаётся открытым, результат приходит в ваш текущий диалог | После выхода выполните `claude --resume` для сессии, в которой началась задача |

530| Вы выходите из Claude Code | Ни один вариант выхода не отменяет задачу удалённого сервера, даже если диалоговое окно выхода указывает её в разделе `The following will stop when you exit:` | Сначала остановите её в `/tasks` или позже возобновите ту же сессию |530| Вы выходите из Claude Code | Ни один вариант выхода не отменяет задачу удалённого сервера, даже когда диалоговое окно выхода перечисляет её под `The following will stop when you exit:` | Сначала остановите её в `/tasks` или возобновите ту же сессию позже |

531| Вы возвращаетесь в сессию задачи в интерактивном режиме: `claude --resume`, `claude --continue` или `/resume` | После подключения сервера Claude Code снова отслеживает задачу, и Claude получает результат, если она тем временем завершилась, а сервер всё ещё о ней знает | Не меняйте имя и настройки подключения сервера |531| Вы возвращаетесь в сессию задачи интерактивно: `claude --resume`, `claude --continue` или `/resume` | Как только сервер подключится, Claude Code снова отслеживает задачу, и Claude получает результат, если она завершилась за это время и сервер всё ещё о ней знает | Не меняйте имя сервера и настройки подключения |

532| Вы возобновляете сессию задачи с `--resume` или `--continue` в однократном запуске `claude -p "<prompt>"` | Этот запуск не отслеживает задачу | Возобновите её в интерактивном режиме или с `--input-format stream-json` |532| Вы возобновляете сессию задачи с `--resume` или `--continue` в однократном запуске `claude -p "<prompt>"` | Этот запуск не отслеживает задачу | Возобновите интерактивно или с `--input-format stream-json` |

533| Вы начинаете новую сессию или используете `--fork-session` | Новая сессия не отслеживает задачу | Возобновите сессию, в которой она была запущена |533| Вы начинаете новую сессию или используете `--fork-session` | Новая сессия не отслеживает задачу | Возобновите сессию, в которой она началась |

534 534 

535#### Что нужно, чтобы вызов стал MCP-задачей535#### Что нужно, чтобы вызов стал задачей MCP

536 536 

537Вызов инструмента становится MCP-задачей, только если выполняются все эти условия:537Вызов инструмента становится задачей MCP, только если выполняются все эти условия:

538 538 

539* Сервер поддерживает задачи539* Сервер поддерживает задачи

540* Сервер является HTTP-сервером, stdio-сервером или сервером коннектора claude.ai, подключённым по [ревизии протокола 2026-07-28](#mcp-client-runtimes). Установка [`MCP_SDK_GENERATION=v1` или `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/ru/env-vars) это исключает540* Сервер — это HTTP-, stdio-сервер или коннектор claude.ai, подключённый на [ревизии протокола 2026-07-28](#mcp-client-runtimes). Задание [`MCP_SDK_GENERATION=v1` или `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/ru/env-vars) это исключает

541* Сессия [получает флаги функций](https://code.claude.com/docs/ru/env-vars.md#features-that-need-feature-flag-fetching), то есть не у стороннего провайдера, такого как Amazon Bedrock, и не с отключённой телеметрией или получением флагов541* Сессия [получает флаги функций](https://code.claude.com/docs/ru/env-vars.md#features-that-need-feature-flag-fetching), то есть не работает через стороннего провайдера, например Amazon Bedrock, и в ней не отключены телеметрия или получение флагов

542* Anthropic включила MCP-задачи для вашего типа сессии. В v2.1.304 или новее это охватывает сессии CLI в терминале, сессии [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md) и запуски [GitHub Actions](https://code.claude.com/docs/ru/github-actions.md). В других интерфейсах, например [расширении VS Code](https://code.claude.com/docs/ru/vs-code.md) и [десктопном приложении](https://code.claude.com/docs/ru/desktop.md), MCP-задач нет542* Anthropic включила задачи MCP для вашего типа сессии. В v2.1.304 или новее это касается сессий терминального CLI, сессий [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md) и запусков [GitHub Actions](https://code.claude.com/docs/ru/github-actions.md). В других интерфейсах, например в [расширении VS Code](https://code.claude.com/docs/ru/vs-code.md) и [десктопном приложении](https://code.claude.com/docs/ru/desktop.md), задач MCP нет

543* Вызов исходит из основного диалога, а не из [субагента](https://code.claude.com/docs/ru/sub-agents.md)543* Вызов исходит из основного диалога, а не из [субагента](https://code.claude.com/docs/ru/sub-agents.md)

544* Либо сессия интерактивная, либо в сессии [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md) или в запуске `claude -p`, читающем `--input-format stream-json`:544* Либо сессия интерактивная, либо в сессии [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md) или запуске `claude -p` с чтением `--input-format stream-json`:

545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/ru/env-vars) равна `1`545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/ru/env-vars) равна `1`

546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` не равна `1`546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` не равна `1`

547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` не равна `0`547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` не равна `0`

548 548 

549Любой другой вызов — это обычный вызов инструмента, и в разделе [Автоматический перевод длительных вызовов инструментов в фон](#automatic-backgrounding-of-long-tool-calls) сказано, какие из них переносятся в фон.549Любой другой вызов — это обычный вызов инструмента, а какие из них переносятся в фон, описано в разделе [Автоматический перенос длительных вызовов инструментов в фон](#automatic-backgrounding-of-long-tool-calls).

550 550 

551Держите ввод сессии Agent SDK или stream-json открытым, потому что после закрытия ввода запуск [не ждёт MCP-задачи](https://code.claude.com/docs/ru/headless.md#mcp-work-when-a-non-interactive-run-ends). Однократный запуск `claude -p "<prompt>"` не получает MCP-задач.551Держите ввод сессии Agent SDK или stream-json открытым, поскольку после закрытия ввода запуск [не ждёт задач MCP](https://code.claude.com/docs/ru/headless.md#mcp-work-when-a-non-interactive-run-ends). Однократный запуск `claude -p "<prompt>"` не получает задач MCP.

552 552 

553#### Сообщения о статусе MCP-задачи553#### Сообщения о статусе задачи MCP

554 554 

555Эти сообщения в записи задачи в `/tasks` или в её завершающей строке в транскрипте означают, что Claude Code не может связаться с сервером или задачей. Пока одно из них отображается в `/tasks`, работа может по-прежнему выполняться: Claude Code её не трогает и продолжает проверять. Сообщения с `300s` и сообщения о конфигурации остаются в записи даже после восстановления связи.555Эти сообщения в записи задачи в `/tasks` или в её завершающей строке транскрипта означают, что Claude Code не может связаться с сервером или задачей. Пока такое сообщение отображается в `/tasks`, работа может всё ещё выполняться: Claude Code не трогает её и продолжает проверять. Сообщения с `300s` и сообщения о конфигурации остаются в записи даже после восстановления связи.

556 556 

557| Сообщение | Что происходит | Что можно сделать |557| Сообщение | Что происходит | Что вы можете сделать |

558| - | - | - |558| - | - | - |

559| `reconnecting…` | Сервер не отвечал с момента возобновления, или проверки статуса остаются без ответа | Если сообщение не исчезает, переподключитесь из `/mcp` |559| `reconnecting…` | Сервер не отвечал с момента возобновления, или проверки статуса остаются без ответа | Если сообщение не исчезает, переподключитесь из `/mcp` |

560| `needs a sign-in to <server>` | Сервер отклонил проверку статуса | Войдите из `/mcp` |560| `needs a sign-in to <server>` | Сервер отклонил проверку статуса | Войдите из `/mcp` |

561| `status requests come back with errors; retrying…` | Сервер или прокси перед ним отвечает на проверки статуса ошибками | Подождите, пока Claude Code повторяет попытки |561| `status requests come back with errors; retrying…` | Сервер или прокси перед ним отвечает на проверки статуса ошибками | Подождите, пока Claude Code повторяет попытки |

562| `server '<name>' did not reconnect within 300s` | В течение пяти минут ни одна проверка не получила ответа, например из-за разорванного соединения или отключённого сервера | Переподключитесь из `/mcp` |562| `server '<name>' did not reconnect within 300s` | Пять минут нет ответа на проверки, например когда подключение разорвано или сервер отключён | Переподключитесь из `/mcp` |

563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Через пять минут сервер всё ещё требует входа | Войдите из `/mcp` |563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Через пять минут сервер всё ещё требует входа | Войдите из `/mcp` |

564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Пять минут ответов с ошибками | Проверьте работоспособность или логи самого сервера |564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Пять минут ответов с ошибками | Проверьте работоспособность или логи самого сервера |

565| `server '<name>' is not configured in this session; the task may still be running on it` | В сессии нет сервера с таким именем, например он был удалён, переименован или не включён в `--mcp-config`, либо коннектор claude.ai ещё загружается | Восстановите сервер под тем же именем, затем снова возобновите сессию. Для загружающегося коннектора ничего делать не нужно: Claude Code начнёт отслеживать задачу, как только он появится |565| `server '<name>' is not configured in this session; the task may still be running on it` | В сессии нет сервера с таким именем, например он был удалён, переименован или не включён в `--mcp-config`, либо коннектор claude.ai ещё загружается | Восстановите сервер под тем же именем, затем снова возобновите сессию. Для загружающегося коннектора ничего делать не нужно: Claude Code начнёт отслеживать задачу, как только он появится |

566| Сообщение, начинающееся с `server '<name>' was reconfigured to a different transport since this task was created` | Сервер с таким именем существует, но его настройки подключения изменились с момента запуска задачи, например URL, команда, args, env, headers или timeout | Восстановите прежние настройки, затем снова возобновите сессию |566| Сообщение, начинающееся с `server '<name>' was reconfigured to a different transport since this task was created` | Сервер с таким именем существует, но его настройки подключения изменились с момента начала задачи, например URL, command, args, env, headers или timeout | Восстановите прежние настройки, затем снова возобновите сессию |

567| `the server rejected this task's id; asking again…` | Сервер сообщает, что не знает ID задачи. Claude Code продолжает спрашивать до пяти минут | Подождите: сообщение исчезнет, если сервер снова распознает ID, иначе появится строка `outcome unknown.` |567| `the server rejected this task's id; asking again…` | Сервер сообщает, что не знает ID задачи. Claude Code продолжает спрашивать до пяти минут | Подождите: сообщение исчезнет, если сервер снова распознает ID, либо последует строка `outcome unknown.` |

568| Строка в транскрипте, заканчивающаяся на `outcome unknown.`, в одной из форм — `expired on the server: outcome unknown.` | Сервер отклонил ID или отказал с другой постоянной ошибкой, и Claude Code прекратил отслеживать задачу | Повторный вызов может повторить работу. Прежде чем снова вызывать инструмент, выясните у сервера, что было сделано, например попросив Claude использовать другие инструменты сервера |568| Строка транскрипта, заканчивающаяся на `outcome unknown.`, в одной из форм `expired on the server: outcome unknown.` | Сервер отклонил ID или отказал с другой постоянной ошибкой, и Claude Code прекратил отслеживать задачу | Повторный вызов может повторить работу. Прежде чем снова вызывать инструмент, выясните у сервера, что было сделано, например попросив Claude воспользоваться другими инструментами сервера |

569 569 

570#### Ограничения времени для MCP-задач570#### Ограничения времени для задач MCP

571 571 

572По умолчанию для задачи в фоне Claude Code не устанавливает ограничения времени. [Ограничения времени для вызовов инструментов](#time-limits-on-mcp-tool-calls), включая ограничение по реальному времени и таймаут простоя, действуют до тех пор, пока сервер не ответит на вызов задачей. Если вы [заставите Claude ждать](#make-claude-wait-for-the-result-of-an-mcp-task), они действуют в течение всей задачи. Проверки статуса, получившие ответ, считаются активностью для таймаута простоя.572По умолчанию у задачи в фоне нет ограничения времени со стороны Claude Code. [Ограничения времени для вызовов инструментов](#time-limits-on-mcp-tool-calls), включая ограничение по реальному времени и таймаут простоя, действуют, пока сервер не ответит на вызов задачей. Если вы [заставите Claude ждать](#make-claude-wait-for-the-result-of-an-mcp-task), они действуют в течение всей задачи. Проверки статуса, получившие ответ, считаются активностью для таймаута простоя.

573 573 

574#### Как заставить Claude ждать результата MCP-задачи574#### Как заставить Claude ждать результата задачи MCP

575 575 

576Чтобы Claude ждал результата задачи в интерактивной сессии, установите одну из двух переменных окружения, например в блоке `env` файла [`settings.json`](https://code.claude.com/docs/ru/settings):576Чтобы Claude ждал результата задачи в интерактивной сессии, задайте одну из двух переменных окружения, например в блоке `env` файла [`settings.json`](https://code.claude.com/docs/ru/settings):

577 577 

578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/ru/env-vars) со значением `0`**: Claude ждёт завершения каждого вызова MCP-инструмента578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/ru/env-vars), равная `0`**: Claude ждёт завершения каждого вызова инструмента MCP

579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/ru/env-vars) со значением `1`**: Claude ждёт результата задачи. Пока включён [автоматический перевод в фон](#automatic-backgrounding-of-long-tool-calls), он по умолчанию переносит вызов через две минуты, поэтому короткие задачи завершаются на месте, а длинные вас не блокируют. Перенесённый вызов — это обычный фоновый вызов, а не MCP-задача. Он не переживает выход из сессии579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/ru/env-vars), равная `1`**: Claude ждёт результата задачи. Пока включён [автоматический перенос в фон](#automatic-backgrounding-of-long-tool-calls), по умолчанию он переносит вызов через две минуты, поэтому короткие задачи завершаются на месте, а длинные вас не блокируют. Перенесённый вызов — это обычный фоновый вызов, а не задача MCP. Он не сохраняется после выхода из сессии

580 580 

581Пока Claude ждёт, нажатие `Esc` или достижение [ограничения по реальному времени или таймаута простоя](#time-limits-on-mcp-tasks) завершает вызов, и Claude Code просит сервер отменить задачу.581Пока Claude ждёт, нажатие `Esc` или достижение [ограничения по реальному времени или таймаута простоя](#time-limits-on-mcp-tasks) завершает вызов, и Claude Code просит сервер отменить задачу.

582 582 

583Если вы установите `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` в `1` или запустите [режим bare](https://code.claude.com/docs/ru/headless.md#start-faster-with-bare-mode), само по себе это не заставит Claude ждать MCP-задачи. В этом примере `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` установлена в `0`, поэтому Claude ждёт каждый вызов MCP-инструмента:583Если вы задали `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` равной `1` или запустились в [режиме bare](https://code.claude.com/docs/ru/headless.md#start-faster-with-bare-mode), само по себе это не заставляет Claude ждать задач MCP. В этом примере `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` задана равной `0`, поэтому Claude ждёт каждый вызов инструмента MCP:

584 584 

585```json settings.json theme={null}585```json settings.json theme={null}

586{586{


590}590}

591```591```

592 592 

593### MCP-задачи для авторов серверов593### Задачи MCP для авторов серверов

594 594 

595Если вы создаёте MCP-сервер, вы можете ответить на длительный `tools/call` задачей. [Расширение MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview) определяет сообщения, которые вы отправляете. При подключении по [ревизии протокола 2026-07-28](#mcp-client-runtimes) каждый запрос несёт клиентские возможности Claude Code в `params._meta["io.modelcontextprotocol/clientCapabilities"]`, с `"io.modelcontextprotocol/tasks": {}` в `extensions`. Запрос `tools/call`, который [не может стать задачей](#requirements-for-mcp-tasks), не содержит этого расширения.595Если вы создаёте MCP-сервер, вы можете отвечать на длительный `tools/call` задачей. [Расширение MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview) определяет сообщения, которые вы отправляете. При подключении на [ревизии протокола 2026-07-28](#mcp-client-runtimes) каждый запрос несёт клиентские возможности Claude Code в `params._meta["io.modelcontextprotocol/clientCapabilities"]`, с `"io.modelcontextprotocol/tasks": {}` в `extensions`. Запрос `tools/call`, который [не может стать задачей](#requirements-for-mcp-tasks), не содержит этого расширения.

596 596 

597#### Ответ на вызов задачей597#### Ответ на вызов задачей

598 598 


613 613 

614| Поле | Как его обрабатывает Claude Code |614| Поле | Как его обрабатывает Claude Code |

615| - | - |615| - | - |

616| `resultType` | Установите его в `"task"`, чтобы пометить ответ как задачу. Без него Claude Code воспринимает ответ как обычный результат |616| `resultType` | Задайте `"task"`, чтобы пометить ответ как задачу. Без него Claude Code считает ответ обычным результатом |

617| `taskId` | Обязательное. Не более 128 печатных символов ASCII без пробелов, иначе Claude получит ошибку инструмента, начинающуюся с `MCP server "<name>" returned a malformed task handle for tool "<tool>"`. Обеспечьте, чтобы на запросы по этому ID можно было отвечать при разных подключениях, потому что после возобновления Claude Code спрашивает о нём через новое подключение |617| `taskId` | Обязательно. Не более 128 печатаемых символов ASCII без пробелов, иначе Claude получает ошибку инструмента, начинающуюся с `MCP server "<name>" returned a malformed task handle for tool "<tool>"`. Обеспечьте, чтобы на запросы по ID можно было ответить в разных подключениях, поскольку после возобновления Claude Code спрашивает о нём через новое подключение |

618| `status` | Обязательное. Одно из значений `working`, `input_required`, `completed`, `failed` или `cancelled`. Другое значение приводит к ошибке `Unsupported result type` |618| `status` | Обязательно. Одно из значений `working`, `input_required`, `completed`, `failed` или `cancelled`. Другое значение приводит к ошибке `Unsupported result type` |

619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Обязательны согласно расширению tasks, и `ttlMs` может быть `null`. Claude Code не отбрасывает задачу из-за истечения её `ttlMs` |619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Требуются расширением tasks, причём `ttlMs` может быть `null`. Claude Code не отбрасывает задачу из-за истечения её `ttlMs` |

620| `pollIntervalMs` | Необязательное. Миллисекунды между запросами `tasks/get`, ограниченные диапазоном от 250 до 30000. Claude Code использует 2000, когда поле отсутствует или равно `null`, и заново считывает значение из каждого ответа `tasks/get` |620| `pollIntervalMs` | Необязательно. Миллисекунды между запросами `tasks/get`, ограниченные диапазоном от 250 до 30000. Claude Code использует 2000, если поле отсутствует или равно `null`, и заново считывает значение из каждого ответа на `tasks/get` |

621| `statusMessage` | Необязательное. `/tasks` показывает значение из вашего последнего ответа `tasks/get`, а не из этого первого, и ответ без этого поля очищает его. Его место может занять [сообщение о статусе от Claude Code](#status-messages-on-an-mcp-task) |621| `statusMessage` | Необязательно. `/tasks` показывает значение из вашего последнего ответа на `tasks/get`, а не из этого первого, а ответ без этого поля очищает его. Его место может занять [сообщение о статусе от Claude Code](#status-messages-on-an-mcp-task) |

622 622 

623Claude Code принимает ответ-задачу без `createdAt`, `lastUpdatedAt` или `ttlMs` либо с `pollIntervalMs`, равным `null`. До v2.1.317 вызов вместо этого завершался ошибкой `Unsupported result type`. Чтобы работать и с этими версиями, отправляйте три поля, которые требует расширение tasks, а `pollIntervalMs` отправляйте числом или не отправляйте вовсе.623Claude Code принимает ответ-задачу без `createdAt`, `lastUpdatedAt` или `ttlMs` либо с `pollIntervalMs`, равным `null`. До v2.1.317 вызов в этом случае завершался ошибкой `Unsupported result type`. Чтобы работать и с этими версиями, отправляйте три поля, которые требует расширение tasks, а `pollIntervalMs` отправляйте числом или не отправляйте вовсе.

624 624 

625На HTTP-сервере или сервере коннектора claude.ai ответ задачей должен начаться в пределах [таймера для отдельного запроса](#time-limits-on-mcp-tool-calls), поэтому сначала примите работу и ответьте, а затем выполняйте её.625На HTTP-сервере или коннекторе claude.ai ответ-задача должен начаться в пределах [таймера на каждый запрос](#time-limits-on-mcp-tool-calls), поэтому сначала примите работу и ответьте, а затем выполняйте её.

626 626 

627#### Сообщение о статусе, результатах и вопросах627#### Сообщение статуса, результатов и вопросов

628 628 

629Сразу после ответа задачей Claude Code отправляет `tasks/get` с `{ "taskId": ... }`, затем повторяет его раз в интервал опроса. Расширение tasks требует, чтобы ваш ответ содержал `"resultType": "complete"` вместе с `taskId`, `status`, `createdAt`, `lastUpdatedAt` и `ttlMs`. `ttlMs` может быть `null`, а `statusMessage` и `pollIntervalMs` необязательны. В этом примере сообщается о завершении сборки:629Сразу после ответа-задачи Claude Code отправляет `tasks/get` с `{ "taskId": ... }`, затем повторяет его раз в интервал опроса. Расширение tasks требует, чтобы ваш ответ содержал `"resultType": "complete"` вместе с `taskId`, `status`, `createdAt`, `lastUpdatedAt` и `ttlMs`. `ttlMs` может быть `null`, а `statusMessage` и `pollIntervalMs` необязательны. В этом примере сообщается о завершении сборки:

630 630 

631```json theme={null}631```json theme={null}

632{632{


645| Статус, метод или ответ | Как его обрабатывает Claude Code |645| Статус, метод или ответ | Как его обрабатывает Claude Code |

646| - | - |646| - | - |

647| `working` | Продолжает опрос |647| `working` | Продолжает опрос |

648| `completed` | Передаёт Claude обычный результат `tools/call` в объекте `result` верхнего уровня. `isError: true` в нём сообщается как сбой |648| `completed` | Передаёт Claude обычный результат `tools/call` из объекта `result` верхнего уровня. `isError: true` в нём считается сбоем |

649| `failed` | Сообщает Claude `message` объекта `error` верхнего уровня `{ code, message, data }`, который расширение tasks требует для сбойной задачи. Без этого `message` Claude получает вместо него `statusMessage`, а при его отсутствии — `Task failed` |649| `failed` | Сообщает Claude `message` объекта `error` верхнего уровня `{ code, message, data }`, который расширение tasks требует для задачи со сбоем. Без этого `message` Claude вместо этого получает `statusMessage`, а при его отсутствии — `Task failed` |

650| `cancelled` | Сообщает Claude `statusMessage`, а при его отсутствии — `Task was cancelled by the server` |650| `cancelled` | Сообщает Claude `statusMessage`, а при его отсутствии — `Task was cancelled by the server` |

651| `input_required` | Читает `inputRequests` — объект, сопоставляющий выбранный вами ключ с `{ method, params }`. Claude Code отвечает на каждый ключ один раз через `tasks/update` с `{ taskId, inputResponses }`, где `inputResponses` сопоставляет тот же ключ с результатом этого запроса. Ключи сверх 16 на задачу игнорируются |651| `input_required` | Считывает `inputRequests` — объект, сопоставляющий выбранный вами ключ с `{ method, params }`. Claude Code отвечает на каждый ключ один раз через `tasks/update` с `{ taskId, inputResponses }`, где `inputResponses` сопоставляет тот же ключ с результатом этого запроса. Ключи сверх 16 на задачу игнорируются |

652| Методы в `inputRequests` | `elicitation/create` обслуживается только в интерактивных сессиях в терминале, а `roots/list` — везде. Когда Claude Code не может обслужить запрос, он просит сервер отменить задачу |652| Методы в `inputRequests` | `elicitation/create` обслуживается только в интерактивных сессиях терминала, а `roots/list` — везде. Когда Claude Code не может обслужить запрос, он просит сервер отменить задачу |

653| Другое значение `status` | Claude Code просит сервер отменить задачу и сообщает Claude о ней как о сбойной |653| Другое значение `status` | Claude Code просит сервер отменить задачу и сообщает о ней Claude как о завершившейся сбоем |

654| Ошибка JSON-RPC `-32602` | Воспринимается как неизвестный ID задачи. Для задачи в фоне Claude Code продолжает спрашивать до пяти минут, затем сообщает Claude, что результат неизвестен |654| Ошибка JSON-RPC `-32602` | Считается неизвестным ID задачи. Для задачи в фоне Claude Code продолжает спрашивать до пяти минут, затем сообщает Claude, что результат неизвестен |

655| `tasks/cancel` | Отправляется, например, когда Claude или пользователь останавливает задачу, пока сервер подключён. При выходе не отправляется |655| `tasks/cancel` | Отправляется, например, когда Claude или пользователь останавливает задачу, пока сервер подключён. При выходе не отправляется |

656| `tasks/result`, `tasks/list`, `notifications/tasks` | Не используются, поэтому передавайте итог в ответах на `tasks/get` |656| `tasks/result`, `tasks/list`, `notifications/tasks` | Не используются, поэтому передавайте итог в своих ответах на `tasks/get` |

657 657 

658### MCP-серверы, предоставляемые плагинами658### MCP-серверы, предоставляемые плагинами

659 659 


661 661 

662**Как работают MCP-серверы плагинов**:662**Как работают MCP-серверы плагинов**:

663 663 

664* Плагины определяют MCP-серверы в `.mcp.json` в корне плагина или встроенно в `plugin.json`664* Плагины определяют MCP-серверы в файле `.mcp.json` в корне плагина или непосредственно в `plugin.json`

665* Когда вы включаете плагин, Claude Code автоматически запускает его MCP-серверы665* Когда вы включаете плагин, Claude Code автоматически запускает его MCP-серверы

666* Claude Code предлагает инструменты MCP плагинов наряду с вручную настроенными инструментами MCP666* Claude Code предлагает MCP-инструменты плагинов наряду с MCP-инструментами, настроенными вручную

667* Вы добавляете и удаляете серверы плагинов, устанавливая или удаляя плагин, а не с помощью команд `/mcp`. Вы по-прежнему можете [выключить сервер установленного плагина](#disable-a-server-without-removing-it) в `/mcp`, после чего Claude Code перестанет к нему подключаться без удаления плагина667* Вы добавляете и удаляете серверы плагинов путём установки или удаления плагина, а не командами `/mcp`. При этом вы по-прежнему можете [отключить сервер установленного плагина](#disable-a-server-without-removing-it) в `/mcp`, после чего Claude Code перестанет к нему подключаться, но плагин не будет удалён

668 668 

669**Пример конфигурации MCP плагина**:669**Пример конфигурации MCP плагина**:

670 670 

671В `.mcp.json` в корне плагина:671В файле `.mcp.json` в корне плагина:

672 672 

673```json theme={null}673```json theme={null}

674{674{


684}684}

685```685```

686 686 

687Или встроенно в `plugin.json`:687Или непосредственно в `plugin.json`:

688 688 

689```json theme={null}689```json theme={null}

690{690{


701**Возможности MCP плагинов**:701**Возможности MCP плагинов**:

702 702 

703* **Автоматический жизненный цикл**: серверы подключаются и отключаются в следующие моменты:703* **Автоматический жизненный цикл**: серверы подключаются и отключаются в следующие моменты:

704 * При запуске сессии Claude Code автоматически подключает серверы включённых плагинов. В `/mcp` удалённый (HTTP или SSE) сервер плагина, который вы использовали раньше, может вместо этого показывать [статус `cached`](#server-status-detail); Claude Code подключает его, когда Claude впервые вызывает один из его инструментов. Если подключение stdio-сервера плагина не удалось менее 15 минут назад, Claude Code [пропускает подключение](https://code.claude.com/docs/ru/errors.md#skipping-connection-recent-failure-cached)704 * При запуске сессии Claude Code автоматически подключает серверы включённых плагинов. В `/mcp` удалённый (HTTP или SSE) сервер плагина, который вы использовали ранее, может вместо этого отображаться со [статусом `cached`](#server-status-detail); Claude Code подключает его, когда Claude впервые вызывает один из его инструментов. Если подключение к stdio-серверу плагина завершилось ошибкой менее 15 минут назад, Claude Code [пропускает подключение](https://code.claude.com/docs/ru/errors.md#skipping-connection-recent-failure-cached)

705 * Если вы включаете или отключаете плагин во время сессии, Claude Code подключает или отключает его MCP-серверы, когда изменение применяется. Раздел [Применение изменений плагинов без перезапуска](https://code.claude.com/docs/ru/plugins/cli-reference.md#reload-plugins) описывает, когда это происходит. В сессии без интерактивного терминала `/reload-plugins` не подключает и не отключает MCP-серверы плагинов; эти изменения вступают в силу в следующей сессии705 * Если вы включаете или отключаете плагин во время сессии, Claude Code подключает или отключает его MCP-серверы в момент применения изменения. Когда именно это происходит, описано в разделе [Применение изменений плагинов без перезапуска](https://code.claude.com/docs/ru/plugins/cli-reference.md#reload-plugins). В сессии без интерактивного терминала `/reload-plugins` не подключает и не отключает MCP-серверы плагинов; такие изменения вступают в силу в следующей сессии

706 * При перезагрузке Claude Code сохраняет активные соединения серверов плагинов, конфигурация которых не изменилась, и делает то же самое, когда вы [заменяете список MCP-серверов сессии](https://code.claude.com/docs/ru/agent-sdk/typescript.md#mcpsetserversresult) из Agent SDK, не указывая их706 * При перезагрузке Claude Code сохраняет активные подключения серверов плагинов, конфигурация которых не изменилась, и поступает так же, когда вы [заменяете список MCP-серверов сессии](https://code.claude.com/docs/ru/agent-sdk/typescript.md#mcpsetserversresult) из Agent SDK, не указывая их

707 * Когда вы [перемещаете сессию с помощью `/cd`](https://code.claude.com/docs/ru/permissions#move-the-session-to-another-directory) в v2.1.246 или новее, Claude Code подключает серверы плагинов, которые включены настройками нового каталога, и отключает серверы плагинов, которые больше не включены, поэтому вам не нужно запускать `/reload-plugins` после перемещения707 * Когда вы [перемещаете сессию с помощью `/cd`](https://code.claude.com/docs/ru/permissions#move-the-session-to-another-directory) в версии v2.1.246 или новее, Claude Code подключает серверы плагинов, которые включены настройками нового каталога, и отключает серверы плагинов, которые больше не включены, поэтому после перемещения не нужно запускать `/reload-plugins`

708 * В [облачных сессиях](https://code.claude.com/docs/ru/claude-code-on-the-web.md) вызов MCP к серверу плагина, который ещё не подключён, например сразу после пробуждения неактивной сессии, запускает сервер по требованию и ждёт его подключения708 * В [облачных сессиях](https://code.claude.com/docs/ru/claude-code-on-the-web.md) MCP-вызов к серверу плагина, который ещё не подключён, например сразу после пробуждения неактивной сессии, запускает сервер по требованию и ожидает его подключения

709* **Заполнители путей**: `${CLAUDE_PLUGIN_ROOT}` разрешается в каталог установки плагина, `${CLAUDE_PLUGIN_DATA}` — в каталог его [постоянного состояния](https://code.claude.com/docs/ru/plugins/components.md#path-variables-and-persistent-data), а `${CLAUDE_PROJECT_DIR}` — в стабильный корень проекта. Подстановка применяется к:709* **Заполнители путей**: `${CLAUDE_PLUGIN_ROOT}` разрешается в каталог установки плагина, `${CLAUDE_PLUGIN_DATA}` — в каталог его [постоянного состояния](https://code.claude.com/docs/ru/plugins/components.md#path-variables-and-persistent-data), а `${CLAUDE_PROJECT_DIR}` — в стабильный корень проекта. Подстановка применяется к:

710 * серверам `stdio`: `command`, `args`, `env`710 * серверам `stdio`: `command`, `args`, `env`

711 * серверам `http`, `sse` и `ws`: `url`, `headers` и `headersHelper`711 * серверам `http`, `sse` и `ws`: `url`, `headers` и `headersHelper`

712* **Доступ к пользовательскому окружению**: доступ к тем же переменным окружения, что и у вручную настроенных серверов712* **Доступ к пользовательскому окружению**: доступ к тем же переменным окружения, что и у серверов, настроенных вручную

713* **Несколько типов транспорта**: поддержка транспортов stdio, SSE, HTTP и WebSocket, хотя поддержка транспортов может различаться в зависимости от сервера713* **Несколько типов транспорта**: поддержка транспортов stdio, SSE, HTTP и WebSocket, хотя поддержка транспорта может различаться в зависимости от сервера

714 714 

715Серверы плагинов отображаются в `/mcp` с индикаторами, показывающими, что они получены из плагинов.715Серверы плагинов отображаются в `/mcp` с индикаторами, показывающими, что они предоставлены плагинами.

716 716 

717`claude mcp get` скрывает значения, настроенные для stdio- или WebSocket-сервера плагина, потому что они могут содержать учётные данные:717`claude mcp get` скрывает значения, настроенные для stdio- или WebSocket-сервера плагина, поскольку они могут содержать учётные данные:

718 718 

719* **stdio-сервер**: команда выводит `Command: stdio`, пустую строку `Args:` и каждую переменную окружения в виде `NAME=[REDACTED]`719* **stdio-сервер**: выводится `Command: stdio`, пустая строка `Args:` и каждая переменная окружения в виде `NAME=[REDACTED]`

720* **WebSocket-сервер**: команда выводит `URL: ws` и каждый заголовок в виде `<name>: [REDACTED]`, а `claude mcp list` показывает `ws` вместо URL720* **WebSocket-сервер**: выводится `URL: ws` и каждый заголовок в виде `<name>: [REDACTED]`, а `claude mcp list` показывает `ws` вместо URL

721 721 

722Чтобы увидеть, что настроил плагин, [найдите плагин на диске](https://code.claude.com/docs/ru/plugins/loading.md#find-plugins-on-disk) и прочитайте его `.mcp.json` или `plugin.json`.722Чтобы увидеть, что настроил плагин, [найдите плагин на диске](https://code.claude.com/docs/ru/plugins/loading.md#find-plugins-on-disk) и прочитайте его `.mcp.json` или `plugin.json`.

723 723 

724**Имена инструментов MCP плагинов**:724**Имена MCP-инструментов плагинов**:

725 725 

726Инструменты MCP-сервера, входящего в состав плагина, содержат в своём вызываемом имени и имя плагина, и ключ сервера. Полная форма — `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, где любой символ вне `A-Z`, `a-z`, `0-9`, `_` и `-` заменяется на `_`. Для сервера `database-tools` из плагина с именем `my-plugin` инструмент `query` вызывается как:726Вызываемые имена инструментов из MCP-сервера, входящего в состав плагина, включают как имя плагина, так и ключ сервера. Полная форма — `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, где любой символ, кроме `A-Z`, `a-z`, `0-9`, `_` и `-`, заменяется на `_`. Для сервера `database-tools`, входящего в плагин с именем `my-plugin`, инструмент `query` вызывается как:

727 727 

728```728```

729mcp__plugin_my-plugin_database-tools__query729mcp__plugin_my-plugin_database-tools__query

730```730```

731 731 

732Используйте это полное имя при указании инструмента в [правилах разрешений](https://code.claude.com/docs/ru/permissions.md), списке `allowed-tools` скилла, [поле `tools` субагента](https://code.claude.com/docs/ru/sub-agents#available-tools) или [matcher хука](https://code.claude.com/docs/ru/hooks.md#match-mcp-tools). Matcher хука, написанный для голого ключа сервера, например `mcp__database-tools__.*`, никогда не срабатывает для сервера, входящего в состав плагина.732Используйте это полное имя при указании инструмента в [правилах разрешений](https://code.claude.com/docs/ru/permissions.md), в списке `allowed-tools` скилла, в [поле `tools` субагента](https://code.claude.com/docs/ru/sub-agents#available-tools) или в [matcher хука](https://code.claude.com/docs/ru/hooks.md#match-mcp-tools). Matcher хука, написанный для голого ключа сервера, например `mcp__database-tools__.*`, никогда не срабатывает для сервера, входящего в состав плагина.

733 733 

734Сам сервер регистрируется под именем с областью действия `plugin:<plugin-name>:<server-name>`, например `plugin:my-plugin:database-tools`. Используйте это имя там, где ожидается имя настроенного сервера, например в [поле `server` хука `mcp_tool`](https://code.claude.com/docs/ru/hooks#mcp-tool-hook-fields).734Сам сервер регистрируется под именем с областью `plugin:<plugin-name>:<server-name>`, например `plugin:my-plugin:database-tools`. Используйте это имя там, где ожидается имя настроенного сервера, например в [поле `server` хука `mcp_tool`](https://code.claude.com/docs/ru/hooks#mcp-tool-hook-fields).

735 735 

736Подробнее о включении MCP-серверов в плагины см. в [справочнике по компонентам плагинов](https://code.claude.com/docs/ru/plugins/components.md#mcp-servers).736Подробнее о включении MCP-серверов в плагины см. в [справочнике по компонентам плагинов](https://code.claude.com/docs/ru/plugins/components.md#mcp-servers).

737 737 


1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 и позже**: поиск инструментов включён по умолчанию, как и на API Anthropic.1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 и позже**: поиск инструментов включён по умолчанию, как и на API Anthropic.

1801* **Более ранние модели Agent Platform**: Claude Code загружает все инструменты MCP заранее, потому что их стеки обслуживания отклоняют требуемый заголовок бета-версии. `ENABLE_TOOL_SEARCH=true` не переопределяет это.1801* **Более ранние модели Agent Platform**: Claude Code загружает все инструменты MCP заранее, потому что их стеки обслуживания отклоняют требуемый заголовок бета-версии. `ENABLE_TOOL_SEARCH=true` не переопределяет это.

1802 1802 

1803До версии 2.1.221 Claude Code отключал поиск инструментов для всех моделей на Agent Platform Google Cloud, если вы не установили `ENABLE_TOOL_SEARCH=true`.

1804 

1805Управляйте поведением поиска инструментов с помощью переменной окружения `ENABLE_TOOL_SEARCH`:1803Управляйте поведением поиска инструментов с помощью переменной окружения `ENABLE_TOOL_SEARCH`:

1806 1804 

1807| Значение | Поведение |1805| Значение | Поведение |

model-config.md +4 −4

Details

71* **Fable 5.2**: запустите `/model fable` или запустите с помощью `claude --model fable`. В сессиях [Claude apps gateway](https://code.claude.com/docs/ru/claude-apps-gateway) вместо этого запустите `/model claude-fable-5-2`.71* **Fable 5.2**: запустите `/model fable` или запустите с помощью `claude --model fable`. В сессиях [Claude apps gateway](https://code.claude.com/docs/ru/claude-apps-gateway) вместо этого запустите `/model claude-fable-5-2`.

72* **Fable 5.1 или Fable 5**: выберите её по ID модели. В Anthropic API запустите `/model claude-fable-5-1` или `/model claude-fable-5` либо запустите с помощью `claude --model claude-fable-5-1`. На других поставщиках используйте ID модели вашего поставщика или [закрепите её](#pin-models-for-third-party-deployments) с помощью `ANTHROPIC_DEFAULT_FABLE_MODEL`.72* **Fable 5.1 или Fable 5**: выберите её по ID модели. В Anthropic API запустите `/model claude-fable-5-1` или `/model claude-fable-5` либо запустите с помощью `claude --model claude-fable-5-1`. На других поставщиках используйте ID модели вашего поставщика или [закрепите её](#pin-models-for-third-party-deployments) с помощью `ANTHROPIC_DEFAULT_FABLE_MODEL`.

73 73 

74На планах Pro, Max, Team и Enterprise модель `claude-fable-5-1`, сохранённая в ваших пользовательских настройках, переводится на псевдоним `fable`:74На планах Pro, Max, Ultra, Team и Enterprise модель `claude-fable-5-1`, сохранённая в ваших пользовательских настройках, переводится на псевдоним `fable`:

75 75 

76* **План Pro или Max**: перевод происходит при первом запуске версии 2.1.321 или позже. В терминале строка модели при запуске может один раз показать `(auto-updated)`.76* **План Pro, Max или Ultra**: перевод происходит при первом запуске версии 2.1.321 или позже. В терминале строка модели при запуске может один раз показать `(auto-updated)`.

77* **План Team или Enterprise**: перевод ожидает настроек вашей организации, поэтому он может произойти при одном из последующих запусков или не произойти вовсе. Он применяется со следующей сессии, без строки `(auto-updated)`. Чтобы проверить вашу модель, запустите `/model`.77* **План Team или Enterprise**: перевод ожидает настроек вашей организации, поэтому он может произойти при одном из последующих запусков или не произойти вовсе. Он применяется со следующей сессии, без строки `(auto-updated)`. Чтобы проверить вашу модель, запустите `/model`.

78 78 

79После перевода сессии запускаются со стандартным уровнем усилий Fable 5.2, если вы не [установили уровень](#adjust-effort-level) для неё. Учётные записи Console, сторонние поставщики, а также настройки проекта, локальные и управляемые настройки сохраняют `claude-fable-5-1`.79После перевода сессии запускаются со стандартным уровнем усилий Fable 5.2, если вы не [установили уровень](#adjust-effort-level) для неё. Учётные записи Console, сторонние поставщики, а также настройки проекта, локальные и управляемые настройки сохраняют `claude-fable-5-1`.


97 97 

98В зависимости от вашего плана и уровня места использование Fable может оплачиваться из [кредитов использования](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) вместо использования включённых лимитов вашего плана. Когда это происходит, средство выбора `/model` показывает "Requires usage credits" в строке Fable. Для управления кредитами использования см. [Add usage credits to your subscription](https://code.claude.com/docs/ru/costs.md#add-usage-credits-to-your-subscription).98В зависимости от вашего плана и уровня места использование Fable может оплачиваться из [кредитов использования](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) вместо использования включённых лимитов вашего плана. Когда это происходит, средство выбора `/model` показывает "Requires usage credits" в строке Fable. Для управления кредитами использования см. [Add usage credits to your subscription](https://code.claude.com/docs/ru/costs.md#add-usage-credits-to-your-subscription).

99 99 

100В интерактивных сессиях Claude Code может показывать запрос согласия на использование кредитов для Fable. Члены планов Enterprise с организационным биллингом не видят запрос. Вы можете продолжить работу на Fable, используя кредиты использования, или переключиться на вашу модель по умолчанию. Вы также можете отклонить запрос:100В интерактивных сессиях Claude Code может показывать запрос согласия на использование кредитов для Fable. Вы можете продолжить работу на Fable, используя кредиты использования, или переключиться на вашу модель по умолчанию. Вы также можете отклонить запрос:

101 101 

102* Когда вы выбираете модель Fable с помощью `/model`, вы сохраняете вашу текущую модель.102* Когда вы выбираете модель Fable с помощью `/model`, вы сохраняете вашу текущую модель.

103* Во время сессии Claude Code продолжает ход на вашей модели по умолчанию.103* Во время сессии Claude Code продолжает ход на вашей модели по умолчанию.


225 225 

226* **Вы выбрали её для одной сессии.** Нажатие `s` в средстве выбора, запуск с помощью `--model` и запуск `/model` в неинтерактивном режиме применяются к текущей сессии и оставляют вашу сохранённую стандартную без изменений.226* **Вы выбрали её для одной сессии.** Нажатие `s` в средстве выбора, запуск с помощью `--model` и запуск `/model` в неинтерактивном режиме применяются к текущей сессии и оставляют вашу сохранённую стандартную без изменений.

227* **Что-то с более высоким приоритетом устанавливает модель.** Значение `model` в настройках проекта или управляемых настройках, `ANTHROPIC_MODEL` в вашей оболочке или [стандартная модель организации](#organization-default-model), которую ваш администратор установил для переопределения выбора пользователя, применяется снова при каждом запуске. Ваш выбор `/model` по-прежнему сохранён; просто у него более низкий приоритет. Когда настройки проекта или управляемые настройки устанавливают модель, заголовок запуска называет файл.227* **Что-то с более высоким приоритетом устанавливает модель.** Значение `model` в настройках проекта или управляемых настройках, `ANTHROPIC_MODEL` в вашей оболочке или [стандартная модель организации](#organization-default-model), которую ваш администратор установил для переопределения выбора пользователя, применяется снова при каждом запуске. Ваш выбор `/model` по-прежнему сохранён; просто у него более низкий приоритет. Когда настройки проекта или управляемые настройки устанавливают модель, заголовок запуска называет файл.

228* **Claude Code не смог сохранить ваш выбор.** `/model` записывает `model` в `~/.claude/settings.json`. Если вы не можете писать в этот файл, например потому что другой инструмент его генерирует или связывает его с копией только для чтения, выбранная вами модель действует в течение сессии, а следующий запуск читает старое значение. Установите `model` в инструменте, который генерирует файл, или сделайте файл доступным для записи. См. [A change you made in Claude Code is lost in new sessions](https://code.claude.com/docs/ru/settings.md#a-change-you-made-in-claude-code-is-lost-in-new-sessions).228* **Claude Code не смог сохранить ваш выбор.** `/model` записывает `model` в `~/.claude/settings.json`. Если вы не можете писать в этот файл, например потому что другой инструмент его генерирует или связывает его с копией только для чтения, выбранная вами модель действует в течение сессии, а следующий запуск читает старое значение. Установите `model` в инструменте, который генерирует файл, или сделайте файл доступным для записи. См. [Изменение, которое вы сделали в Claude Code, теряется в новых сессиях](https://code.claude.com/docs/ru/settings.md#a-change-you-made-in-claude-code-is-lost-in-new-sessions).

229* **Вы возобновили сессию.** Сессия, которую вы возобновляете с помощью `claude --resume` или `--continue`, обычно [сохраняет модель, которую она использовала](#setting-your-model), вместо вашей текущей стандартной.229* **Вы возобновили сессию.** Сессия, которую вы возобновляете с помощью `claude --resume` или `--continue`, обычно [сохраняет модель, которую она использовала](#setting-your-model), вместо вашей текущей стандартной.

230 230 

231## Ограничение выбора модели231## Ограничение выбора модели

Details

146 146 

147### Контроль кардинальности метрик147### Контроль кардинальности метрик

148 148 

149Следующие переменные окружения контролируют, какие атрибуты включены в метрики для управления кардинальностью:149Следующие переменные окружения контролируют, какие атрибуты включены в метрики и события для управления кардинальностью:

150 150 

151| Переменная окружения | Описание | Значение по умолчанию | Пример для отключения |151| Переменная окружения | Описание | Значение по умолчанию | Пример для отключения |

152| - | - | - | - |152| - | - | - | - |

153| `OTEL_METRICS_INCLUDE_SESSION_ID` | Включить атрибуты session.id и, в облачных сеансах, ccr.session.id в метрики | `true` | `false` |153| `OTEL_METRICS_INCLUDE_SESSION_ID` | Включить атрибуты session.id и, в облачных сессиях, ccr.session.id в метрики и события | `true` | `false` |

154| `OTEL_METRICS_INCLUDE_VERSION` | Включить атрибут app.version в метрики | `false` | `true` |154| `OTEL_METRICS_INCLUDE_VERSION` | Включить атрибут app.version в метрики и события | `false` | `true` |

155| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Включить атрибуты user.account\_uuid и user.account\_id в метрики | `true` | `false` |155| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Включить атрибуты user.account\_uuid и user.account\_id в метрики и события | `true` | `false` |

156| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Включить атрибут app.entrypoint в метрики | `false` | `true` |156| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Включить атрибут app.entrypoint в метрики и события | `false` | `true` |

157| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Включить ключи из `OTEL_RESOURCE_ATTRIBUTES` как атрибуты на точках данных метрик | `true` | `false` |157| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Включить ключи из `OTEL_RESOURCE_ATTRIBUTES` как атрибуты на точках данных метрик и в событиях | `true` | `false` |

158| `OTEL_METRICS_INCLUDE_REPOSITORY` | Включить атрибуты идентификации репозитория `vcs.*` [repository identity attributes](#repository-attributes) на метрики и события. Требует Claude Code v2.1.269 или позже | `false` | `true` |158| `OTEL_METRICS_INCLUDE_REPOSITORY` | Включить атрибуты идентификации репозитория `vcs.*` [repository identity attributes](#repository-attributes) на метрики и события. Требует Claude Code v2.1.269 или позже | `false` | `true` |

159 159 

160Более низкая кардинальность обычно означает лучшую производительность и более низкие затраты на хранилище, но менее детальные данные для анализа.160Более низкая кардинальность обычно означает лучшую производительность и более низкие затраты на хранилище, но менее детальные данные для анализа.


291* Вызова Edit или Write, если вы также не установите `OTEL_LOG_TOOL_DETAILS=1`291* Вызова Edit или Write, если вы также не установите `OTEL_LOG_TOOL_DETAILS=1`

292* Вызова WebFetch или WebSearch, который Claude Code перевёл в фоновый режим во время выполнения, чтобы ожидающее сообщение могло дойти до Claude. Результат, поступающий позже, также не записывается. Чтобы узнать, когда Claude Code переводит вызов в фон, см. [Когда Claude Code отправляет то, что вы поставили в очередь](https://code.claude.com/docs/ru/interactive-mode.md#when-claude-code-sends-what-you-queued) для терминала и [поле `priority`](https://code.claude.com/docs/ru/agent-sdk/typescript#sdkusermessage) для сессий Agent SDK292* Вызова WebFetch или WebSearch, который Claude Code перевёл в фоновый режим во время выполнения, чтобы ожидающее сообщение могло дойти до Claude. Результат, поступающий позже, также не записывается. Чтобы узнать, когда Claude Code переводит вызов в фон, см. [Когда Claude Code отправляет то, что вы поставили в очередь](https://code.claude.com/docs/ru/interactive-mode.md#when-claude-code-sends-what-you-queued) для терминала и [поле `priority`](https://code.claude.com/docs/ru/agent-sdk/typescript#sdkusermessage) для сессий Agent SDK

293 293 

294Событие содержит эти атрибуты, каждый усечённый на лимите содержимого (60 КБ по умолчанию). `Контролируется` называет переменную, которая нужна атрибуту в дополнение к `OTEL_LOG_TOOL_CONTENT=1`, и для Edit и Write эта переменная контролирует само событие, а не атрибут.294Событие содержит эти атрибуты, каждый усечённый на лимите содержимого (60 КБ по умолчанию). `Gated by` называет переменную, которая нужна атрибуту в дополнение к `OTEL_LOG_TOOL_CONTENT=1`, и для Edit и Write эта переменная контролирует само событие, а не атрибут.

295 295 

296| Атрибут | Описание | Контролируется |296| Атрибут | Описание | Контролируется |

297| - | - | - |297| - | - | - |


352>352>

353> Дополнительные атрибуты с содержимым, такие как `new_context`, `system_reminders`, `system_prompt_preview`, `user_system_prompt`, `tool_input` и `response.model_output`, выдаются, только когда активна детальная бета-трассировка. Они не являются частью стабильной схемы span.353> Дополнительные атрибуты с содержимым, такие как `new_context`, `system_reminders`, `system_prompt_preview`, `user_system_prompt`, `tool_input` и `response.model_output`, выдаются, только когда активна детальная бета-трассировка. Они не являются частью стабильной схемы span.

354 354 

355Эти атрибуты появляются на перечисленных ниже spans, а в столбце `Контролируется` указана переменная, которая нужна атрибуту в дополнение к детальной бета-трассировке. Значения длиннее лимита содержимого (60 КБ по умолчанию) усекаются.355Эти атрибуты появляются на перечисленных ниже spans, а в столбце `Gated by` указана переменная, которая нужна атрибуту в дополнение к детальной бета-трассировке. Значения длиннее лимита содержимого (60 КБ по умолчанию) усекаются.

356 356 

357| Атрибут | Span | Описание | Контролируется |357| Атрибут | Span | Описание | Контролируется |

358| - | - | - | - |358| - | - | - | - |


523export OTEL_METRICS_EXPORTER=otlp523export OTEL_METRICS_EXPORTER=otlp

524export OTEL_LOGS_EXPORTER=otlp524export OTEL_LOGS_EXPORTER=otlp

525export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf525export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf

526export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318526export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318/v1/metrics

527export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc527export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc

528export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317528export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317

529```529```


571 571 

572Чтобы атрибутировать телеметрию более подробно, используйте эти параметры:572Чтобы атрибутировать телеметрию более подробно, используйте эти параметры:

573 573 

574* **Определить сеансы Claude Tag**: установите `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`, как описано в разделе [Контроль кардинальности метрик](#metrics-cardinality-control). Метрики затем содержат `app.entrypoint`, значение которого — `claude-in-slack` для сеансов Claude Tag.574* **Определить сессии Claude Tag**: установите `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`, как описано в разделе [Контроль кардинальности метрик](#metrics-cardinality-control). Метрики и события затем содержат `app.entrypoint`, значение которого — `claude-in-slack` для сессий Claude Tag.

575* **Добавить пользовательские атрибуты**: установите [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) в том же месте, где вы устанавливаете другие переменные `OTEL_*` для этих сеансов. Если вы `export` его в [скрипте настройки](https://code.claude.com/docs/ru/cloud-environments.md#setup-scripts) окружения вместо этого, значение не достигает Claude Code: скрипт настройки — это отдельный скрипт Bash, который запускается перед запуском Claude Code, и переменные, которые он экспортирует, заканчиваются с ним.575* **Добавить пользовательские атрибуты**: установите [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) в том же месте, где вы устанавливаете другие переменные `OTEL_*` для этих сеансов. Если вы `export` его в [скрипте настройки](https://code.claude.com/docs/ru/cloud-environments.md#setup-scripts) окружения вместо этого, значение не достигает Claude Code: скрипт настройки — это отдельный скрипт Bash, который запускается перед запуском Claude Code, и переменные, которые он экспортирует, заканчиваются с ним.

576 576 

577В сеансах канала Claude Tag Claude работает как [общая идентичность](https://code.claude.com/docs/ru/cloud-environments.md#set-the-environment-a-claude-tag-channel-uses) вашей организации, а не как какой-либо член, поэтому не полагайтесь на атрибуты `user.*` для определения того, кто отметил Claude.577В сеансах канала Claude Tag Claude работает как [общая идентичность](https://code.claude.com/docs/ru/cloud-environments.md#set-the-environment-a-claude-tag-channel-uses) вашей организации, а не как какой-либо член, поэтому не полагайтесь на атрибуты `user.*` для определения того, кто отметил Claude.


587| `session.id` | Собственный идентификатор сессии Claude Code, который заменяется командой `/clear` | `OTEL_METRICS_INCLUDE_SESSION_ID` (по умолчанию: true) |587| `session.id` | Собственный идентификатор сессии Claude Code, который заменяется командой `/clear` | `OTEL_METRICS_INCLUDE_SESSION_ID` (по умолчанию: true) |

588| `ccr.session.id` | Идентификатор облачной сессии, значение `CLAUDE_CODE_REMOTE_SESSION_ID`, в сессиях, которые выполняются в [облачном окружении](https://code.claude.com/docs/ru/cloud-environments.md) | `OTEL_METRICS_INCLUDE_SESSION_ID` (по умолчанию: true) |588| `ccr.session.id` | Идентификатор облачной сессии, значение `CLAUDE_CODE_REMOTE_SESSION_ID`, в сессиях, которые выполняются в [облачном окружении](https://code.claude.com/docs/ru/cloud-environments.md) | `OTEL_METRICS_INCLUDE_SESSION_ID` (по умолчанию: true) |

589| `app.version` | Текущая версия Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (по умолчанию: false) |589| `app.version` | Текущая версия Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (по умолчанию: false) |

590| `app.entrypoint` | Способ запуска сессии, например `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode` или `claude-in-slack` для сессий Claude Tag | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (по умолчанию: false) |590| `app.entrypoint` | Способ запуска сессии, например `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode`, `claude-desktop` для сессий вкладки Code в Claude Desktop вне облака, `claude-desktop-3p` для тех же сессий в [стороннем развёртывании](https://claude.com/docs/third-party/claude-desktop/overview) или `claude-in-slack` для сессий Claude Tag. Значения для облачных сессий включают `remote`, а также `remote_desktop` и `remote_mobile` для сессий, которые вы запускаете из Claude Desktop или мобильного приложения | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (по умолчанию: false) |

591| `organization.id` | UUID организации (при аутентификации) | Всегда включается, если доступен |591| `organization.id` | UUID организации (при аутентификации) | Всегда включается, если доступен |

592| `user.account_uuid` | UUID аккаунта (при аутентификации) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (по умолчанию: true) |592| `user.account_uuid` | UUID аккаунта (при аутентификации) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (по умолчанию: true) |

593| `user.account_id` | ID аккаунта в формате с тегом, соответствующем административным API Anthropic (при аутентификации), например `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (по умолчанию: true) |593| `user.account_id` | ID аккаунта в формате с тегом, соответствующем административным API Anthropic (при аутентификации), например `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (по умолчанию: true) |


643 643 

644| Имя метрики | Описание | Единица |644| Имя метрики | Описание | Единица |

645| - | - | - |645| - | - | - |

646| `claude_code.session.count` | Количество запущенных сессий CLI | нет |646| `claude_code.session.count` | Количество запущенных сессий | нет |

647| `claude_code.lines_of_code.count` | Количество изменённых строк кода | нет |647| `claude_code.lines_of_code.count` | Количество изменённых строк кода | нет |

648| `claude_code.pull_request.count` | Количество созданных pull request | нет |648| `claude_code.pull_request.count` | Количество созданных pull request | нет |

649| `claude_code.commit.count` | Количество созданных git-коммитов | нет |649| `claude_code.commit.count` | Количество созданных git-коммитов | нет |


660 660 

661#### Счётчик сессий661#### Счётчик сессий

662 662 

663Увеличивается в начале каждой сессии.663Увеличивается при запуске каждой сессии. Чтобы считать людей, см. [Мониторинг использования](#usage-monitoring).

664 664 

665**Атрибуты**:665**Атрибуты**:

666 666 


1458 1458 

1459Как и любое событие OTel на этой странице, оно отправляется только в настроенный вами бэкенд телеметрии. Требуется Claude Code v2.1.227 или новее.1459Как и любое событие OTel на этой странице, оно отправляется только в настроенный вами бэкенд телеметрии. Требуется Claude Code v2.1.227 или новее.

1460 1460 

1461Когда Claude Code не может надёжно определить срок хранения, он приостанавливает очистку и генерирует событие с `result`, равным `"skipped"`, и атрибутом `skip_reason`. Когда [управляемые настройки](https://code.claude.com/docs/ru/server-managed-settings.md) задают `cleanupPeriodDays`, управляемое значение фиксирует срок хранения, и очистка выполняется, даже если файл настроек в области действия с более низким приоритетом повреждён или некорректен. Когда сам `managed-settings.json` не удаётся прочитать, Claude Code всё равно приостанавливает очистку, если только [управляемый уровень](https://code.claude.com/docs/ru/managed-settings.md#how-claude-code-combines-managed-sources) не предоставляет `cleanupPeriodDays` из другого места, например из серверных управляемых настроек или из дополнительного файла `managed-settings.d/` рядом с повреждённым файлом. Атрибуты-счётчики удалений присутствуют, только когда `result` равен `"complete"`.1461Проверьте `result`, чтобы узнать, была ли выполнена очистка:

1462 

1463* `"complete"`: очистка выполнена, и событие содержит её счётчики

1464* `"skipped"`: Claude Code не смог надёжно определить срок хранения, поэтому приостановил очистку, и событие не содержит счётчиков. Если `skip_reason` равен `"settings_unknowable"` или `"settings_invalid_key_set"`, исправьте ошибку настроек, о которой сообщает `/status` на этой машине, чтобы очистку можно было выполнить в следующей сессии

1465 

1466Когда [управляемые настройки](https://code.claude.com/docs/ru/server-managed-settings.md) задают `cleanupPeriodDays`, управляемое значение фиксирует срок хранения, и очистка выполняется, даже если файл настроек в области действия с более низким приоритетом повреждён или некорректен.

1462 1467 

1463**Имя события**: `claude_code.retention_sweep`1468**Имя события**: `claude_code.retention_sweep`

1464 1469 


1469* `event.timestamp`: временная метка в формате ISO 86011474* `event.timestamp`: временная метка в формате ISO 8601

1470* `event.sequence`: счётчик в пределах процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)1475* `event.sequence`: счётчик в пределах процесса для упорядочивания событий, описанный в разделе [Атрибуты корреляции событий](#event-correlation-attributes)

1471* `result`: `"complete"`, если очистка выполнена, `"skipped"`, если Claude Code её приостановил1476* `result`: `"complete"`, если очистка выполнена, `"skipped"`, если Claude Code её приостановил

1472* `period_days`: значение `cleanupPeriodDays` из объединённых настроек в днях или `30`, если ни один источник его не задаёт. В пропущенных событиях — значение, которое использовала бы очистка, вычисленное из источников настроек, которые Claude Code смог прочитать1477* `period_days`: срок хранения в днях, с которым началась очистка: `cleanupPeriodDays` из объединённых настроек с учётом изменений, внесённых [хуком `settings.read`](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-hook). `30`, если в результате ключ не задан. В событиях со статусом skipped — значение, которое использовала бы очистка, вычисленное по источникам настроек, которые Claude Code смог прочитать

1473* `used_default`: `"true"`, если ни один доступный для чтения источник настроек не задаёт `cleanupPeriodDays`, иначе `"false"`. В завершённых событиях `"true"` означает, что применено значение по умолчанию в 30 дней1478* `used_default`: `"true"`, если `period_days` использовал резервное значение `30`, иначе `"false"`. В событиях со статусом complete `"true"` означает, что применено значение по умолчанию в 30 дней

1474* `skip_reason`: почему Claude Code приостановил очистку. Присутствует, только когда `result` равно `"skipped"`:1479* `skip_reason`: почему Claude Code приостановил очистку. Присутствует, только когда `result` равно `"skipped"`:

1475 * `"user_source_disabled"`: пользовательские настройки исключены, например флагом [`--setting-sources`](https://code.claude.com/docs/ru/cli-reference#cli-flags) или параметром SDK [`settingSources`](https://code.claude.com/docs/ru/agent-sdk/typescript#options), и ни один включённый источник не предоставляет `cleanupPeriodDays`1480 * `"user_source_disabled"`: пользовательские настройки исключены, например флагом [`--setting-sources`](https://code.claude.com/docs/ru/cli-reference#cli-flags) или параметром SDK [`settingSources`](https://code.claude.com/docs/ru/agent-sdk/typescript#options), и ни один включённый источник не предоставляет `cleanupPeriodDays`

1476 * `"settings_unknowable"`: файл настроек не удалось прочитать или разобрать, поэтому `cleanupPeriodDays` или `desktopSessionCleanupPeriodDays` могут иметь значение, которое Claude Code не видит1481 * `"settings_unknowable"`: файл настроек не удалось прочитать или разобрать, поэтому `cleanupPeriodDays` или `desktopSessionCleanupPeriodDays` могут иметь значение, которое Claude Code не видит


1549| Метрика | Возможность анализа |1554| Метрика | Возможность анализа |

1550| - | - |1555| - | - |

1551| `claude_code.token.usage` | Разбить по [`type`](#token-counter) токена, пользователю, команде, модели, `skill.name`, `plugin.name` или `agent.name` |1556| `claude_code.token.usage` | Разбить по [`type`](#token-counter) токена, пользователю, команде, модели, `skill.name`, `plugin.name` или `agent.name` |

1552| `claude_code.session.count` | Отслеживать принятие и вовлеченность с течением времени |

1553| `claude_code.lines_of_code.count` | Измерить производительность, отслеживая добавления и удаления кода, разбитые по моделям |1557| `claude_code.lines_of_code.count` | Измерить производительность, отслеживая добавления и удаления кода, разбитые по моделям |

1554| `claude_code.commit.count` & `claude_code.pull_request.count` | Понять влияние на рабочие процессы разработки |1558| `claude_code.commit.count` & `claude_code.pull_request.count` | Понять влияние на рабочие процессы разработки |

1555 1559 

1560Чтобы сравнить активных пользователей в разных интерфейсах, установите `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`, чтобы добавить [`app.entrypoint`](#standard-attributes) к метрикам и событиям. Затем подсчитайте уникальные значения `user.account_uuid` для каждой точки входа в событиях [`claude_code.user_prompt`](#user-prompt-event) или в `claude_code.token.usage`, если вы экспортируете только метрики. Например, используйте `cli` для интерактивных сессий CLI и объедините `claude-desktop`, `claude-desktop-3p` и `remote_desktop` для вкладки Code в Claude Desktop.

1561 

1562`user.account_uuid` не идентифицирует людей в сессиях каналов Claude Tag и отсутствует в сессиях без аккаунта Claude: см. [Атрибуция действий пользователям](#attribute-actions-to-users). Когда один человек запускает много сессий или сессия не получает ни одного промпта, [`claude_code.session.count`](#session-counter) увеличивается без добавления активного пользователя.

1563 

1556### Мониторинг затрат1564### Мониторинг затрат

1557 1565 

1558Метрика `claude_code.cost.usage` помогает с:1566Метрика `claude_code.cost.usage` помогает с:


1783## Безопасность и конфиденциальность1791## Безопасность и конфиденциальность

1784 1792 

1785* Экспорт OpenTelemetry на ваш бэкенд является добровольным и требует явной конфигурации. Информацию об отдельной операционной телеметрии Anthropic и о том, как её отключить, см. в разделе [Data usage](https://code.claude.com/docs/ru/data-usage.md#telemetry-services)1793* Экспорт OpenTelemetry на ваш бэкенд является добровольным и требует явной конфигурации. Информацию об отдельной операционной телеметрии Anthropic и о том, как её отключить, см. в разделе [Data usage](https://code.claude.com/docs/ru/data-usage.md#telemetry-services)

1786* Содержимое файлов в исходном виде и фрагменты кода не включаются в метрики или события. Span трассировок — это отдельный путь данных: см. пункт `OTEL_LOG_TOOL_CONTENT` ниже1794* По умолчанию содержимое файлов в исходном виде и фрагменты кода не включаются в метрики или события. Если вы установите переменную, например `OTEL_LOG_TOOL_DETAILS` или `OTEL_LOG_RAW_API_BODIES`, события могут их содержать. Span трассировок — это отдельный путь данных: см. пункт `OTEL_LOG_TOOL_CONTENT` ниже

1787* При аутентификации через OAuth `user.email` включается в атрибуты телеметрии, отправляется только на endpoint OTel, который вы настраиваете, никогда на Anthropic. Если это вызывает беспокойство для вашей организации, работайте с вашим бэкендом телеметрии для фильтрации или скрытия этого поля1795* При аутентификации через OAuth `user.email` включается в атрибуты телеметрии, отправляется только на endpoint OTel, который вы настраиваете, никогда на Anthropic. Если это вызывает беспокойство для вашей организации, работайте с вашим бэкендом телеметрии для фильтрации или скрытия этого поля

1788* Содержимое пользовательского промпта не собирается по умолчанию. Записывается только длина промпта. Чтобы включить содержимое промпта, установите `OTEL_LOG_USER_PROMPTS=1`. Когда включено:1796* Содержимое пользовательского промпта не собирается по умолчанию. Записывается только длина промпта. Чтобы включить содержимое промпта, установите `OTEL_LOG_USER_PROMPTS=1`. Когда включено:

1789 * События `user_prompt` содержат текст промпта в двух атрибутах: `prompt` и [`prompt_text`](#user-prompt-event). Если вы удаляете или маскируете текст промпта события по имени атрибута в вашем коллекторе, укажите в правиле оба атрибута1797 * События `user_prompt` содержат текст промпта в двух атрибутах: `prompt` и [`prompt_text`](#user-prompt-event). Если вы удаляете или маскируете текст промпта события по имени атрибута в вашем коллекторе, укажите в правиле оба атрибута

Details

686* **Если вы согласитесь**: Claude Code устанавливает `skipDangerousModePermissionPrompt` на `true` в `~/.claude/settings.json`, поэтому более поздние сеансы пропускают диалоговое окно. Чтобы увидеть диалоговое окно снова, удалите ключ из этого файла или установите его на `false`. [Справка `skipDangerousModePermissionPrompt`](https://code.claude.com/docs/ru/settings-reference#skipdangerousmodepermissionprompt) перечисляет другие файлы параметров, где вы или ваша организация можете установить его.686* **Если вы согласитесь**: Claude Code устанавливает `skipDangerousModePermissionPrompt` на `true` в `~/.claude/settings.json`, поэтому более поздние сеансы пропускают диалоговое окно. Чтобы увидеть диалоговое окно снова, удалите ключ из этого файла или установите его на `false`. [Справка `skipDangerousModePermissionPrompt`](https://code.claude.com/docs/ru/settings-reference#skipdangerousmodepermissionprompt) перечисляет другие файлы параметров, где вы или ваша организация можете установить его.

687* **Если вы отклоните**: Claude Code выходит.687* **Если вы отклоните**: Claude Code выходит.

688 688 

689Если вы передаёте [`--setting-sources`](https://code.claude.com/docs/ru/cli-reference#cli-flags) без `user`, диалоговое окно может появиться снова, хотя вы уже приняли его ранее. Чтобы пропустить его, добавьте `user`, например `--setting-sources user,project`.

690 

689В [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) диалоговое окно не показывается.691В [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) диалоговое окно не показывается.

690 692 

691[Фоновая сессия](https://code.claude.com/docs/ru/agent-view.md) учитывает ваше согласие, если оно записано в пользовательских или управляемых настройках:693[Фоновая сессия](https://code.claude.com/docs/ru/agent-view.md) учитывает ваше согласие, если оно записано в пользовательских или управляемых настройках:

permissions.md +5 −3

Details

578* `mcp__puppeteer__*` использует синтаксис подстановочных знаков и также соответствует всем инструментам сервера `puppeteer`578* `mcp__puppeteer__*` использует синтаксис подстановочных знаков и также соответствует всем инструментам сервера `puppeteer`

579* `mcp__puppeteer__puppeteer_navigate` соответствует инструменту `puppeteer_navigate`, предоставляемому сервером `puppeteer`579* `mcp__puppeteer__puppeteer_navigate` соответствует инструменту `puppeteer_navigate`, предоставляемому сервером `puppeteer`

580 580 

581Пишите правила allow для инструментов MCP без [спецификатора](#use-specifiers-for-fine-grained-control), который в [обновлении разрешений](https://code.claude.com/docs/ru/hooks.md#permission-update-entries) называется `ruleContent`. Если вы добавите спецификатор, чтобы разрешить только часть вызовов инструмента, правило не будет соответствовать ни одному вызову. Чтобы вместо этого заблокировать часть вызовов, см. [Сопоставление по входному параметру](#match-by-input-parameter).

582 

581Вместо `<server>` укажите имя сервера в том виде, в каком оно встречается в именах инструментов этого сервера. В следующих примерах показано, какое правило написать для имени со специальными символами, для сервера из плагина и для имени, которое содержит `__` или оканчивается на `_`:583Вместо `<server>` укажите имя сервера в том виде, в каком оно встречается в именах инструментов этого сервера. В следующих примерах показано, какое правило написать для имени со специальными символами, для сервера из плагина и для имени, которое содержит `__` или оканчивается на `_`:

582 584 

583* **Имена с символами вроде `.` или пробелов**: эти символы заменяются на `_`, поэтому для сервера, настроенного как `my.server`, напишите `mcp__my_server__*`585* **Имена с символами вроде `.` или пробелов**: эти символы заменяются на `_`, поэтому для сервера, настроенного как `my.server`, напишите `mcp__my_server__*`


632 634 

633Решения hook не обходят правила разрешений. Claude Code оценивает правила deny и ask независимо от того, что возвращает PreToolUse hook: совпадающее правило deny блокирует вызов, и совпадающее правило ask по-прежнему запрашивает даже когда hook вернул `"allow"` или `"ask"`. Это сохраняет приоритет deny-first, описанный в [Управление разрешениями](#manage-permissions), включая правила deny, установленные в управляемых параметрах.635Решения hook не обходят правила разрешений. Claude Code оценивает правила deny и ask независимо от того, что возвращает PreToolUse hook: совпадающее правило deny блокирует вызов, и совпадающее правило ask по-прежнему запрашивает даже когда hook вернул `"allow"` или `"ask"`. Это сохраняет приоритет deny-first, описанный в [Управление разрешениями](#manage-permissions), включая правила deny, установленные в управляемых параметрах.

634 636 

635Этот приоритет распространяется на хуки в файлах настроек и в `hooks/hooks.json` плагина. Установленный вами [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md), который обрабатывает событие [`tool.check`](https://code.claude.com/docs/ru/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked), даёт свой ответ после того, как отработали хуки `PreToolUse`. Если на машине есть [управляемые настройки](https://code.claude.com/docs/ru/settings.md#check-what-your-organization-enforces) или учётными данными сессии служит вход Team или Enterprise через [`/login`](https://code.claude.com/docs/ru/authentication#authentication-precedence), следующие результаты по умолчанию сохраняются, когда мод одобряет вызов:637Этот приоритет распространяется на хуки в файлах настроек и в `hooks/hooks.json` плагина. Установленный вами [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md), который обрабатывает событие [`tool.check`](https://code.claude.com/docs/ru/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked), даёт свой ответ после того, как отработали хуки `PreToolUse`. Если есть [управляемые настройки](https://code.claude.com/docs/ru/settings.md#check-what-your-organization-enforces) или [файл `managed-mcp.json`](https://code.claude.com/docs/ru/managed-mcp#deploy-managed-mcp-json) либо учётными данными сессии служит вход Team или Enterprise через [`/login`](https://code.claude.com/docs/ru/authentication#authentication-precedence), следующие результаты по умолчанию сохраняются, когда мод одобряет вызов:

636 638 

637* Вызов, который отклоняет правило deny, остаётся отклонённым, и ваша организация может это изменить.639* Вызов, который отклоняет правило deny, остаётся отклонённым.

638* Для вызова, для которого правило ask запросило бы подтверждение, вам по-прежнему показывается запрос.640* Для вызова, для которого правило ask запросило бы подтверждение, вам по-прежнему показывается запрос.

639* Для вызова, для которого хук `PreToolUse` или [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/ru/settings-reference#permissions-blockreadsoutsideworkingdirectories) запросили бы подтверждение, вам по-прежнему показывается запрос.641* Для вызова, для которого хук `PreToolUse` или [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/ru/settings-reference#permissions-blockreadsoutsideworkingdirectories) запросили бы подтверждение, вам по-прежнему показывается запрос.

640* Вызов, заблокированный хуком `PreToolUse`, остаётся заблокированным, из какого бы файла настроек ни был этот хук.642* Вызов, заблокированный хуком `PreToolUse`, остаётся заблокированным, из какого бы файла настроек ни был этот хук.

641* Вызов, о котором был бы спрошен ваш [`--permission-prompt-tool`](https://code.claude.com/docs/ru/cli-reference#cli-flags) или [обратный вызов `canUseTool`](https://code.claude.com/docs/ru/agent-sdk/user-input#handle-tool-approval-requests) Agent SDK, по-прежнему передаётся этому инструменту или обратному вызову.643* Вызов, о котором был бы спрошен ваш [`--permission-prompt-tool`](https://code.claude.com/docs/ru/cli-reference#cli-flags) или [обратный вызов `canUseTool`](https://code.claude.com/docs/ru/agent-sdk/user-input#handle-tool-approval-requests) Agent SDK, по-прежнему передаётся этому инструменту или обратному вызову.

642 644 

643Если нет ни управляемых настроек, ни входа Team или Enterprise через `/login` в качестве учётных данных сессии, мод может одобрить вызов, который отклоняет правило deny или заблокировал хук `PreToolUse`. Сессия, которая работает на API-ключе или долгоживущем [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/ru/authentication#generate-a-long-lived-token), не использует этот вход, даже если он сохранён.645В вашей конфигурации может не быть ни управляемых настроек, ни файла `managed-mcp.json`, ни входа Team или Enterprise через `/login` в качестве учётных данных сессии. В такой конфигурации мод может одобрить вызов, который отклоняет правило deny или заблокировал хук `PreToolUse`. Сессия, которая вместо этого работает на API-ключе или долгоживущем [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/ru/authentication#generate-a-long-lived-token), не использует этот вход, даже если он сохранён.

644 646 

645В такой конфигурации вам не показывается запрос, когда мод одобряет вызов, для которого правило ask, хук `PreToolUse` или `permissions.blockReadsOutsideWorkingDirectories` запросили бы подтверждение. Ваш `--permission-prompt-tool` или обратный вызов `canUseTool` также не опрашивается о вызове, который одобряет мод. Авторежим, режим планирования и режим `dontAsk` в любой конфигурации добавляют свой собственный результат:647В такой конфигурации вам не показывается запрос, когда мод одобряет вызов, для которого правило ask, хук `PreToolUse` или `permissions.blockReadsOutsideWorkingDirectories` запросили бы подтверждение. Ваш `--permission-prompt-tool` или обратный вызов `canUseTool` также не опрашивается о вызове, который одобряет мод. Авторежим, режим планирования и режим `dontAsk` в любой конфигурации добавляют свой собственный результат:

646 648 

Details

94* **stdin или stdout не является TTY, и вы не передаёте ни `-y`, ни `--accept-command`**: установка отклоняется. Выходные данные говорят, что команда была только отображена, и код выхода — `1`94* **stdin или stdout не является TTY, и вы не передаёте ни `-y`, ни `--accept-command`**: установка отклоняется. Выходные данные говорят, что команда была только отображена, и код выхода — `1`

95* **Claude запускает команду через свой инструмент Bash**: `-y` игнорируется. Запустите команду из вашего собственного терминала вместо этого95* **Claude запускает команду через свой инструмент Bash**: `-y` игнорируется. Запустите команду из вашего собственного терминала вместо этого

96 96 

97Установите плагин для всех, кто клонирует проект:97Чтобы поделиться плагином со всеми, кто клонирует проект, запустите `claude plugin install` с `--scope project` и сделайте коммит `.claude/settings.json`. Затем попросите каждого участника [добавить маркетплейс](https://code.claude.com/docs/ru/plugins/install.md#add-a-marketplace) и [запустить ту же команду](https://code.claude.com/docs/ru/plugins/loading.md#enabled-in-project-settings-but-not-installed) в своём клоне:

98 98 

99```bash theme={null}99```bash theme={null}

100claude plugin install formatter@my-marketplace --scope project100claude plugin install formatter@my-marketplace --scope project


333| `notes` | array of strings | Предупреждения, которые не являются ошибками загрузки, например проблемы авторства или [неустановленные пакеты](https://code.claude.com/docs/ru/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |333| `notes` | array of strings | Предупреждения, которые не являются ошибками загрузки, например проблемы авторства или [неустановленные пакеты](https://code.claude.com/docs/ru/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |

334| `errorDetails` | array of objects | Один объект на запись `errors`, дающий его диагностический `type` и имена, на которые он ссылается, такие как плагин, маркетплейс, сервер или файл. Требует Claude Code v2.1.268 или позже |334| `errorDetails` | array of objects | Один объект на запись `errors`, дающий его диагностический `type` и имена, на которые он ссылается, такие как плагин, маркетплейс, сервер или файл. Требует Claude Code v2.1.268 или позже |

335| `noteDetails` | array of objects | Те же объекты деталей для каждой записи `notes`. Требует Claude Code v2.1.268 или позже |335| `noteDetails` | array of objects | Те же объекты деталей для каждой записи `notes`. Требует Claude Code v2.1.268 или позже |

336| `hasUserConfig` | boolean | Присутствует и `true`, когда плагин загрузился и его манифест объявляет [опции `userConfig`](https://code.claude.com/docs/ru/plugins/manifest-reference#user-configuration). Отсутствует для плагина, который не загрузился, независимо от того, что объявляет его манифест. Сохранённые значения никогда не включаются. Требует Claude Code v2.1.285 или позже |336| `hasUserConfig` | boolean | Присутствует и `true`, когда плагин загрузился и его манифест объявляет [опции `userConfig`](https://code.claude.com/docs/ru/plugins/manifest-reference#user-configuration). Отсутствует для плагина, который не загрузился, независимо от того, что объявляет его манифест. Требует Claude Code v2.1.285 или позже |

337| `projectEnabled` | boolean | Включает ли общий файл `.claude/settings.json` проекта плагин. Только установки маркетплейса. Требует Claude Code v2.1.285 или позже |337| `projectEnabled` | boolean | Включает ли общий файл `.claude/settings.json` проекта плагин. Только установки маркетплейса. Требует Claude Code v2.1.285 или позже |

338| `dataDirSize` | object | С `--data-size`, размер [каталога сохранённых данных](#what-an-uninstall-deletes-and-keeps) плагина как `bytes` и `human`; отсутствует, когда каталог отсутствует или пуст. Только установки маркетплейса. Требует Claude Code v2.1.285 или позже |338| `dataDirSize` | object | С `--data-size`, размер [каталога сохранённых данных](#what-an-uninstall-deletes-and-keeps) плагина как `bytes` и `human`; отсутствует, когда каталог отсутствует или пуст. Только установки маркетплейса. Требует Claude Code v2.1.285 или позже |

339| `dataDirUnreadable` | boolean | С `--data-size`, `true`, когда каталог сохранённых данных существует, но не мог быть измерен. Только установки маркетплейса. Требует Claude Code v2.1.285 или позже |339| `dataDirUnreadable` | boolean | С `--data-size`, `true`, когда каталог сохранённых данных существует, но не мог быть измерен. Только установки маркетплейса. Требует Claude Code v2.1.285 или позже |

Details

169 169 

170### Загрузите плагин на одну сессию170### Загрузите плагин на одну сессию

171 171 

172Вы можете загрузить плагин на одну сессию тремя способами: из директории или архива `.zip` на диске с `--plugin-dir`, с URL с `--plugin-url` или из переменной окружения, когда вы не можете добавить флаг. Каждый плагин загружается только на эту сессию, и ничего не записывается в ваши settings для него. Когда вы редактируете файлы плагина во время сессии, запустите `/reload-plugins` для загрузки изменений.172Вы можете загрузить плагин на одну сессию тремя способами:

173 

174* Из директории или архива `.zip` на диске с `--plugin-dir`

175* С URL с `--plugin-url`

176* Из переменной окружения, когда вы не можете добавить флаг

177 

178Когда вы редактируете файлы плагина во время сессии, запустите `/reload-plugins` для загрузки изменений.

173 179 

174#### Загрузите плагин из директории или `.zip`180#### Загрузите плагин из директории или `.zip`

175 181 

Details

123 123 

124Эти источники записей не нуждаются в учетной записи git:124Эти источники записей не нуждаются в учетной записи git:

125 125 

126* **`archive`**: zip, загруженный по HTTPS. Пользователям не нужны ни `git`, ни учетная запись, только сетевой доступ к URL. Требует Claude Code v2.1.224 или позже. Закрепите каждый архив с `sha256`, чтобы Claude Code отказал в измененной загрузке. Чтобы отправить учетные данные с загрузкой, смотрите [Authenticate archive downloads](#authenticate-archive-downloads).126* **`archive`**: zip-архив, загружаемый по HTTPS. Пользователям не нужны ни `git`, ни учётная запись, только сетевой доступ к URL. Закрепите каждый архив с помощью `sha256`, чтобы Claude Code отклонял изменённую загрузку. Чтобы передавать учётные данные при загрузке, см. [Аутентификация загрузок архивов](#authenticate-archive-downloads).

127* **Публичный git-репозиторий**: Claude Code клонирует публичный источник `url` или `git-subdir` по HTTPS без учётных данных, если в записи указан URL `https://`. Для источника `github` или источника `git-subdir`, записанного как `owner/repo`, попросите пользователей без SSH-ключа GitHub установить `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.127* **Публичный git-репозиторий**: Claude Code клонирует публичный источник `url` или `git-subdir` по HTTPS без учётных данных, если в записи указан URL `https://`. Для источника `github` или источника `git-subdir`, записанного как `owner/repo`, попросите пользователей без SSH-ключа GitHub установить `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.

128 128 

129Оставьте `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` в своих инструкциях, даже если `claude plugin install` без этой переменной успешно выполняется из оболочки на машине без SSH-ключа. Для источника `github` эта команда может самостоятельно переключиться на HTTPS, выведя `SSH not configured, cloning via HTTPS`. Установки через `/plugin` внутри сессии и обновления плагинов не переключаются, поэтому без этой переменной они завершаются ошибкой у пользователей, у которых нет SSH-ключа GitHub.129Оставьте `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` в своих инструкциях, даже если `claude plugin install` без этой переменной успешно выполняется из оболочки на машине без SSH-ключа. Для источника `github` эта команда может самостоятельно переключиться на HTTPS, выведя `SSH not configured, cloning via HTTPS`. Установки через `/plugin` внутри сессии и обновления плагинов не переключаются, поэтому без этой переменной они завершаются ошибкой у пользователей, у которых нет SSH-ключа GitHub.

Details

132Область установки плагина определяет, кто получает плагин и какой файл настроек записывает его как включённый:132Область установки плагина определяет, кто получает плагин и какой файл настроек записывает его как включённый:

133 133 

134* **User scope**: плагин включен для вас в каждом проекте на этой машине. Запись идёт в `enabledPlugins` в `~/.claude/settings.json`.134* **User scope**: плагин включен для вас в каждом проекте на этой машине. Запись идёт в `enabledPlugins` в `~/.claude/settings.json`.

135* **Project scope**: плагин включен для всех, кто работает в этом репозитории. Запись идёт в `.claude/settings.json`, который вы коммитите. Коммитинг этой записи включает плагин для ваших сотрудников, но не загружает его на их машины, поэтому каждый сотрудник также запускает `claude plugin install <name>@<marketplace> --scope project` один раз; см. [Enabled in project settings but not installed](https://code.claude.com/docs/ru/plugins/loading.md#enabled-in-project-settings-but-not-installed).135* **Project scope**: плагин включен для всех, кто работает в этом репозитории. Запись идёт в `.claude/settings.json`, который вы коммитите. Коммит этой записи включает плагин для ваших соавторов, но не загружает его на их машины. Каждый соавтор также один раз для каждого клона запускает `claude plugin install <name>@<marketplace> --scope project`; см. [Enabled in project settings but not installed](https://code.claude.com/docs/ru/plugins/loading.md#enabled-in-project-settings-but-not-installed).

136* **Local scope**: плагин включен для вас только в этом репозитории. Запись идёт в `.claude/settings.local.json`.136* **Local scope**: плагин включен для вас только в этом репозитории. Запись идёт в `.claude/settings.local.json`.

137 137 

138Некоторые плагины установлены их автором на запуск в отключённом состоянии через поле [`defaultEnabled`](https://code.claude.com/docs/ru/plugins/manifest-reference#defaultenabled). Такой плагин установлен, но остаётся отключённым, пока вы не включите его с помощью `claude plugin enable <name>` в вашей оболочке или со вкладки **Installed** в `/plugin` в сессии.138Некоторые плагины установлены их автором на запуск в отключённом состоянии через поле [`defaultEnabled`](https://code.claude.com/docs/ru/plugins/manifest-reference#defaultenabled). Такой плагин установлен, но остаётся отключённым, пока вы не включите его с помощью `claude plugin enable <name>` в вашей оболочке или со вкладки **Installed** в `/plugin` в сессии.

Details

173 173 

174Чтобы отказаться от плагина, включённого проектом, на вашей машине, установите идентификатор в `false` в `.claude/settings.local.json`, который имеет более высокий приоритет, чем файл проекта.174Чтобы отказаться от плагина, включённого проектом, на вашей машине, установите идентификатор в `false` в `.claude/settings.local.json`, который имеет более высокий приоритет, чем файл проекта.

175 175 

176### Включено в каталоге `--add-dir`, но не загружается

177 

178Claude Code читает запись `enabledPlugins` со значением `true` в одном из файлов добавленного каталога, только если включены источники настроек этого файла:

179 

180* **`.claude/settings.json`**: `project`

181* **`.claude/settings.local.json`**: `project` и `local`

182 

183Проверьте, какие источники настроек загружает сессия. Они задаются с помощью [`--setting-sources`](https://code.claude.com/docs/ru/cli-reference#cli-flags). В CLI источники `user`, `project` и `local` включены по умолчанию.

184 

185Например, если вы запускаете `claude --setting-sources user --add-dir ./shared` в оболочке, Claude Code не читает ни один из файлов в `./shared`. Передайте флаг для файла, содержащего `true`:

186 

187* **`settings.json`**: `--setting-sources user,project`

188* **`settings.local.json`**: `--setting-sources user,project,local`

189 

176### Включено в параметрах проекта, но не установлено190### Включено в параметрах проекта, но не установлено

177 191 

178Когда единственный `true` плагина находится в `.claude/settings.json` проекта, Claude Code не загружает его на машину, где он не установлен, если только его запись маркетплейса не имеет [источника с относительным путём](https://code.claude.com/docs/ru/plugins/marketplace-reference.md#plugin-sources) или [каталог семян](https://code.claude.com/docs/ru/plugins/org.md#seed-containers-and-ci) уже его содержит. Вместо этого вкладка `/plugin` **Errors** показывает `Plugin "<name>" is enabled in project settings but isn't installed here`.192По умолчанию плагин, включённый только в `.claude/settings.json` вашего проекта, не загружается при запуске сессии, пока вы не установите его на своей машине. Если маркетплейс есть на вашей машине, вкладка `/plugin` **Errors** показывает [`Plugin "<name>" is enabled in project settings but isn't installed here`](https://code.claude.com/docs/ru/plugins/troubleshooting#plugin-is-enabled-in-project-settings-but-isnt-installed-here) или [`Plugin "<name>" not cached at <path>`](https://code.claude.com/docs/ru/plugins/troubleshooting#plugin-not-cached-at).

193 

194> [!NOTE]

195>

196> Если вкладка не показывает ни одного из этих сообщений, [добавьте маркетплейс](https://code.claude.com/docs/ru/plugins/install.md#add-a-marketplace) перед установкой. Найдите его источник в настройке `extraKnownMarketplaces` файла `.claude/settings.json` или спросите у сопровождающего.

197 

198Чтобы установить плагин, выполните эту команду в оболочке из каталога проекта, используя ключ плагина в `enabledPlugins`:

199 

200```shell theme={null}

201claude plugin install <name>@<marketplace> --scope project

202```

203 

204Чтобы загрузить плагин, выполните `/reload-plugins` в вашей сессии или начните новую сессию. Повторите установку в каждом из ваших клонов или используйте `--scope user`, чтобы охватить все ваши проекты.

205 

206Вы можете загрузить плагин без установки в следующих случаях:

179 207 

180Плагин с относительным путём не нуждается в записи об установке, потому что он загружается из самого маркетплейса.208* **В [каталоге семян](https://code.claude.com/docs/ru/plugins/org.md#seed-containers-and-ci)**: вам ничего не нужно запускать

209* **Указан по [относительному пути](https://code.claude.com/docs/ru/plugins/marketplace-reference.md#plugin-sources) в маркетплейсе, который вы добавили из локального пути**: вам ничего не нужно запускать, потому что плагин загружается при запуске сессии

210* **Указан по относительному пути, например `./plugins/formatter`, в `marketplace.json` добавленного вами git-маркетплейса**: выполните `/reload-plugins`, чтобы загрузить его только для текущей сессии. Чтобы загрузить его для одного [неинтерактивного запуска `-p`](https://code.claude.com/docs/ru/headless), установите [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL=1`](https://code.claude.com/docs/ru/env-vars).

181 211 

182Claude Code загружает плагин с внешним источником только когда один из этих источников устанавливает его в `true`:212Claude Code загружает плагин с внешним источником только когда один из этих источников устанавливает его в `true`:

183 213 

Details

189 189 

190### `metadata`190### `metadata`

191 191 

192Объект произвольной формы для ваших собственных данных, таких как поля каталога или прав. Claude Code не читает его. Требует Claude Code v2.1.222 или позже.192Объект произвольной формы для ваших собственных данных, таких как поля каталога или прав. Claude Code не читает его.

193 193 

194### Поля для страницы в каталоге194### Поля для страницы в каталоге

195 195 


394 394 

395Каждый путь компонента в манифесте относителен корню плагина и должен начинаться с `./`. Путь, такой как `commands/foo.md`, не проходит проверку. `skills` и `mcpServers` каждый принимают одну форму вне этого правила:395Каждый путь компонента в манифесте относителен корню плагина и должен начинаться с `./`. Путь, такой как `commands/foo.md`, не проходит проверку. `skills` и `mcpServers` каждый принимают одну форму вне этого правила:

396 396 

397* **`skills`**: также принимает `"."`. Оба `"."` и `"./"` обозначают корень плагина. До v2.1.221 `"."` не проходил проверку манифеста, поэтому используйте `"./"`, когда плагин должен загружаться на более ранних версиях397* **`skills`**: также принимает `"."`. Оба `"."` и `"./"` обозначают корень плагина

398* **`mcpServers`**: также принимает URL пакета `https://`398* **`mcpServers`**: также принимает URL пакета `https://`

399 399 

400`experimental.evals` не является путем компонента, поэтому правила этого раздела на него не распространяются, и вместо этого `claude plugin eval` проверяет значение при запуске. Оно указывает директорию внутри корня плагина, например `"quality/evals"`, с префиксом `./` или без него. Если задан массив, используется только первый элемент. О том, какие значения допустимы и что происходит с непригодным значением, см. [Использование другой директории для eval](https://code.claude.com/docs/ru/plugin-evals.md#use-a-different-eval-directory).400`experimental.evals` не является путем компонента, поэтому правила этого раздела на него не распространяются, и вместо этого `claude plugin eval` проверяет значение при запуске. Оно указывает директорию внутри корня плагина, например `"quality/evals"`, с префиксом `./` или без него. Если задан массив, используется только первый элемент. О том, какие значения допустимы и что происходит с непригодным значением, см. [Использование другой директории для eval](https://code.claude.com/docs/ru/plugin-evals.md#use-a-different-eval-directory).


403 403 

404Каждый путь компонента должен разрешаться внутри корня плагина и должен существовать. `claude plugin validate` проверяет пути под каждым ключом компонента:404Каждый путь компонента должен разрешаться внутри корня плагина и должен существовать. `claude plugin validate` проверяет пути под каждым ключом компонента:

405 405 

406* **Содержание**: путь, который разрешается вне корня плагина, не загружается, и вкладка `/plugin` **Errors** показывает `<component> path escapes plugin directory: <path>`. Путь, содержащий `..`, — обычный случай, и `claude plugin validate` сообщает об ошибке `Path contains ".." which could be a path traversal attempt`406* **Содержание**: путь, который разрешается вне корня плагина, не загружается, и вкладка `/plugin` **Errors** показывает `<component> path escapes plugin directory: <path>`. Путь, содержащий `..`, — обычный случай, и `claude plugin validate` сообщает об ошибке `Path contains ".." which could be a path traversal attempt`. Для файла `mcpServers` или `lspServers` сообщение [`path not read`](https://code.claude.com/docs/ru/errors#server-file-path-not-read) означает, что путь абсолютный или содержит `..`

407* **Существование**: путь, который не существует, не загружается, и вкладка `/plugin` **Errors** показывает `<component> path not found: <path>`. `claude plugin validate` сообщает об ошибке `Path not found`407* **Существование**: путь, который не существует, не загружается, и вкладка `/plugin` **Errors** показывает `<component> path not found: <path>`. `claude plugin validate` сообщает об ошибке `Path not found`

408 408 

409Для путей `outputStyles`, `lspServers`, `monitors` и `themes` проверка `claude plugin validate` требует Claude Code v2.1.283 или более поздней версии.409Для путей `outputStyles`, `lspServers`, `monitors` и `themes` проверка `claude plugin validate` требует Claude Code v2.1.283 или более поздней версии.

Details

94| `dependencies` | array | Плагины, которые должны быть включены, чтобы этот работал. Каждый элемент — это `"name"`, `"name@marketplace"` или объект. См. [Зависимости плагинов](https://code.claude.com/docs/ru/plugins/dependencies.md) |94| `dependencies` | array | Плагины, которые должны быть включены, чтобы этот работал. Каждый элемент — это `"name"`, `"name@marketplace"` или объект. См. [Зависимости плагинов](https://code.claude.com/docs/ru/plugins/dependencies.md) |

95| `defaultEnabled` | boolean | По умолчанию `true`. Включен ли плагин по умолчанию, когда пользователь не установил его в [`enabledPlugins`](https://code.claude.com/docs/ru/settings-reference#enabledplugins). Значение записи имеет приоритет над `plugin.json` |95| `defaultEnabled` | boolean | По умолчанию `true`. Включен ли плагин по умолчанию, когда пользователь не установил его в [`enabledPlugins`](https://code.claude.com/docs/ru/settings-reference#enabledplugins). Значение записи имеет приоритет над `plugin.json` |

96| `displayName` | string | Читаемое имя, показываемое в пользовательском интерфейсе. Когда ни запись, ни `plugin.json` плагина не устанавливают его, пользователи видят `name` плагина |96| `displayName` | string | Читаемое имя, показываемое в пользовательском интерфейсе. Когда ни запись, ни `plugin.json` плагина не устанавливают его, пользователи видят `name` плагина |

97| `metadata` | object | Свободный объект для ваших собственных полей. Claude Code не читает его. Требует Claude Code v2.1.222 или позже |97| `metadata` | object | Свободный объект для ваших собственных полей. Claude Code не читает его |

98| `headers` | object | HTTP-заголовки, которые Claude Code отправляет при загрузке [архива](#archive-plugin-source) этой записи. Заголовок, установленный здесь, заменяет заголовок с тем же именем из [`headers`](#fields-by-type) источника маркетплейса. Требует Claude Code v2.1.238 или позже |98| `headers` | object | HTTP-заголовки, которые Claude Code отправляет при загрузке [архива](#archive-plugin-source) этой записи. Заголовок, установленный здесь, заменяет заголовок с тем же именем из [`headers`](#fields-by-type) источника маркетплейса. Требует Claude Code v2.1.238 или позже |

99| `headersHelper` | string | Команда, которая выводит заголовки загрузки архива этой записи как один объект JSON для учётных данных, которые истекают. Запись также должна установить [`"strict": false`](#strict-mode). Требует Claude Code v2.1.238 или позже. См. [Аутентификация загрузок архивов](https://code.claude.com/docs/ru/plugins/host-marketplace.md#authenticate-archive-downloads) |99| `headersHelper` | string | Команда, которая выводит заголовки загрузки архива этой записи как один объект JSON для учётных данных, которые истекают. Запись также должна установить [`"strict": false`](#strict-mode). Требует Claude Code v2.1.238 или позже. См. [Аутентификация загрузок архивов](https://code.claude.com/docs/ru/plugins/host-marketplace.md#authenticate-archive-downloads) |

100 100 


142| `url` | `url`, `ref`, `sha` | Любой git-репозиторий по URL |142| `url` | `url`, `ref`, `sha` | Любой git-репозиторий по URL |

143| `git-subdir` | `url`, `path`, `ref`, `sha` | Один подкаталог git-репозитория, загруженный с помощью разреженного извлечения (sparse checkout) |143| `git-subdir` | `url`, `path`, `ref`, `sha` | Один подкаталог git-репозитория, загруженный с помощью разреженного извлечения (sparse checkout) |

144| `npm` | `package`, `version`, `registry` | Пакет из npm-реестра или ссылка на tarball, загруженные с вашим npm-клиентом и распакованные без запуска скриптов установки |144| `npm` | `package`, `version`, `registry` | Пакет из npm-реестра или ссылка на tarball, загруженные с вашим npm-клиентом и распакованные без запуска скриптов установки |

145| `archive` | `url`, `sha256` | Zip-архив через HTTPS. Требует Claude Code v2.1.224 или позже |145| `archive` | `url`, `sha256` | Zip-архив через HTTPS |

146| `command` | `command`, `timeout`, `mode` | Каталог, выведенный командой, которую Claude Code запускает на машине пользователя. Требует Claude Code v2.1.229 или позже |146| `command` | `command`, `timeout`, `mode` | Каталог, выведенный командой, которую Claude Code запускает на машине пользователя. Требует Claude Code v2.1.229 или позже |

147 147 

148Имена `url` и `github` также являются типами [источника marketplace](#marketplace-sources), где `url` означает прямую ссылку на файл `marketplace.json` вместо git-репозитория. `git` существует только как источник marketplace, и `npm` существует как оба. `git-subdir`, `archive` и `command` существуют только как источники плагинов.148Имена `url` и `github` также являются типами [источника marketplace](#marketplace-sources), где `url` означает прямую ссылку на файл `marketplace.json` вместо git-репозитория. `git` существует только как источник marketplace, и `npm` существует как оба. `git-subdir`, `archive` и `command` существуют только как источники плагинов.

Details

57* **Моды включены.** Пользователь может установить плагин, содержащий мод из любого маркетплейса, который разрешают ваши параметры плагинов, или загрузить его из каталога с помощью `--plugin-dir`.57* **Моды включены.** Пользователь может установить плагин, содержащий мод из любого маркетплейса, который разрешают ваши параметры плагинов, или загрузить его из каталога с помощью `--plugin-dir`.

58* **Встроенный страж запускается первым.** Claude Code загружает встроенный мод с именем `sec-default@builtin` перед каждым модом, установленным пользователем. Пользователи не могут его отключить. `/plugin` и отладочный лог указывают его как `cc-plugin-sec-default`. Страж загружается, когда верно одно из следующих условий:58* **Встроенный страж запускается первым.** Claude Code загружает встроенный мод с именем `sec-default@builtin` перед каждым модом, установленным пользователем. Пользователи не могут его отключить. `/plugin` и отладочный лог указывают его как `cc-plugin-sec-default`. Страж загружается, когда верно одно из следующих условий:

59 59 

60 * На машине есть управляемые настройки60 * На машине есть управляемые настройки или файл [`managed-mcp.json`](https://code.claude.com/docs/ru/managed-mcp#deploy-managed-mcp-json)

61 * Сессия использует [учётные данные `/login`](https://code.claude.com/docs/ru/authentication#authentication-precedence) для плана Team или Enterprise61 * Сессия использует [учётные данные `/login`](https://code.claude.com/docs/ru/authentication#authentication-precedence) для плана Team или Enterprise

62 62 

63 Пользователь, который аутентифицируется с помощью API-ключа или через Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, получает стража только на машине с управляемыми настройками. Сессия, работающая на долгоживущем [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/ru/authentication#generate-a-long-lived-token), тоже не считается таким входом, даже если на машине сохранён вход с планом Team или Enterprise.63 Пользователь с API-ключом или работающий через Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry получает стража только на машине с управляемыми настройками или `managed-mcp.json`. Сессия, работающая на долгоживущем [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/ru/authentication#generate-a-long-lived-token), тоже не считается таким входом, даже если на машине сохранён вход с планом Team или Enterprise.

64* **Защита защищает то, что вы управляете.** Мод пользователя не может изменить то, что получают или решают ваши управляемые hooks, системный запрос, ваши управляемые `CLAUDE.md` и другие управляемые инструкции, то, что любой мод читает как параметры, или инструменты и описания ваших управляемых MCP серверов.64* **Защита защищает то, что вы управляете.** Мод пользователя не может изменить то, что получают или решают ваши управляемые hooks, системный запрос, ваши управляемые `CLAUDE.md` и другие управляемые инструкции, то, что любой мод читает как параметры, или инструменты и описания ваших управляемых MCP серверов.

65* **За пределами того, чем вы управляете, мод пользователя действует от имени этого пользователя.** Мод сохраняет разрешения этого пользователя: он по-прежнему может читать и записывать файлы, запускать процессы и выполнять сетевые запросы. Он также может переписывать вызовы инструментов и промпты, отклонять вызов инструмента и рисовать в интерфейсе.65* **За пределами того, чем вы управляете, мод пользователя действует от имени этого пользователя.** Мод сохраняет разрешения этого пользователя: он по-прежнему может читать и записывать файлы, запускать процессы и выполнять сетевые запросы. Он также может переписывать вызовы инструментов и промпты, отклонять вызов инструмента и рисовать в интерфейсе.

66* **Правила разрешений и хуки `PreToolUse` имеют приоритет над модом пользователя.** Когда страж загружен, по умолчанию мод пользователя не может одобрить вызов, который отклоняет правило `deny` или для которого правило `ask` запрашивает подтверждение, независимо от того, в каком файле настроек находится правило. Мод также не может одобрить вызов, заблокированный любым хуком `PreToolUse`.66* **Правила разрешений и хуки `PreToolUse` имеют приоритет над модом пользователя.** Когда страж загружен, по умолчанию мод пользователя не может одобрить вызов, который отклоняет правило `deny` или для которого правило `ask` запрашивает подтверждение, независимо от того, в каком файле настроек находится правило. Мод также не может одобрить вызов, заблокированный любым хуком `PreToolUse`.


76 76 

77* **Хуки настроек продолжают работать.** Хуки команд, HTTP, промптов и агентов в файлах настроек и в `hooks/hooks.json` плагинов работают как раньше, наряду с модами.77* **Хуки настроек продолжают работать.** Хуки команд, HTTP, промптов и агентов в файлах настроек и в `hooks/hooks.json` плагинов работают как раньше, наряду с модами.

78* **Правила отказа имеют приоритет, где загружается защита.** Мод пользователя не может одобрить вызов, который правило `deny` отказывает, если вы не установите [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard).78* **Правила отказа имеют приоритет, где загружается защита.** Мод пользователя не может одобрить вызов, который правило `deny` отказывает, если вы не установите [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard).

79* **Управляемые хуки запускаются первыми.** Хук `PreToolUse` в управляемых настройках запускается перед хуком [`tool.call`](https://code.claude.com/docs/ru/plugins/mods/reference#tools) любого мода, и когда этот управляемый хук блокирует вызов инструмента, ни один хук `tool.call` мода для этого вызова не запускается. Если вызов продолжается и мод переписывает его, ваши управляемые хуки запускаются снова на переписанном вызове, поэтому они всё ещё могут его заблокировать.79* **Управляемые хуки запускаются первыми.** Хук `PreToolUse` в управляемых настройках запускается перед хуком [`tool.call`](https://code.claude.com/docs/ru/plugins/mods/reference#tools) любого мода, и когда этот управляемый хук блокирует вызов инструмента, ни один хук `tool.call` мода для этого вызова не запускается. Если вызов продолжается и мод переписывает его, ваши управляемые хуки запускаются снова на переписанном вызове, поэтому по умолчанию они всё ещё могут его заблокировать.

80 80 

81 Хуки `PreToolUse` из других файлов настроек и из плагинов запускаются после последнего мода. Если мод сам отвечает на вызов инструмента, инструмент не запускается, как и эти хуки. См. [Порядок, в котором работают моды](https://code.claude.com/docs/ru/plugins/mods/events.md#the-order-mods-run-in).81 Хуки `PreToolUse` из других файлов настроек и из плагинов запускаются после последнего мода. Если мод сам отвечает на вызов инструмента, инструмент не запускается, как и эти хуки. См. [Порядок, в котором работают моды](https://code.claude.com/docs/ru/plugins/mods/events.md#the-order-mods-run-in).

82* **Сетевая политика охватывает `$.http.fetch`.**82* **Сетевая политика охватывает `$.http.fetch`.**


260| Параметр | Не задан | `true` |260| Параметр | Не задан | `true` |

261| :- | :- | :- |261| :- | :- | :- |

262| `allowManagedModsOnly` | Собственные моды пользователей выполняются | Только [моды вашей организации](#install-your-organizations-mods) и моды, встроенные в Claude Code, выполняют свои хуки. Claude Code отклоняет все остальные моды, включая мод, установленный пользователем или указанный с помощью `--plugin-dir`. |262| `allowManagedModsOnly` | Собственные моды пользователей выполняются | Только [моды вашей организации](#install-your-organizations-mods) и моды, встроенные в Claude Code, выполняют свои хуки. Claude Code отклоняет все остальные моды, включая мод, установленный пользователем или указанный с помощью `--plugin-dir`. |

263| `allowModsToOverrideDenyRules` | Правила запрета имеют приоритет над модами пользователей | Мод пользователя, который одобряет вызовы инструментов, может одобрить вызов, отклоняемый правилом `deny` |263| `allowModsToOverrideDenyRules` | Правила запрета имеют приоритет над модами пользователей | Мод пользователя, который одобряет вызовы инструментов, может одобрить вызов в обход большинства [результатов, которые по умолчанию остаются в силе](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods), включая правило `deny` |

264 264 

265Эти правила определяют, вступает ли параметр в силу:265Эти правила определяют, вступает ли параметр в силу:

266 266 


350 350 

351* **Список заменяет значение по умолчанию**: когда вы задаете `prependPlugins` в управляемых настройках, укажите в нем `sec-default@builtin`, чтобы сохранить встроенного стража. Страж встроен и не требует записи `enabledPlugins`.351* **Список заменяет значение по умолчанию**: когда вы задаете `prependPlugins` в управляемых настройках, укажите в нем `sec-default@builtin`, чтобы сохранить встроенного стража. Страж встроен и не требует записи `enabledPlugins`.

352* **Ваши собственные идентификаторы должны считаться вашими**: в управляемых настройках Claude Code пропускает идентификатор, чей плагин не соответствует условиям для мода организации352* **Ваши собственные идентификаторы должны считаться вашими**: в управляемых настройках Claude Code пропускает идентификатор, чей плагин не соответствует условиям для мода организации

353* **Репозитории не могут их задавать**: Claude Code читает обе настройки из управляемых настроек и никогда из файла настроек репозитория. Пользователь может задать их в `~/.claude/settings.json`, чтобы упорядочить только свои моды на машине без управляемых настроек, и только если учётные данные сессии не получены через `/login` Team или Enterprise. В любом другом месте Claude Code игнорирует оба ключа в пользовательских настройках. Список там не добавляет и не удаляет встроенного стража.353* **Репозитории не могут задавать ни один из списков**: Claude Code игнорирует оба в файле настроек репозитория, поэтому задавайте их в управляемых настройках.

354* **Пользователь может задать их, чтобы упорядочить свои моды**: в `~/.claude/settings.json`, только на машине без управляемых настроек или файла `managed-mcp.json` и только если учётные данные сессии получены не через `/login` Team или Enterprise. В любом другом месте Claude Code игнорирует оба ключа в пользовательских настройках. Список там не добавляет и не удаляет встроенного стража.

354 355 

355### Обеспечение политики с помощью собственного мода356### Обеспечение политики с помощью собственного мода

356 357 

Details

21 21 

22Опишите нужный вам мод в интерактивном сеансе Claude Code, и Claude напишет его. Claude работает из встроенного [skill](https://code.claude.com/docs/ru/skills.md) с именем `plugin-authoring`, который сообщает ему, где написать мод, какие события и методы есть в вашей версии, и как загружается мод. Claude может загрузить skill, когда вы попросите мод, или вы можете загрузить его сами, выполнив `/plugin-authoring` в приглашении Claude Code.22Опишите нужный вам мод в интерактивном сеансе Claude Code, и Claude напишет его. Claude работает из встроенного [skill](https://code.claude.com/docs/ru/skills.md) с именем `plugin-authoring`, который сообщает ему, где написать мод, какие события и методы есть в вашей версии, и как загружается мод. Claude может загрузить skill, когда вы попросите мод, или вы можете загрузить его сами, выполнив `/plugin-authoring` в приглашении Claude Code.

23 23 

24Мод запускается после того, как вы его одобрите, кроме [сеансов, где мод, написанный Claude, не может загрузиться](#sessions-that-skip-the-approval).24В [режимах разрешений](https://code.claude.com/docs/ru/permission-modes.md) `auto` и `bypassPermissions` мод может запуститься по завершении хода. В остальных случаях он запускается после того, как вы его одобрите, кроме [сессий, где мод, написанный Claude, не может загрузиться](#sessions-that-skip-the-approval).

25 25 

26**1. Опишите мод**26**1. Опишите мод**

27 27 


33 33 

34**2. Одобрите мод**34**2. Одобрите мод**

35 35 

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

37 37 

38Выберите один из этих ответов:38Выберите один из этих ответов:

39 39 

40* **Enable for this session**: моды в папке модов сеанса загружаются при завершении хода и перезагружаются в конце каждого хода, который их изменяет. Ваш ответ действует для сеанса, включая после его возобновления.40* **Turn them on**: моды в папке модов сессии загружаются при завершении хода и перезагружаются в конце каждого хода, который их изменяет. Ваш ответ действует для сессии, в том числе после её возобновления.

41* **Not now**: ничего не загружается пока. Файлы остаются там, где их написал Claude, и моды загружаются при следующем запуске этого сеанса. Чтобы мод никогда не загружался, удалите его каталог.41* **Not now**: пока ничего не загружается. Файлы остаются там, где их написал Claude, и моды загружаются при следующем запуске этой сессии. Чтобы мод никогда не загружался, удалите его каталог.

42 42 

43**3. Проверьте, что мод загрузился**43**3. Проверьте, что мод загрузился**

44 44 


59 59 

60### Сеансы, где мод, написанный Claude, не может загрузиться60### Сеансы, где мод, написанный Claude, не может загрузиться

61 61 

62Мод, написанный Claude, загружается только после того, как вы его одобрите, в доверенной рабочей области, где разрешено запускать моды. В этих сеансах он не загружается:62Мод, написанный Claude, загружается в доверенном рабочем пространстве, где разрешено запускать моды, после того как вы одобрите его в режимах, которые запрашивают подтверждение. В этих сессиях он не загружается:

63 63 

64* **Никого нет, чтобы одобрить**: сеанс не может показать вам приглашение, как в запуске `claude -p` или в режиме [`dontAsk`](https://code.claude.com/docs/ru/permission-modes)64* **Никого нет, чтобы одобрить**: сессия не может показать вам запрос, как при запуске `claude -p` вне режимов `auto` и `bypassPermissions` или в [режиме `dontAsk`](https://code.claude.com/docs/ru/permission-modes)

65* **Рабочая область не доверена**: вы не приняли приглашение доверия для каталога65* **Рабочая область не доверена**: вы не приняли приглашение доверия для каталога

66* **Моды отключены**: вы запустили с `--safe-mode` или `--bare`, вы задали `disableAllHooks`, или [управляемые настройки](https://code.claude.com/docs/ru/plugins/mods/admin.md#choose-how-much-to-allow) вашей организации это блокируют66* **Моды отключены**: вы запустили с `--safe-mode` или `--bare`, вы задали `disableAllHooks`, или [управляемые настройки](https://code.claude.com/docs/ru/plugins/mods/admin.md#choose-how-much-to-allow) вашей организации это блокируют

67 67 

Details

328 328 

329Проверьте, какие моды получают это событие, и свою версию Claude Code:329Проверьте, какие моды получают это событие, и свою версию Claude Code:

330 330 

331* **Встроенный страж**: при наличии управляемых настроек или когда учётными данными сессии служит [`/login`](https://code.claude.com/docs/ru/authentication#authentication-precedence) Team или Enterprise, [встроенный страж](https://code.claude.com/docs/ru/plugins/mods/admin.md#know-what-happens-by-default) может пропускать этот хук в моде, который вы устанавливаете или загружаете с помощью `--plugin-dir`. Чтобы проверить это, найдите в [отладочном логе](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#read-the-debug-log) `settings.read bypassed by cc-plugin-sec-default`. Если строка с этим текстом называет ваш мод, попросите администратора вашей организации [установить мод как один из модов организации](https://code.claude.com/docs/ru/plugins/mods/admin.md#install-your-organizations-mods).331* **Встроенный страж**: там, где загружается [встроенный страж](https://code.claude.com/docs/ru/plugins/mods/admin.md#know-what-happens-by-default), он может пропускать этот хук в моде, который вы устанавливаете или загружаете с помощью `--plugin-dir`. Чтобы проверить это, найдите в [отладочном логе](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#read-the-debug-log) `settings.read bypassed by cc-plugin-sec-default`. Если строка с этим текстом называет ваш мод, попросите администратора вашей организации [установить мод как один из модов организации](https://code.claude.com/docs/ru/plugins/mods/admin.md#install-your-organizations-mods).

332* **Версия**: для срабатывания события при собственном чтении Claude Code и для поля `e.layers` требуется Claude Code v2.1.304 или новее.332* **Версия**: для срабатывания события при собственном чтении Claude Code и для поля `e.layers` требуется Claude Code v2.1.304 или новее.

333 333 

334#### Что получает хук `settings.read`334#### Что получает хук `settings.read`

Details

78 78 

79Моды не изолируются в песочнице. Если вы включите [изоляцию в песочнице](https://code.claude.com/docs/ru/sandboxing.md), песочница изолирует команды Bash, которые запускает Claude, а процесс, запущенный модом, работает вне её.79Моды не изолируются в песочнице. Если вы включите [изоляцию в песочнице](https://code.claude.com/docs/ru/sandboxing.md), песочница изолирует команды Bash, которые запускает Claude, а процесс, запущенный модом, работает вне её.

80 80 

81Если действуют [управляемые настройки](https://code.claude.com/docs/ru/settings.md#check-what-your-organization-enforces) или учётными данными сессии служит [`/login`](https://code.claude.com/docs/ru/authentication#authentication-precedence) с планом Team или Enterprise, по умолчанию подтверждение мода не позволяет вызову обойти ваши правила `ask` или хуки `PreToolUse`. Если нет ни того, ни другого, мод может подтвердить вызов, для которого правило `ask` запросило бы подтверждение, или который заблокировал ваш хук `PreToolUse`. Чтобы узнать, когда мод может также подтвердить вызов, в котором отказывает правило `deny`, см. [Расширение разрешений с помощью хуков](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods).81Мод может подтвердить [многие вызовы инструментов](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods), которые остановили бы ваши правила `deny` или `ask` или ваши хуки `PreToolUse`, если этому не препятствует [встроенный страж](https://code.claude.com/docs/ru/plugins/mods/admin.md#know-what-happens-by-default). Когда встроенный страж загружен, по умолчанию пользовательский мод не может этого сделать. В локальной сессии терминала наличие `cc-plugin-sec-default` на вкладке **Installed** в `/plugin` означает, что страж загружен.

82 82 

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

84 84 

Details

39| `next.origin` | `{ plugin, tier }` того, кто инициировал событие. Сам Claude Code — это `{ plugin: 'engine', tier: 'core' }`. `tier` мода — это его группа приоритета в [порядке запуска модов](https://code.claude.com/docs/ru/plugins/mods/events.md#the-order-mods-run-in): `prepend`, `user`, `append` или `builtin`. |39| `next.origin` | `{ plugin, tier }` того, кто инициировал событие. Сам Claude Code — это `{ plugin: 'engine', tier: 'core' }`. `tier` мода — это его группа приоритета в [порядке запуска модов](https://code.claude.com/docs/ru/plugins/mods/events.md#the-order-mods-run-in): `prepend`, `user`, `append` или `builtin`. |

40| `next.budget` | Ограничение времени хука в миллисекундах: `next.budget.ms` — всё ограничение, а `next.budget.remainingMs` — оставшееся на данный момент время |40| `next.budget` | Ограничение времени хука в миллисекундах: `next.budget.ms` — всё ограничение, а `next.budget.remainingMs` — оставшееся на данный момент время |

41| `next.to(e, tier)` | Переходит к более позднему уровню: `append`, `builtin` или `core`. `next.to(e, 'append')` пропускает моды, установленные пользователем. Вызвать его может только мод из `prependPlugins` или `appendPlugins`. |41| `next.to(e, tier)` | Переходит к более позднему уровню: `append`, `builtin` или `core`. `next.to(e, 'append')` пропускает моды, установленные пользователем. Вызвать его может только мод из `prependPlugins` или `appendPlugins`. |

42| `next.error` | Только в обработчике `.catch`. `kind` — это `throw` или `timeout`, если хук завершился сбоем, а `message` — текст ошибки. `kind` равно `re-entry`, если хук был пропущен, потому что событие возникло внутри вызова API модов, сделанного этим хуком или кодом вашего мода вне его хуков. Для `re-entry` требуется Claude Code v2.1.292 или новее. |42| `next.error` | Только в обработчике `.catch`. `kind` — это `throw` или `timeout`, а `message` — текст ошибки. |

43| `next.error.cause` | Задаётся, только когда `kind` равно `re-entry`. `rewritten`, если хук `tool.call` или [`PreToolUse`](https://code.claude.com/docs/ru/hooks#pretooluse) изменил вызов API модов, из которого возникло событие, или хук `agent.spawn` изменил агента, запущенного этим вызовом. `lent`, если это событие инициировал метод, который другой мод добавляет в API модов, если только не применимо также `rewritten`. Для `lent` требуется Claude Code v2.1.292 или новее, а для `rewritten` — v2.1.300 или новее. |

44| `next.called` | Только в обработчике `.catch`. `true`, если хук вызвал `next`. |43| `next.called` | Только в обработчике `.catch`. `true`, если хук вызвал `next`. |

45 44 

46## События45## События


252| [`AbovePrompt`](https://code.claude.com/docs/ru/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Один экземпляр | Terminal, Desktop |251| [`AbovePrompt`](https://code.claude.com/docs/ru/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Один экземпляр | Terminal, Desktop |

253| [`Placed`](https://code.claude.com/docs/ru/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | `requestId`, который вернул `$.ui.place` | Terminal |252| [`Placed`](https://code.claude.com/docs/ru/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | `requestId`, который вернул `$.ui.place` | Terminal |

254| [`Backdrop`](https://code.claude.com/docs/ru/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `id`, `plugin`, `glass`, `colorScheme` | `backdrop` | Интерфейсы `desktop` и `mobile`. Ваш хук запускается, когда приложение Desktop или мобильное приложение запрашивает отрисовку фона. |253| [`Backdrop`](https://code.claude.com/docs/ru/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `id`, `plugin`, `glass`, `colorScheme` | `backdrop` | Интерфейсы `desktop` и `mobile`. Ваш хук запускается, когда приложение Desktop или мобильное приложение запрашивает отрисовку фона. |

255| `UserMessage` | `text`, `origin`, `isExpanded` и `task` или `from` в зависимости от источника | id сообщения | Terminal, Desktop, VS Code |254| `UserMessage` | `text`, `origin`, `isExpanded` и `task` или `from` в зависимости от источника | id отрисованной строки | Terminal, Desktop, VS Code |

256| `AssistantMessage` | Текст ответа | id сообщения | Terminal, Desktop, VS Code |255| `AssistantMessage` | Текст ответа | id отрисованной строки | Terminal, Desktop, VS Code |

257| `ToolUse`, `ToolResult`, `ToolGroup` | Имя, входные данные и результат инструмента | id вызова инструмента | Terminal, Desktop, VS Code |256| `ToolUse`, `ToolResult`, `ToolGroup` | Имя, входные данные и результат инструмента | id вызова инструмента | Terminal, Desktop, VS Code |

258| `CommandOutput` | `command`, `text` | id сообщения | Terminal, Desktop |257| `CommandOutput` | `command`, `text` | id отрисованной строки | Terminal, Desktop |

259| [`AskUserQuestion`](https://code.claude.com/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) | Вопрос и варианты | id вызова инструмента | Terminal, Desktop, VS Code |258| [`AskUserQuestion`](https://code.claude.com/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) | Вопрос и варианты | id вызова инструмента | Terminal, Desktop, VS Code |

260| `ToolProgress` | `kind` | id вызова инструмента | Terminal |259| `ToolProgress` | `kind` | id вызова инструмента | Terminal |

261| [`Spinner`](https://code.claude.com/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | id агента | Terminal, Desktop, VS Code |260| [`Spinner`](https://code.claude.com/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | id агента | Terminal, Desktop, VS Code |

262| `TurnDuration` | `word`, `durationMs` | id сообщения | Terminal |261| `TurnDuration` | `word`, `durationMs` | id отрисованной строки | Terminal |

263| `InfoNotice` | `text`, `command` | id сообщения | Terminal |262| `InfoNotice` | `text`, `command` | `text` уведомления с префиксом `notice:` | Terminal |

264| `SessionMode` | `modes` | Один экземпляр | Terminal, Desktop |263| `SessionMode` | `modes` | Один экземпляр | Terminal, Desktop |

265| `PromptHint` | `isDraft`, `isWorking`, `hint` | Один экземпляр | Terminal, Desktop |264| `PromptHint` | `isDraft`, `isWorking`, `hint` | Один экземпляр | Terminal, Desktop |

266 265 


424| :- | :- | :- |423| :- | :- | :- |

425| `CLAUDE_CODE_PLUGIN_DIRS` | Окружение или `env` в `~/.claude/settings.json` | Каталоги плагинов для загрузки так же, как это делает `--plugin-dir`, — для приложений, которым нельзя передать флаг. Абсолютные пути, разделённые `:`, или `;` в Windows. |424| `CLAUDE_CODE_PLUGIN_DIRS` | Окружение или `env` в `~/.claude/settings.json` | Каталоги плагинов для загрузки так же, как это делает `--plugin-dir`, — для приложений, которым нельзя передать флаг. Абсолютные пути, разделённые `:`, или `;` в Windows. |

426| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Окружение | `1` заставляет долго работающую неинтерактивную сессию перезагружать моды из `--plugin-dir` при сохранении |425| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Окружение | `1` заставляет долго работающую неинтерактивную сессию перезагружать моды из `--plugin-dir` при сохранении |

427| `prependPlugins`, `appendPlugins` | Управляемые настройки. Пользовательские настройки — только на машине без управляемых настроек, в сессии, учётные данные которой получены не через `/login` Team или Enterprise. | Списки id плагинов, например `acme-guard@acme-tools`. Моды из `prependPlugins` выполняются перед каждым модом, установленным пользователем, а моды из `appendPlugins` — после, в указанном порядке. См. [Порядок запуска модов](https://code.claude.com/docs/ru/plugins/mods/events.md#the-order-mods-run-in). |426| `prependPlugins`, `appendPlugins` | Управляемые настройки. Пользовательские настройки — только на машине без управляемых настроек и без файла [`managed-mcp.json`](https://code.claude.com/docs/ru/managed-mcp#deploy-managed-mcp-json), в сессии, учётные данные которой получены не через `/login` Team или Enterprise. | Списки id плагинов, например `acme-guard@acme-tools`. Моды из `prependPlugins` выполняются перед каждым модом, установленным пользователем, а моды из `appendPlugins` — после, в указанном порядке. См. [Порядок запуска модов](https://code.claude.com/docs/ru/plugins/mods/events.md#the-order-mods-run-in). |

428| `allowManagedModsOnly` | Управляемые настройки, как [опция встроенного стража](https://code.claude.com/docs/ru/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Свои хуки запускают только моды, которые [считаются модами вашей организации](https://code.claude.com/docs/ru/plugins/mods/admin.md#install-your-organizations-mods), и моды, встроенные в Claude Code. Хуки настроек пользователей продолжают работать. |427| `allowManagedModsOnly` | Управляемые настройки, как [опция встроенного стража](https://code.claude.com/docs/ru/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Свои хуки запускают только моды, которые [считаются модами вашей организации](https://code.claude.com/docs/ru/plugins/mods/admin.md#install-your-organizations-mods), и моды, встроенные в Claude Code. Хуки настроек пользователей продолжают работать. |

429| `allowModsToOverrideDenyRules` | Управляемые настройки, как [опция встроенного стража](https://code.claude.com/docs/ru/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Позволяет моду, установленному пользователем, одобрить вызов инструмента, который отклоняет правило `deny` |428| `allowModsToOverrideDenyRules` | Управляемые настройки, как [опция встроенного стража](https://code.claude.com/docs/ru/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Позволяет моду, установленному пользователем, одобрить вызов инструмента в обход большинства [исходов, которые по умолчанию остаются в силе](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods), включая правило `deny` |

430| `allowManagedHooksOnly` | Управляемые настройки | Блокирует хуки и установленные моды, не принадлежащие вашей организации. См. [что продолжает работать](https://code.claude.com/docs/ru/settings-reference.md#what-runs-under-allowmanagedhooksonly). |429| `allowManagedHooksOnly` | Управляемые настройки | Блокирует хуки и установленные моды, не принадлежащие вашей организации. См. [что продолжает работать](https://code.claude.com/docs/ru/settings-reference.md#what-runs-under-allowmanagedhooksonly). |

431| `disableAllHooks` | Любой файл настроек | В управляемых настройках не выполняется ни один мод или хук из установленного плагина. В ваших собственных настройках то, чем управляет ваша организация, продолжает работать. См. [`disableAllHooks`](https://code.claude.com/docs/ru/settings-reference#disableallhooks). |430| `disableAllHooks` | Любой файл настроек | В управляемых настройках не выполняется ни один мод или хук из установленного плагина. В ваших собственных настройках то, чем управляет ваша организация, продолжает работать. См. [`disableAllHooks`](https://code.claude.com/docs/ru/settings-reference#disableallhooks). |

432| `disableSideloadFlags` | Управляемые настройки | Отклоняет `--plugin-dir` и `--plugin-url` при запуске |431| `disableSideloadFlags` | Управляемые настройки | Отклоняет `--plugin-dir` и `--plugin-url` при запуске |

433| `pluginConfigs` | Пользовательские или управляемые настройки | Содержит значения `userConfig` для мода с ключом по id плагина, например `acme-guard@acme-tools`, или по его имени и `@inline`, например `first-mod@inline`, для мода, загруженного с `--plugin-dir` |432| `pluginConfigs` | Пользовательские или управляемые настройки | Содержит значения `userConfig` для мода с ключом по id плагина, например `acme-guard@acme-tools`, или по его имени и `@inline`, например `first-mod@inline`, для мода, загруженного с `--plugin-dir` |

434 433 

435`sec-default@builtin` — это страж, встроенный в Claude Code, который отображается как `cc-plugin-sec-default` в `/plugin` и в отладочном логе. Он загружается перед каждым модом, установленным человеком, на машине с управляемыми настройками или в сессии, учётные данные которой получены через [`/login`](https://code.claude.com/docs/ru/authentication#authentication-precedence) Team или Enterprise. Если задан управляемый `prependPlugins`, страж загружается, только если этот список его называет, на указанной позиции.434`sec-default@builtin` — это страж, встроенный в Claude Code, который отображается как `cc-plugin-sec-default` в `/plugin` и в отладочном логе. [Там, где он загружается](https://code.claude.com/docs/ru/plugins/mods/admin.md#know-what-happens-by-default), он выполняется перед каждым модом, установленным человеком. Если задан управляемый `prependPlugins`, страж загружается, только если этот список его называет, на указанной позиции.

436 435 

437Его исходный код находится в [каталоге `mods/sec-default` репозитория Claude Code](https://github.com/anthropics/claude-code/tree/main/mods/sec-default).436Его исходный код находится в [каталоге `mods/sec-default` репозитория Claude Code](https://github.com/anthropics/claude-code/tree/main/mods/sec-default).

438 437 

Details

14 14 

15Когда модуль не загружается, hook пропускается или другой мод отказывает вашему, Claude Code пишет одну строку, которая называет ваш мод. Где вы читаете эту строку, зависит от сеанса:15Когда модуль не загружается, hook пропускается или другой мод отказывает вашему, Claude Code пишет одну строку, которая называет ваш мод. Где вы читаете эту строку, зависит от сеанса:

16 16 

17* **Сеанс, который горячо перезагружает директорию плагина**: тусклая строка в стенограмме. Это интерактивный сеанс, который вы запустили с `--plugin-dir`, или сеанс, где вы [включили горячую перезагрузку](https://code.claude.com/docs/ru/plugins/mods/create.md#ask-claude-for-a-mod) для модов, которые написал Claude.17* **Сессия, которая горячо перезагружает директорию плагина**: тусклая строка в транскрипте. Это интерактивная сессия, которую вы запустили с `--plugin-dir`, или сессия, где [включена горячая перезагрузка](https://code.claude.com/docs/ru/plugins/mods/create.md#ask-claude-for-a-mod) для модов, которые написал Claude.

18* **Любой другой интерактивный сеанс, например тот, который запускает мод, установленный вами из маркетплейса**: [журнал отладки](#read-the-debug-log) только. Чтобы получить его, запустите сеанс с `claude --debug`.18* **Любой другой интерактивный сеанс, например тот, который запускает мод, установленный вами из маркетплейса**: [журнал отладки](#read-the-debug-log) только. Чтобы получить его, запустите сеанс с `claude --debug`.

19* **Запуск `claude -p` с `--plugin-dir`**: stderr в формате вывода текста по умолчанию. Отказ другого мода идет только в журнал отладки.19* **Запуск `claude -p` с `--plugin-dir`**: stderr в формате вывода текста по умолчанию. Отказ другого мода идет только в журнал отладки.

20 20 


68 68 

69### Сообщения от встроенной защиты69### Сообщения от встроенной защиты

70 70 

71На машине с управляемыми настройками или в сессии, учётные данные которой получены через `/login` с Team или Enterprise, [встроенный страж](https://code.claude.com/docs/ru/plugins/mods/admin.md#know-what-happens-by-default) может отказать моду или одному из его ответов. Каждое сообщение называет опцию, которую администратор вашей организации устанавливает для изменения правила.71Там, где загружается [встроенный страж](https://code.claude.com/docs/ru/plugins/mods/admin.md#know-what-happens-by-default), он может отказать моду или одному из его ответов. Каждое сообщение называет опцию, которую администратор вашей организации устанавливает для изменения правила.

72 72 

73| Сообщение содержит | Что это означает | Где оно появляется |73| Сообщение содержит | Что это означает | Где оно появляется |

74| :- | :- | :- |74| :- | :- | :- |

plugins/org.md +1 −1

Details

89* **Interactive sessions**: Claude Code регистрирует marketplace только после того, как участник примет [диалог доверия рабочей области](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder) для этой папки.89* **Interactive sessions**: Claude Code регистрирует marketplace только после того, как участник примет [диалог доверия рабочей области](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder) для этой папки.

90* **[Non-interactive `-p` runs](https://code.claude.com/docs/ru/headless)**: записи применяются только в папке, доверие которой пользователь уже принял интерактивно, или чей флаг `hasTrustDialogAccepted` вы установили в `~/.claude.json`.90* **[Non-interactive `-p` runs](https://code.claude.com/docs/ru/headless)**: записи применяются только в папке, доверие которой пользователь уже принял интерактивно, или чей флаг `hasTrustDialogAccepted` вы установили в `~/.claude.json`.

91 91 

92Плагин, который marketplace перечисляет по относительному пути, загружается из копии marketplace после того, как записи `extraKnownMarketplaces` репозитория применяются. Плагин, чья запись marketplace указывает на внешний источник вместо этого, например собственный репозиторий GitHub плагина, не устанавливается только из параметров репозитория. Каждый участник видит `Plugin "<name>" is enabled in project settings but isn't installed` до тех пор, пока они не запустят `claude plugin install <name>@<marketplace> --scope project`, как описано в [Установка плагинов](https://code.claude.com/docs/ru/plugins/install.md).92Задание `enabledPlugins` в репозитории не устанавливает плагин. После регистрации маркетплейса попросите каждого участника выполнить `claude plugin install <name>@<marketplace> --scope project`. Пока они этого не сделают, на вкладке **Errors** в `/plugin` может отображаться `Plugin "<name>" is enabled in project settings but isn't installed here` или [`not cached`](https://code.claude.com/docs/ru/plugins/troubleshooting#plugin-not-cached-at). Участникам не нужна установка, если локальный маркетплейс типа `directory` или `file` указывает плагин с [`source` в виде относительного пути](https://code.claude.com/docs/ru/plugins/marketplace-reference#plugin-sources).

93 93 

94Если вы используете локальный источник `directory` или `file` с относительным путем, путь разрешается относительно основного checkout вашего репозитория. Когда вы запускаете Claude Code из git worktree, путь все еще указывает на основной checkout, поэтому все worktrees совместно используют одно и то же местоположение marketplace.94Если вы используете локальный источник `directory` или `file` с относительным путем, путь разрешается относительно основного checkout вашего репозитория. Когда вы запускаете Claude Code из git worktree, путь все еще указывает на основной checkout, поэтому все worktrees совместно используют одно и то же местоположение marketplace.

95 95 

Details

322 322 

323### Обновления маркетплейса продолжают не работать в автономном режиме323### Обновления маркетплейса продолжают не работать в автономном режиме

324 324 

325Вы работаете в среде, где хост git маркетплейса недоступен, и каждый сеанс повторяет неудачное обновление в фоне. Ваша существующая копия маркетплейса остаётся на месте, и запуск не задерживается.325Вы работаете в среде, где хост git маркетплейса недоступен, и каждая сессия повторяет неудачное обновление в фоне. Ваша существующая копия маркетплейса остаётся на месте.

326 326 

327Каждый сеанс для маркетплейса с [включённым автообновлением](https://code.claude.com/docs/ru/plugins/loading.md#which-marketplaces-and-plugins-auto-update) Claude Code проверяет хост git маркетплейса на предмет новых коммитов в фоне. Когда эта проверка не может достичь хоста, она пытается клонировать маркетплейс снова, и в автономном режиме это клонирование также не удаётся.327Каждый сеанс для маркетплейса с [включённым автообновлением](https://code.claude.com/docs/ru/plugins/loading.md#which-marketplaces-and-plugins-auto-update) Claude Code проверяет хост git маркетплейса на предмет новых коммитов в фоне. Когда эта проверка не может достичь хоста, она пытается клонировать маркетплейс снова, и в автономном режиме это клонирование также не удаётся.

328 328 


675 675 

676### `Plugin "<name>" not cached at <path>`676### `Plugin "<name>" not cached at <path>`

677 677 

678Вкладка **Errors** показывает эту строку с руководством `Run /plugin to refresh the plugin cache`. Claude Code имеет запись об установке плагина, но каталог, на который указывает запись, отсутствует, например, после очистки кэша.678Вкладка **Errors** показывает эту строку с рекомендацией `Run /plugin to refresh the plugin cache`. Это означает, что Claude Code не нашёл пригодной копии плагина. Например, вы очистили кэш, и каталог, на который указывает запись об установке, отсутствует. Или вы открыли репозиторий, настройки которого включают плагин, но не установили его.

679 679 

680Переустановите плагин из вашей оболочки. `claude plugin install <name>@<marketplace>` повторно загружает плагин, чей каталог установки отсутствует, даже если его запись существует:680Установите плагин из вашей оболочки. Если вы открыли репозиторий, `.claude/settings.json` которого включает плагин, выполните эту команду из проекта с ключом плагина из `enabledPlugins`, как описано в разделе [Включён в настройках проекта, но не установлен](https://code.claude.com/docs/ru/plugins/loading.md#enabled-in-project-settings-but-not-installed):

681 

682```shell theme={null}

683claude plugin install <name>@<marketplace> --scope project

684```

685 

686В противном случае выполните следующую команду, которая повторно загружает плагин, чей каталог установки отсутствует, даже если его запись существует:

681 687 

682```shell theme={null}688```shell theme={null}

683claude plugin install <name>@<marketplace>689claude plugin install <name>@<marketplace>

684```690```

685 691 

686Затем запустите `/reload-plugins` в вашем сеансе. Запись на вкладке **Errors** исчезает и плагин вернулся в **Installed**.692Затем запустите `/reload-plugins` в вашей сессии. Запись на вкладке **Errors** исчезает, и плагин появляется в **Installed**.

687 693 

688### `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`694### `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`

689 695 

Details

103[Быстрый режим](https://code.claude.com/docs/ru/fast-mode.md) и стандартная скорость используют отдельные кэши, поэтому после того как вы включаете или отключаете быстрый режим, следующий запрос не может использовать то, что было кэшировано на другой скорости. Когда вы впервые включаете быстрый режим в диалоге, следующий запрос читает весь диалог до этого момента без кэша по [тарифам быстрого режима](https://code.claude.com/docs/ru/fast-mode.md#understand-the-cost-tradeoff). Чтобы эта стоимость оставалась небольшой, включайте его в начале сессии.103[Быстрый режим](https://code.claude.com/docs/ru/fast-mode.md) и стандартная скорость используют отдельные кэши, поэтому после того как вы включаете или отключаете быстрый режим, следующий запрос не может использовать то, что было кэшировано на другой скорости. Когда вы впервые включаете быстрый режим в диалоге, следующий запрос читает весь диалог до этого момента без кэша по [тарифам быстрого режима](https://code.claude.com/docs/ru/fast-mode.md#understand-the-cost-tradeoff). Чтобы эта стоимость оставалась небольшой, включайте его в начале сессии.

104 104 

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

106* Если ваша текущая модель не поддерживает быстрый режим, запуск `/fast` также [переключает вас на Opus](https://code.claude.com/docs/ru/fast-mode.md#toggle-fast-mode). Это [переключение модели](#switching-models) само по себе запускает новый кэш начиная со следующего запроса в текущем ходе.106* Если ваша текущая модель не поддерживает быстрый режим, запуск `/fast` также [переключает вашу модель](https://code.claude.com/docs/ru/fast-mode.md#toggle-fast-mode). Это [переключение модели](#switching-models) само по себе запускает новый кэш начиная со следующего запроса в текущем ходе.

107 107 

108При каждом последующем переключении без кэша читается всё то, чего нет в кэше для скорости, на которую вы переключаетесь. Изменения скорости, которые Claude Code выполняет самостоятельно, например [переключение на стандартную скорость](https://code.claude.com/docs/ru/fast-mode.md#handle-rate-limits) после ограничения частоты запросов и последующий возврат в быстрый режим, также считаются переключениями.108При каждом последующем переключении без кэша читается всё то, чего нет в кэше для скорости, на которую вы переключаетесь. Изменения скорости, которые Claude Code выполняет самостоятельно, например [переключение на стандартную скорость](https://code.claude.com/docs/ru/fast-mode.md#handle-rate-limits) после ограничения частоты запросов и последующий возврат в быстрый режим, также считаются переключениями.

109 109 

Details

185* **Уровень усилий**: когда вы устанавливаете [уровень усилий](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level) с подключенного устройства, с помощью `/effort` или элемента управления усилиями устройства, Claude Code применяет его к сеансу на вашей машине. Если вы закрепили уровень с помощью `CLAUDE_CODE_EFFORT_LEVEL`, сеанс сохраняет этот уровень, и Claude Code отказывает в другом выборе из элемента управления усилиями. Выбор уровня из элемента управления усилиями требует Claude Code v2.1.234 или позже на вашей машине.185* **Уровень усилий**: когда вы устанавливаете [уровень усилий](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level) с подключенного устройства, с помощью `/effort` или элемента управления усилиями устройства, Claude Code применяет его к сеансу на вашей машине. Если вы закрепили уровень с помощью `CLAUDE_CODE_EFFORT_LEVEL`, сеанс сохраняет этот уровень, и Claude Code отказывает в другом выборе из элемента управления усилиями. Выбор уровня из элемента управления усилиями требует Claude Code v2.1.234 или позже на вашей машине.

186* **Переподключение после сбоя подключения**: выполните `/remote-control` для переподключения. Если за это время сжатие контекста переписало диалог или вы переключили диалоги с помощью `/resume`, Claude Code архивирует серверную сессию, которую он использовал, вместо того чтобы оставлять ее в списке сессий. Вы по-прежнему можете найти эту сессию среди ваших [архивированных сессий](https://code.claude.com/docs/ru/claude-code-on-the-web.md#find-an-archived-session) на claude.ai/code. Переключение диалогов, пока устройство все еще подключено, не архивирует сессию.186* **Переподключение после сбоя подключения**: выполните `/remote-control` для переподключения. Если за это время сжатие контекста переписало диалог или вы переключили диалоги с помощью `/resume`, Claude Code архивирует серверную сессию, которую он использовал, вместо того чтобы оставлять ее в списке сессий. Вы по-прежнему можете найти эту сессию среди ваших [архивированных сессий](https://code.claude.com/docs/ru/claude-code-on-the-web.md#find-an-archived-session) на claude.ai/code. Переключение диалогов, пока устройство все еще подключено, не архивирует сессию.

187 187 

188### Создание ответвления сессии из браузера

189 

190Чтобы попробовать другое направление, не прерывая сессию, откройте ее на [claude.ai/code](https://claude.ai/code) и выберите **Fork** в меню сессии или создайте ответвление от более раннего сообщения в транскрипте. Ответвление открывается как новая сессия в вашем списке сессий и продолжает диалог с этой точки, пока исходная сессия продолжает работать. Для создания ответвлений требуется Claude Code v2.1.277 или новее на вашей машине.

191 

192Сервер `claude remote-control`, запущенный с `--spawn session`, вмещает только свою единственную сессию, поэтому не может запустить ответвление.

193 

194Claude Code отклоняет создание ответвления, например, в следующих случаях:

195 

196* Сессия занята. Создайте ответвление, когда она простаивает.

197* Сессия размещена в расширении VS Code или другом приложении, построенном на [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md).

198 

188### Включение Remote Control для всех сеансов199### Включение Remote Control для всех сеансов

189 200 

190Remote Control активируется только при явном запуске `claude remote-control`, `claude --remote-control` или `/remote-control`, если не включено автоподключение. Чтобы включить автоподключение для каждого интерактивного сеанса, запустите `/config` внутри Claude Code и установите **Enable Remote Control for all sessions**. Переключатель принимает три значения:201Remote Control активируется только при явном запуске `claude remote-control`, `claude --remote-control` или `/remote-control`, если не включено автоподключение. Чтобы включить автоподключение для каждого интерактивного сеанса, запустите `/config` внутри Claude Code и установите **Enable Remote Control for all sessions**. Переключатель принимает три значения:

191 202 

192* **`true`**: автоматически подключаться при запуске интерактивного сеанса.203* **`true`**: автоматически подключаться при запуске интерактивного сеанса.

193* **`false`**: отключить автоподключение, хотя `true` из [управляемых параметров](https://code.claude.com/docs/ru/managed-settings.md) имеет приоритет, потому что Claude Code сохраняет выбор в ваши пользовательские параметры. `false` в параметрах проекта или локальных параметрах (`.claude/settings.json`, `.claude/settings.local.json`) отключает автоподключение даже над управляемым `true`.204* **`false`**: отключить автоподключение, однако `true` из [управляемых настроек](https://code.claude.com/docs/ru/managed-settings.md) имеет приоритет, потому что Claude Code сохраняет выбор в ваши пользовательские настройки. `false` в настройках проекта или локальных настройках (`.claude/settings.json`, `.claude/settings.local.json`) отключает автоподключение даже при управляемом `true`.

194* **`default`**: очистить ваш выбор и следовать значению по умолчанию, заданному администратором вашей организации, если оно установлено, иначе текущему значению по умолчанию Claude Code. Если вы задали `DISABLE_TELEMETRY` или `DO_NOT_TRACK`, см. [Автоподключение при заданных `DISABLE_TELEMETRY` или `DO_NOT_TRACK`](#auto-connect-with-disable-telemetry-or-do-not-track).205* **`default`**: очистить ваш выбор и следовать значению по умолчанию, заданному администратором вашей организации, если оно установлено, иначе текущему значению по умолчанию Claude Code. Если вы задали `DISABLE_TELEMETRY` или `DO_NOT_TRACK`, см. [Автоподключение при заданных `DISABLE_TELEMETRY` или `DO_NOT_TRACK`](#auto-connect-with-disable-telemetry-or-do-not-track).

195 206 

196Расширение VS Code и приложение Desktop также имеют переключатель автоподключения:207Расширение VS Code и приложение Desktop также имеют переключатель автоподключения:


198* **Расширение VS Code**: **Enable Remote Control for all sessions** в разделе Settings [меню команд](https://code.claude.com/docs/ru/vs-code.md#use-the-prompt-box).209* **Расширение VS Code**: **Enable Remote Control for all sessions** в разделе Settings [меню команд](https://code.claude.com/docs/ru/vs-code.md#use-the-prompt-box).

199* **Приложение Desktop**: **Connect new sessions to Remote Control** в **Settings > Code** или **Settings > Claude Code**. См. [Управление тем, какие сессии появляются на других ваших устройствах](https://code.claude.com/docs/ru/desktop.md#control-which-sessions-appear-on-your-other-devices).210* **Приложение Desktop**: **Connect new sessions to Remote Control** в **Settings > Code** или **Settings > Claude Code**. См. [Управление тем, какие сессии появляются на других ваших устройствах](https://code.claude.com/docs/ru/desktop.md#control-which-sessions-appear-on-your-other-devices).

200 211 

201Чтобы вместо этого включить автоподключение из файла параметров, установите [`remoteControlAtStartup`](https://code.claude.com/docs/ru/settings-reference#remotecontrolatstartup) на `true` в ваш пользовательский файл `~/.claude/settings.json` или в [управляемые параметры](https://code.claude.com/docs/ru/managed-settings.md). В параметрах проекта или локальных параметрах (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code соблюдает `false` и отключает автоподключение для этого репозитория, но игнорирует `true`, поэтому проверенный файл не может включить Remote Control для всех, кто открывает репозиторий.212Чтобы вместо этого включить автоподключение из файла настроек, задайте для [`remoteControlAtStartup`](https://code.claude.com/docs/ru/settings-reference#remotecontrolatstartup) значение `true` в вашем пользовательском файле `~/.claude/settings.json` или в [управляемых настройках](https://code.claude.com/docs/ru/managed-settings.md). В настройках проекта или локальных настройках (`.claude/settings.json`, `.claude/settings.local.json`) Claude Code учитывает `false` и отключает автоподключение для этого репозитория. Значение `true` там игнорируется, поэтому вы не можете использовать файл, добавленный в репозиторий, чтобы включить Remote Control для всех, кто открывает репозиторий.

202 213 

203Автоподключение входит с вашей собственной учетной записью claude.ai, поэтому сеанс, который оно запускает, появляется только в приложениях Claude вашей собственной учетной записи и не предоставляет доступ никому другому.214Автоподключение входит с вашей собственной учетной записью claude.ai, поэтому сеанс, который оно запускает, появляется только в приложениях Claude вашей собственной учетной записи и не предоставляет доступ никому другому.

204 215 

routines.md +1 −1

Details

528* [`/loop` и планирование в сессии](https://code.claude.com/docs/ru/scheduled-tasks): планирование локальных задач в открытой сессии CLI528* [`/loop` и планирование в сессии](https://code.claude.com/docs/ru/scheduled-tasks): планирование локальных задач в открытой сессии CLI

529* [Запланированные задачи Desktop](https://code.claude.com/docs/ru/desktop-scheduled-tasks.md): локальные запланированные задачи, которые выполняются на вашем компьютере с доступом к локальным файлам529* [Запланированные задачи Desktop](https://code.claude.com/docs/ru/desktop-scheduled-tasks.md): локальные запланированные задачи, которые выполняются на вашем компьютере с доступом к локальным файлам

530* [Облачные окружения](https://code.claude.com/docs/ru/cloud-environments.md): настройка сетевого доступа, переменных окружения и скриптов настройки для облачных сессий530* [Облачные окружения](https://code.claude.com/docs/ru/cloud-environments.md): настройка сетевого доступа, переменных окружения и скриптов настройки для облачных сессий

531* [Проекты](https://code.claude.com/docs/ru/claude-projects.md): текущая работа, которую Claude координирует в параллельных облачных сессиях; запланированные задачи, созданные из проекта, отображаются на его вкладке **Scheduled tasks**531* [Проекты](https://code.claude.com/docs/ru/claude-projects.md): текущая работа, которую Claude координирует в параллельных облачных сессиях; запланированные задачи, созданные из проекта, отображаются в его представлении **Scheduled tasks**

532* [MCP-коннекторы](https://code.claude.com/docs/ru/mcp.md): подключение внешних сервисов, таких как Slack, Linear и Google Drive532* [MCP-коннекторы](https://code.claude.com/docs/ru/mcp.md): подключение внешних сервисов, таких как Slack, Linear и Google Drive

533* [GitHub Actions](https://code.claude.com/docs/ru/github-actions.md): запуск Claude в CI-конвейере по событиям репозитория533* [GitHub Actions](https://code.claude.com/docs/ru/github-actions.md): запуск Claude в CI-конвейере по событиям репозитория

sandboxing.md +4 −0

Details

903 903 

904После сбоя Claude может [предложить повторно запустить команду вне песочницы](#the-unsandboxed-retry-escape-hatch). Одобрите эту повторную попытку или запустите команду git самостоятельно в другом терминале. Если вы установили `allowUnsandboxedCommands` в `false`, Claude не может предложить повторную попытку, поэтому запустите команду самостоятельно.904После сбоя Claude может [предложить повторно запустить команду вне песочницы](#the-unsandboxed-retry-escape-hatch). Одобрите эту повторную попытку или запустите команду git самостоятельно в другом терминале. Если вы установили `allowUnsandboxedCommands` в `false`, Claude не может предложить повторную попытку, поэтому запустите команду самостоятельно.

905 905 

906### Команда git не выполняется с ошибкой `Unable to create '…/index.lock'`

907 

908Если вы запустили Claude Code в подкаталоге репозитория, эта ошибка может означать, что `.git` находится вне [области, в которую могут записывать изолированные команды](#filesystem-isolation). Вместо этого запустите Claude Code из корня репозитория или, в [связанном worktree](https://code.claude.com/docs/ru/worktrees.md), из корня этого worktree.

909 

906### Папка с именем `objects` или `refs` исчезает после выполнения команды910### Папка с именем `objects` или `refs` исчезает после выполнения команды

907 911 

908Папка `objects` или `refs` верхнего уровня, появившаяся во время сессии, может быть [удалена после завершения изолированной команды](#when-the-sandbox-deletes-head-objects-or-refs). Неважно, кто её создал: команда, Claude или вы. Чтобы сохранить папку, оставьте в ней что-нибудь. Если файл или символическая ссылка `HEAD` находились на верхнем уровне во время сессии, переместите их в другое место, затем перезапустите все сессии Claude Code, открытые в вашем рабочем каталоге.912Папка `objects` или `refs` верхнего уровня, появившаяся во время сессии, может быть [удалена после завершения изолированной команды](#when-the-sandbox-deletes-head-objects-or-refs). Неважно, кто её создал: команда, Claude или вы. Чтобы сохранить папку, оставьте в ней что-нибудь. Если файл или символическая ссылка `HEAD` находились на верхнем уровне во время сессии, переместите их в другое место, затем перезапустите все сессии Claude Code, открытые в вашем рабочем каталоге.

Details

54}54}

55```55```

56 56 

57Каждый коллега также один раз для каждого клона [выполняет `claude plugin install security-guidance@claude-plugins-official --scope project`](https://code.claude.com/docs/ru/plugins/loading#enabled-in-project-settings-but-not-installed).

58 

57Администраторы могут включить плагин на уровне организации, установив [`enabledPlugins`](https://code.claude.com/docs/ru/settings-reference#enabledplugins) в [управляемых параметрах](https://code.claude.com/docs/ru/admin-setup.md).59Администраторы могут включить плагин на уровне организации, установив [`enabledPlugins`](https://code.claude.com/docs/ru/settings-reference#enabledplugins) в [управляемых параметрах](https://code.claude.com/docs/ru/admin-setup.md).

58 60 

59## Что проверяет плагин61## Что проверяет плагин

Details

235set -u235set -u

236export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}236export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}

237IFS=':'237IFS=':'

238rc=0 # becomes 1 when a step fails; a non-zero exit makes the runner log it

238# -c overrides beat repo-local settings, blocking session-written fsmonitor,239# -c overrides beat repo-local settings, blocking session-written fsmonitor,

239# hook-path, and gpg-program config from executing code with the hook's240# hook-path, and gpg-program config from executing code with the hook's

240# privileges. -c commit.gpgsign=false also leaves these rescue commits241# privileges. -c commit.gpgsign=false also leaves these rescue commits


245g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \246g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \

246 -c commit.gpgsign=false "$@"; }247 -c commit.gpgsign=false "$@"; }

247for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do248for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do

248 cd "$ws" 2>/dev/null || continue249 cd "$ws" || { rc=1; continue; }

249 [ -z "$(g status --porcelain 2>/dev/null)" ] && continue250 g add -A || rc=1

250 g add -A251 g diff-index --cached --quiet HEAD && continue # nothing to save

251 g commit -q -m "runner snapshot: $CLAUDE_RUNNER_SESSION_ID ($CLAUDE_RUNNER_EXIT_REASON)" || continue252 g commit -q -m "runner snapshot: $CLAUDE_RUNNER_SESSION_ID ($CLAUDE_RUNNER_EXIT_REASON)" || { rc=1; continue; }

252 g push -q origin "HEAD:refs/heads/rescue/$CLAUDE_RUNNER_SESSION_ID" || true253 g push -q origin "HEAD:refs/heads/rescue/$CLAUDE_RUNNER_SESSION_ID" || rc=1

253done254done

255exit "$rc"

254```256```

255 257 

256Строка `GIT_ALLOW_PROTOCOL` в скрипте ограничивает git удалёнными репозиториями по HTTPS, HTTP и SSH. Если окружение runner'а уже задаёт собственный непустой список `GIT_ALLOW_PROTOCOL`, скрипт сохраняет этот список.258Строка `GIT_ALLOW_PROTOCOL` в скрипте ограничивает git удалёнными репозиториями по HTTPS, HTTP и SSH. Если окружение runner'а уже задаёт собственный непустой список `GIT_ALLOW_PROTOCOL`, скрипт сохраняет этот список.

Details

23 * **С [Anthropic-managed git](#use-the-anthropic-git-proxy)**: при наличии таких учётных данных Claude обращается к GitHub напрямую, а не через Anthropic-managed git.23 * **С [Anthropic-managed git](#use-the-anthropic-git-proxy)**: при наличии таких учётных данных Claude обращается к GitHub напрямую, а не через Anthropic-managed git.

24 * **Без Anthropic-managed git**: учётные данные для клонирования могут оставаться в образе, если вы ограничите их так строго, как описано в [Ship git config in your image](#ship-git-config-in-your-image).24 * **Без Anthropic-managed git**: учётные данные для клонирования могут оставаться в образе, если вы ограничите их так строго, как описано в [Ship git config in your image](#ship-git-config-in-your-image).

25* **Держите секрет окружения вдали от хостов, запускающих сессии**: секрет окружения может регистрировать runners и получать любую сессию, поставленную в очередь в окружение. На фиксированном флоте он находится на каждом хосте runner, где код любой сессии может прочитать файл секрета. Предпочитайте [on-demand runners](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#on-demand-runners), где секрет остаётся на хосте оркестратора, который никогда не запускает пользовательский код, и каждый runner получает одноразовый наряд на работу, который регистрирует ровно один runner. На фиксированном флоте рассматривайте файл environment-secret как читаемый каждой сессией и ротируйте секрет после любого подозрения на компрометацию сессии.25* **Держите секрет окружения вдали от хостов, запускающих сессии**: секрет окружения может регистрировать runners и получать любую сессию, поставленную в очередь в окружение. На фиксированном флоте он находится на каждом хосте runner, где код любой сессии может прочитать файл секрета. Предпочитайте [on-demand runners](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#on-demand-runners), где секрет остаётся на хосте оркестратора, который никогда не запускает пользовательский код, и каждый runner получает одноразовый наряд на работу, который регистрирует ровно один runner. На фиксированном флоте рассматривайте файл environment-secret как читаемый каждой сессией и ротируйте секрет после любого подозрения на компрометацию сессии.

26 * **После подозрения на компрометацию**: попросите [Owner](https://code.claude.com/docs/ru/cloud-environments.md#organization-shared-environments) создать новый секрет и отозвать старый на вкладке **Configuration** окружения, а затем разверните новый секрет. Anthropic отклоняет все оркестраторы и runners со старым секретом, включая on-demand runners, запущенные по его нарядам на работу. Ваши runners завершают работу, прерывая свои сессии.26 * **После подозрения на компрометацию сначала отзовите подозрительную сессию**: прежде чем останавливать её runner или отзывать секрет, выберите **Revoke token** в меню сессии на вкладке **Activity**. После этого ни один runner не сможет её возобновить.

27 * **Затем замените секрет**: попросите [Owner](https://code.claude.com/docs/ru/cloud-environments.md#organization-shared-environments) создать новый секрет и отозвать старый на вкладке **Configuration** окружения, а затем разверните новый секрет. Anthropic отклоняет все оркестраторы и runners со старым секретом, включая on-demand runners, запущенные по его нарядам на работу. Ваши runners завершают работу, прерывая свои сессии.

27* **Исходящий трафик по умолчанию запрещён**: ограничьте исходящий трафик контейнеров runner и сессии на границе вашей собственной сети в каждом окружении; [Default-deny egress](#default-deny-egress) описывает, что разрешить и почему.28* **Исходящий трафик по умолчанию запрещён**: ограничьте исходящий трафик контейнеров runner и сессии на границе вашей собственной сети в каждом окружении; [Default-deny egress](#default-deny-egress) описывает, что разрешить и почему.

28* **Наименьшие привилегии IAM хоста**: вычислительная идентификация, прикреплённая к хосту runner, такая как профиль экземпляра или учётная запись сервиса узла, должна предоставлять только то, что нужно самому runner. Сессии должны получать свои собственные учётные данные через ваш скрипт-обёртку, а не наследовать учётные данные хоста.29* **Наименьшие привилегии IAM хоста**: вычислительная идентификация, прикреплённая к хосту runner, такая как профиль экземпляра или учётная запись сервиса узла, должна предоставлять только то, что нужно самому runner. Сессии должны получать свои собственные учётные данные через ваш скрипт-обёртку, а не наследовать учётные данные хоста.

29* **Блокируйте сессиям доступ к эндпоинту облачных метаданных**: чтобы сессии не использовали идентификацию хоста, требуется блокировать их доступ к эндпоинту облачных метаданных, а политики исходящего трафика на уровне подсети не перехватывают трафик метаданных link-local, поэтому блокируйте его в самом контейнере:30* **Блокируйте сессиям доступ к эндпоинту облачных метаданных**: чтобы сессии не использовали идентификацию хоста, требуется блокировать их доступ к эндпоинту облачных метаданных, а политики исходящего трафика на уровне подсети не перехватывают трафик метаданных link-local, поэтому блокируйте его в самом контейнере:


243 244 

244Для каждой сессии раннер на Claude Code v2.1.267 или новее также записывает в лог либо строку `[runner:session]`, содержащую `governed git ACTIVE`, если Anthropic обслуживает git сессии, либо одну строку `[runner:warn]`, содержащую `the server withheld Anthropic-managed git for this session`, если нет. Найдите среди этих случаев строку, которую вы видите:245Для каждой сессии раннер на Claude Code v2.1.267 или новее также записывает в лог либо строку `[runner:session]`, содержащую `governed git ACTIVE`, если Anthropic обслуживает git сессии, либо одну строку `[runner:warn]`, содержащую `the server withheld Anthropic-managed git for this session`, если нет. Найдите среди этих случаев строку, которую вы видите:

245 246 

246* **Нет ни `governed git ACTIVE`, ни строки `withheld`**: раннер старее Claude Code v2.1.267 не записывает ни одну из этих строк, и Anthropic не обслуживает его сессии. Обновите раннер до v2.1.267 или новее, следуя разделу [Закрепление версии](#pin-the-version).247* **Нет ни `governed git ACTIVE`, ни строки `withheld`**: если раннер старее Claude Code v2.1.267, Anthropic не обслуживает его сессии. Обновите раннер до v2.1.267 или новее, следуя разделу [Закрепление версии](#pin-the-version).

247* **Строка `withheld`**: Anthropic не стала обслуживать сессию. Раннер, который раньше работал с git-прокси, может так отказать без каких-либо изменений с вашей стороны.248* **Строка `withheld`**: Anthropic не стала обслуживать сессию. Раннер, который раньше работал с git-прокси, может так отказать без каких-либо изменений с вашей стороны.

248 * **Репозиторий не на github.com**: сессия хотя бы с одним репозиторием на другом git-хосте, например GitHub Enterprise Server, не обслуживается, включая её репозитории на github.com. [Отключите git-прокси Anthropic](#turn-the-anthropic-git-proxy-off) для раннеров этого окружения.249 * **Репозиторий не на github.com**: сессия хотя бы с одним репозиторием на другом git-хосте, например GitHub Enterprise Server, не обслуживается, включая её репозитории на github.com. [Отключите git-прокси Anthropic](#turn-the-anthropic-git-proxy-off) для раннеров этого окружения.

249 * **Все репозитории на github.com**: сообщите о сбое [вашей команде по работе с аккаунтом Anthropic](#report-an-issue), указав ID сессии из строки `withheld`. Anthropic фиксирует причину на своей стороне.250 * **Все репозитории на github.com**: сообщите о сбое [вашей команде по работе с аккаунтом Anthropic](#report-an-issue), указав ID сессии из строки `withheld`. Anthropic фиксирует причину на своей стороне.


396Замените `linux-x64` на `linux-arm64`, если ваши узлы ARM, или на `linux-x64-musl` или `linux-arm64-musl` на образе на основе musl, таком как Alpine; см. [Alpine Linux setup](https://code.claude.com/docs/ru/setup.md#alpine-linux-and-musl-based-distributions) для дополнительных пакетов, которые нужны образам musl. URL является стандартным местоположением выпуска Claude Code, поэтому вы можете проверить загруженный бинарный файл по подписанному манифесту выпуска, как описано в [Binary integrity and code signing](https://code.claude.com/docs/ru/setup.md#binary-integrity-and-code-signing). Runner требует версию Claude Code 2.1.224 или позже, либо 2.1.229 или позже для обслуживания сессий Claude Tag. Соберите образ, затем отправьте его в ваш реестр и ссылайтесь на него в рецептах ниже:397Замените `linux-x64` на `linux-arm64`, если ваши узлы ARM, или на `linux-x64-musl` или `linux-arm64-musl` на образе на основе musl, таком как Alpine; см. [Alpine Linux setup](https://code.claude.com/docs/ru/setup.md#alpine-linux-and-musl-based-distributions) для дополнительных пакетов, которые нужны образам musl. URL является стандартным местоположением выпуска Claude Code, поэтому вы можете проверить загруженный бинарный файл по подписанному манифесту выпуска, как описано в [Binary integrity and code signing](https://code.claude.com/docs/ru/setup.md#binary-integrity-and-code-signing). Runner требует версию Claude Code 2.1.224 или позже, либо 2.1.229 или позже для обслуживания сессий Claude Tag. Соберите образ, затем отправьте его в ваш реестр и ссылайтесь на него в рецептах ниже:

397 398 

398```bash theme={null}399```bash theme={null}

400# If your model needs a newer release, change stable to latest in the URL

399docker build \401docker build \

400 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \402 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \

401 -t <your-registry>/claude-runner:latest .403 -t <your-registry>/claude-runner:latest .


429Runner использует `--capacity`, чтобы ограничить число одновременно запускаемых сессий. Он не распределяет CPU или память между ними, поэтому сессии на одном runner делят CPU и память контейнера. Чтобы потребление памяти одной сессией не приводило к завершению остальных, запускайте одну сессию на runner с [собственным лимитом памяти](#give-each-session-its-own-memory-limit).431Runner использует `--capacity`, чтобы ограничить число одновременно запускаемых сессий. Он не распределяет CPU или память между ними, поэтому сессии на одном runner делят CPU и память контейнера. Чтобы потребление памяти одной сессией не приводило к завершению остальных, запускайте одну сессию на runner с [собственным лимитом памяти](#give-each-session-its-own-memory-limit).

430 432 

431* **Один сеанс на runner**: дайте каждому контейнеру значения одного сеанса. Используйте эту размер на `--capacity 1`, которую [раздел усиления безопасности](#harden-your-deployment) рекомендует, и для [on-demand runners](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#on-demand-runners), где вы устанавливаете значения на рабочую нагрузку, которую ваш [`spawn-runner` hook](https://code.claude.com/docs/ru/self-hosted-environments-configuration#the-spawn-runner-hook) отправляет, такую как шаблон pod Kubernetes Job.433* **Один сеанс на runner**: дайте каждому контейнеру значения одного сеанса. Используйте эту размер на `--capacity 1`, которую [раздел усиления безопасности](#harden-your-deployment) рекомендует, и для [on-demand runners](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#on-demand-runners), где вы устанавливаете значения на рабочую нагрузку, которую ваш [`spawn-runner` hook](https://code.claude.com/docs/ru/self-hosted-environments-configuration#the-spawn-runner-hook) отправляет, такую как шаблон pod Kubernetes Job.

432* **Несколько сеансов на runner**: на `--capacity` выше одного, умножьте значения одного сеанса на емкость, потому что до такого количества сеансов может работать в контейнере одновременно. Рецепты [Kubernetes](#kubernetes) и [Docker Compose](#docker-compose) запускают `--capacity 4` без лимитов CPU или памяти, поэтому добавьте лимиты, размер которых соответствует емкости, которую вы запускаете.434* **Несколько сессий на runner**: при `--capacity` больше единицы умножьте значения одной сессии на capacity, потому что в контейнере одновременно может работать до такого количества сессий, [включая простаивающие](#release-idle-sessions-on-a-fixed-fleet). Рецепты [Kubernetes](#kubernetes) и [Docker Compose](#docker-compose) запускают `--capacity 4` без лимитов CPU или памяти, поэтому добавьте лимиты, рассчитанные на используемую вами capacity.

433* **Несколько контейнеров runner на одном хосте**: рассчитывайте размер хоста на сумму capacity всех runner, потому что каждый runner учитывает в `--capacity` только собственные сессии:435* **Несколько контейнеров runner на одном хосте**: рассчитывайте размер хоста на сумму capacity всех runner, потому что каждый runner учитывает в `--capacity` только собственные сессии:

434 436 

435 * **Память**: умножьте память одной сессии на эту сумму, затем добавьте то, что потребляют собственные процессы хоста437 * **Память**: умножьте память одной сессии на эту сумму, затем добавьте то, что потребляют собственные процессы хоста

Details

56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Как долго ждать чистого выхода процесса Claude после завершения сеанса перед принудительным завершением. Повысьте значение, если собственные hooks `SessionEnd` дочернего процесса нуждаются в большем времени. |56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Как долго ждать чистого выхода процесса Claude после завершения сеанса перед принудительным завершением. Повысьте значение, если собственные hooks `SessionEnd` дочернего процесса нуждаются в большем времени. |

57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Сколько ждать дочерний процесс, который не инициализировался, прежде чем освободить слот сессии. С какого момента начинается отсчёт и какие сессии продолжают работать, см. в разделе [Таймаут запуска сессии](#session-startup-timeout). `0` отключает таймаут. |57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Сколько ждать дочерний процесс, который не инициализировался, прежде чем освободить слот сессии. С какого момента начинается отсчёт и какие сессии продолжают работать, см. в разделе [Таймаут запуска сессии](#session-startup-timeout). `0` отключает таймаут. |

58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | on | Посейте сохраняемое доверие для путей репозитория каждого сеанса, чтобы зафиксированные в репо `permissions.allow` и `additionalDirectories` были соблюдены. Установите `false` для отпуска зафиксированных в репо грантов разрешений и вместо этого настройте правила разрешения в `settings.json` конфигурации хоста; параметры `sandbox.*` зафиксированные в репо все еще применяются в любом случае, поэтому [защита repo-settings](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#harden-your-deployment) сканирует их независимо от этого флага. |58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | on | Посейте сохраняемое доверие для путей репозитория каждого сеанса, чтобы зафиксированные в репо `permissions.allow` и `additionalDirectories` были соблюдены. Установите `false` для отпуска зафиксированных в репо грантов разрешений и вместо этого настройте правила разрешения в `settings.json` конфигурации хоста; параметры `sandbox.*` зафиксированные в репо все еще применяются в любом случае, поэтому [защита repo-settings](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#harden-your-deployment) сканирует их независимо от этого флага. |

59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | off | Клонирует репозитории на github.com через [прокси git Anthropic](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#use-the-anthropic-git-proxy) вместо управляемой клиентом аутентификации git. Требует `--capacity 1` и git 2.32 или новее; в противном случае runner отказывается запускаться. Заменяет флаги перезаписи. |59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | off | Клонирует репозитории на github.com через [прокси git Anthropic](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#use-the-anthropic-git-proxy) вместо управляемой клиентом аутентификации git. Требует `--capacity 1` и git 2.32 или новее; в противном случае runner отказывается запускаться. Также требует Claude Code v2.1.267 или новее. Заменяет флаги перезаписи. |

60 60 

61Большинство флагов длительности имеют максимум, выбранный для сохранения каждого timeout в потолке 32-битного таймера runtime примерно 24,85 дня. Флаги `--*-min` ограничены 10080 минутами, 7 дней; `--drain-grace-sec` на 604800 секунд, также 7 дней; и `--drain-wait-sec` на 86400 секунд, 24 часа. `--session-stop-grace-sec` и `--post-session-hook-timeout-sec` не ограничены. Превышение лимита ведет себя по-разному в зависимости от поверхности:61Большинство флагов длительности имеют максимум, выбранный для сохранения каждого timeout в потолке 32-битного таймера runtime примерно 24,85 дня. Флаги `--*-min` ограничены 10080 минутами, 7 дней; `--drain-grace-sec` на 604800 секунд, также 7 дней; и `--drain-wait-sec` на 86400 секунд, 24 часа. `--session-stop-grace-sec` и `--post-session-hook-timeout-sec` не ограничены. Превышение лимита ведет себя по-разному в зависимости от поверхности:

62 62 

Details

12 12 

13В [самостоятельно размещённой среде](https://code.claude.com/docs/ru/self-hosted-environments) облачные [сеансы](https://code.claude.com/docs/ru/claude-code-on-the-web.md) Claude Code работают на образе runner, который вы создаёте и поддерживаете. Перед развёртыванием нового образа в вашу production-среду запустите полный сеанс против тестовой среды из скрипта: создайте сеанс, прочитайте ответ Claude, отправьте дополнительный вопрос и прочитайте этот ответ тоже. Это форма CI smoke-теста, который проверяет ваш образ runner, доступ к git и любые пользовательские инструменты перед тем, как вы продвинете изменение.13В [самостоятельно размещённой среде](https://code.claude.com/docs/ru/self-hosted-environments) облачные [сеансы](https://code.claude.com/docs/ru/claude-code-on-the-web.md) Claude Code работают на образе runner, который вы создаёте и поддерживаете. Перед развёртыванием нового образа в вашу production-среду запустите полный сеанс против тестовой среды из скрипта: создайте сеанс, прочитайте ответ Claude, отправьте дополнительный вопрос и прочитайте этот ответ тоже. Это форма CI smoke-теста, который проверяет ваш образ runner, доступ к git и любые пользовательские инструменты перед тем, как вы продвинете изменение.

14 14 

15Этот рецепт предполагает, что вы уже [настроили среду и runner](https://code.claude.com/docs/ru/self-hosted-environments-quickstart.md#set-up-an-environment-and-runner), и что ваша CI-задача запускает процесс runner на том же хосте, что и тестовый скрипт — это естественная настройка для тестирования нового образа runner. Hook Stop, который вы устанавливаете на runner, записывает финальный ответ каждого хода в локальный файл, и скрипт читает его оттуда, поэтому единственные вызовы к API Anthropic — это две сами отправки. Если ваши тестовые runner находятся на отдельной инфраструктуре, см. [Удалённые тестовые runner](#remote-test-runners).15Этот рецепт предполагает, что вы уже [настроили среду и runner](https://code.claude.com/docs/ru/self-hosted-environments-quickstart.md#set-up-an-environment-and-runner), и что ваша CI-задача запускает процесс runner на том же хосте, что и тестовый скрипт. Хук Stop, который вы устанавливаете на runner, записывает финальный ответ каждого хода в локальный файл, и скрипт читает его оттуда. Если ваши тестовые runner находятся на отдельной инфраструктуре, см. [Удалённые тестовые runner](#remote-test-runners).

16 16 

17## Установите hook захвата на ваш тестовый runner17## Установите hook захвата на ваш тестовый runner

18 18 

Details

62 62 

63Hooks используют тот же формат, что и в `settings.json`.63Hooks используют тот же формат, что и в `settings.json`.

64 64 

65Этот пример запускает скрипт аудита после каждого редактирования файла во всей организации:65Этот пример запускает скрипт аудита после вызовов инструментов `Edit` и `Write` во всей организации:

66 66 

67```json theme={null}67```json theme={null}

68{68{


95 95 

96Чтобы подтвердить, что параметры применяются, попросите пользователя перезагрузить Claude Code. Если конфигурация включает параметры, которые запускают [диалог одобрения безопасности](#security-approval-dialogs), пользователь видит подсказку, описывающую управляемые параметры при следующей загрузке параметров Claude Code: при следующем запуске или в течение часа в работающем интерактивном сеансе. Вы также можете проверить, что активны управляемые правила разрешений, попросив пользователя запустить `/permissions` для просмотра его эффективных правил разрешений.96Чтобы подтвердить, что параметры применяются, попросите пользователя перезагрузить Claude Code. Если конфигурация включает параметры, которые запускают [диалог одобрения безопасности](#security-approval-dialogs), пользователь видит подсказку, описывающую управляемые параметры при следующей загрузке параметров Claude Code: при следующем запуске или в течение часа в работающем интерактивном сеансе. Вы также можете проверить, что активны управляемые правила разрешений, попросив пользователя запустить `/permissions` для просмотра его эффективных правил разрешений.

97 97 

98В сессии попросите пользователя запустить `/status`. [Строка `Setting sources`](https://code.claude.com/docs/ru/managed-settings#read-the-source-in-/status) содержит `Enterprise managed settings` с `remote` в скобках, когда применяются настройки, управляемые сервером.

99 

98Чтобы проверить результат загрузки на конкретной машине, попросите пользователя запустить `claude doctor` и прочитать строку `Managed settings (remote)`. Требуется Claude Code v2.1.248 или позже. Строка сообщает об одном из четырех результатов:100Чтобы проверить результат загрузки на конкретной машине, попросите пользователя запустить `claude doctor` и прочитать строку `Managed settings (remote)`. Требуется Claude Code v2.1.248 или позже. Строка сообщает об одном из четырех результатов:

99 101 

100* Доставленные параметры загружены102* Доставленные параметры загружены


247* Если шлюз отвечает на интерактивный запуск с участием пользователя кодом `401`, а эта настройка отключена, значит, шлюз завершил этот вход. Claude Code выводит [`Cloud gateway session expired — run /login to reconnect.`](https://code.claude.com/docs/ru/errors#cloud-gateway-session-expired) и открывает сессию без входа в шлюз, пока пользователь не выполнит `/login`.249* Если шлюз отвечает на интерактивный запуск с участием пользователя кодом `401`, а эта настройка отключена, значит, шлюз завершил этот вход. Claude Code выводит [`Cloud gateway session expired — run /login to reconnect.`](https://code.claude.com/docs/ru/errors#cloud-gateway-session-expired) и открывает сессию без входа в шлюз, пока пользователь не выполнит `/login`.

248* Если получение завершается неудачно любым другим образом или при запуске любого другого типа, кроме подкоманды `claude auth`, клиент завершает работу с ошибкой.250* Если получение завершается неудачно любым другим образом или при запуске любого другого типа, кроме подкоманды `claude auth`, клиент завершает работу с ошибкой.

249 251 

250Когда эта настройка активна в сессии, которая получает настройки, управляемые сервером, CLI блокируется при запуске, пока удалённые настройки не будут заново получены. Если получение завершается неудачно, CLI завершает работу, а не продолжает без политики. Эта настройка самовоспроизводится: после доставки с сервера она также кэшируется локально, так что последующие запуски применяют то же поведение ещё до первого успешного получения в новой сессии. Сессия, которая [не получает настройки, управляемые сервером](#platform-availability), запускается без ожидания.252Когда эта настройка активна в сессии, которая получает настройки, управляемые сервером, CLI блокируется при запуске, пока удалённые настройки не будут заново получены. Если получение завершается неудачно, CLI завершает работу, а не продолжает без политики. Сессия, которая [не получает настройки, управляемые сервером](#platform-availability), запускается без ожидания.

251 253 

252Чтобы включить эту возможность, добавьте ключ в конфигурацию управляемых настроек:254Чтобы включить эту возможность, добавьте ключ в конфигурацию управляемых настроек:

253 255 


259 261 

260Вы также можете задать этот ключ в [управляемом на уровне конечного устройства](https://code.claude.com/docs/ru/managed-settings.md#delivery-mechanisms) профиле MDM или системном файле `managed-settings.json`, чтобы применить поведение с отказом при сбое при первом запуске, до поступления каких-либо данных с сервера. Этот флаг является исключением из описанного выше [правила приоритета](#settings-precedence): Claude Code учитывает его, когда его задаёт любой управляемый источник, контролируемый администратором, даже если также присутствуют кэшированные данные, управляемые сервером, поэтому значение, доставленное через MDM, не игнорируется при наличии настроек, управляемых сервером.262Вы также можете задать этот ключ в [управляемом на уровне конечного устройства](https://code.claude.com/docs/ru/managed-settings.md#delivery-mechanisms) профиле MDM или системном файле `managed-settings.json`, чтобы применить поведение с отказом при сбое при первом запуске, до поступления каких-либо данных с сервера. Этот флаг является исключением из описанного выше [правила приоритета](#settings-precedence): Claude Code учитывает его, когда его задаёт любой управляемый источник, контролируемый администратором, даже если также присутствуют кэшированные данные, управляемые сервером, поэтому значение, доставленное через MDM, не игнорируется при наличии настроек, управляемых сервером.

261 263 

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

265 

262Когда [`policyHelper`](https://code.claude.com/docs/ru/settings-reference#policyhelper) предоставляет управляемые настройки, его вывод заменяет все остальные управляемые источники для ключей, которые Claude Code читает после запуска. Об источниках, из которых Claude Code читает этот ключ, см. [его запись в справочнике настроек](https://code.claude.com/docs/ru/settings-reference.md#forceremotesettingsrefresh). В записи `policyHelper` указано, из каких источников Claude Code читает хелпер и когда он запускается.266Когда [`policyHelper`](https://code.claude.com/docs/ru/settings-reference#policyhelper) предоставляет управляемые настройки, его вывод заменяет все остальные управляемые источники для ключей, которые Claude Code читает после запуска. Об источниках, из которых Claude Code читает этот ключ, см. [его запись в справочнике настроек](https://code.claude.com/docs/ru/settings-reference.md#forceremotesettingsrefresh). В записи `policyHelper` указано, из каких источников Claude Code читает хелпер и когда он запускается.

263 267 

264При получении настроек также отправляется заголовок `Cache-Control: no-cache`, чтобы промежуточные HTTP-прокси не отдавали устаревший ответ.268При получении настроек также отправляется заголовок `Cache-Control: no-cache`, чтобы промежуточные HTTP-прокси не отдавали устаревший ответ.

settings.md +2 −2

Details

66 66 

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

68 68 

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

70 70 

71Часть того, что вы зафиксируете, ждёт, пока каждый товарищ по команде [доверит папку](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust), а некоторые ключи никогда не вступают в силу из файла репозитория; раздел [Устранение неполадок с настройкой, которая не применяется](#common-cases) охватывает оба случая.71Часть того, что вы зафиксируете, ждёт, пока каждый товарищ по команде [доверит папку](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust), а некоторые ключи никогда не вступают в силу из файла репозитория; раздел [Устранение неполадок с настройкой, которая не применяется](#common-cases) охватывает оба случая.

72 72 


199* **Settings Error**: файл пользователя, проекта или локальный имеет недействительный JSON или значение, которое схема отклоняет. При запуске интерактивного сеанса Claude Code показывает диалог, который позволяет вам исправить файл с помощью Claude, выйти или продолжить без сломанных параметров.199* **Settings Error**: файл пользователя, проекта или локальный имеет недействительный JSON или значение, которое схема отклоняет. При запуске интерактивного сеанса Claude Code показывает диалог, который позволяет вам исправить файл с помощью Claude, выйти или продолжить без сломанных параметров.

200* **Settings Warning**: только отдельные записи не удаются, такие как неправильное правило разрешения или неизвестное имя события hook. Claude Code пропускает эти значения и держит остальную часть файла в силе.200* **Settings Warning**: только отдельные записи не удаются, такие как неправильное правило разрешения или неизвестное имя события hook. Claude Code пропускает эти значения и держит остальную часть файла в силе.

201* **Managed settings**: Claude Code продолжает применять остальную часть файла. [Недействительные записи в управляемых параметрах](https://code.claude.com/docs/ru/managed-settings.md#invalid-entries-in-managed-settings) говорит, что он отбрасывает и какие ключи возвращаются к более строгому значению, пока вы их не исправите. Для документа управляемых параметров, который не является действительным JSON, см. [Документ управляемых параметров не может быть разобран](https://code.claude.com/docs/ru/errors.md#managed-settings-document-could-not-be-parsed).201* **Managed settings**: Claude Code продолжает применять остальную часть файла. [Недействительные записи в управляемых параметрах](https://code.claude.com/docs/ru/managed-settings.md#invalid-entries-in-managed-settings) говорит, что он отбрасывает и какие ключи возвращаются к более строгому значению, пока вы их не исправите. Для документа управляемых параметров, который не является действительным JSON, см. [Документ управляемых параметров не может быть разобран](https://code.claude.com/docs/ru/errors.md#managed-settings-document-could-not-be-parsed).

202* **Configuration error**: не удаётся разобрать [`~/.claude.json`](https://code.claude.com/docs/ru/claude-directory#ce-claude-json). Запуск `claude -p` завершается, а ваш файл остаётся без изменений. Чтобы восстановить более раннюю копию, см. [Configuration error in \~/.claude.json](https://code.claude.com/docs/ru/errors.md#configuration-error-in-claude-json). Claude Code копирует сломанный файл в `~/.claude/backups/.claude.json.corrupted.<timestamp>`, а в интерактивной сессии спрашивает, выйти и исправить его или сбросить к конфигурации по умолчанию. Если файл пуст и резервной копии для восстановления нет, Claude Code запускается с настройками по умолчанию.202* **Configuration error**: не удаётся разобрать [`~/.claude.json`](https://code.claude.com/docs/ru/claude-directory#ce-claude-json). Запуск `claude -p` завершается. Чтобы восстановить более раннюю копию, см. [Configuration error in \~/.claude.json](https://code.claude.com/docs/ru/errors.md#configuration-error-in-claude-json). Claude Code копирует повреждённый файл в `~/.claude/backups/.claude.json.corrupted.<timestamp>`, а в интерактивной сессии спрашивает, выйти и исправить его или сбросить к конфигурации по умолчанию. Если файл пуст и резервной копии для восстановления нет, Claude Code запускается с настройками по умолчанию.

203 203 

204После продолжения запустите `/status`, чтобы увидеть затронутые файлы, и `claude doctor` для деталей каждой ошибки.204После продолжения запустите `/status`, чтобы увидеть затронутые файлы, и `claude doctor` для деталей каждой ошибки.

205 205 

skills.md +1 −1

Details

22 22 

23Claude Code включает набор встроенных skills, таких как `/doctor`, `/code-review`, `/batch`, `/debug`, `/loop` и `/claude-api`. Встроенные skills основаны на промптах: они дают Claude подробные инструкции и позволяют ему организовать работу, используя его инструменты. Большинство встроенных команд вместо этого выполняют фиксированную логику напрямую.23Claude Code включает набор встроенных skills, таких как `/doctor`, `/code-review`, `/batch`, `/debug`, `/loop` и `/claude-api`. Встроенные skills основаны на промптах: они дают Claude подробные инструкции и позволяют ему организовать работу, используя его инструменты. Большинство встроенных команд вместо этого выполняют фиксированную логику напрямую.

24 24 

25Вы вызываете встроенный skill так же, как любой другой skill, введя `/` и затем имя skill. Claude автоматически вызывает некоторые встроенные skills, когда это уместно; другие, включая `/verify`, запускаются только при вашем вызове, что позволяет вам контролировать, когда эти более длительные проверки тратят время и токены.25Чтобы вызвать встроенный skill, введите `/` и затем имя skill. Claude автоматически вызывает некоторые встроенные skills, когда это уместно; другие, включая [`/verify`](#run-and-verify-your-app), запускаются только при вашем вызове.

26 26 

27Большинство встроенных skills доступны в каждой сессии. Несколько зависят от конкретной функции: `/workflow-authoring`, например, доступен только когда [динамические workflows](https://code.claude.com/docs/ru/workflows.md) включены.27Большинство встроенных skills доступны в каждой сессии. Несколько зависят от конкретной функции: `/workflow-authoring`, например, доступен только когда [динамические workflows](https://code.claude.com/docs/ru/workflows.md) включены.

28 28 

Details

346 346 

347Claude Code хранит содержимое за каждым заполнителем `[Pasted text #N]` в `~/.claude/paste-cache/`, поэтому когда вы вызываете подсказку из [истории команд](https://code.claude.com/docs/ru/interactive-mode.md#command-history) и повторно отправляете её, полное вставленное содержимое отправляется снова, включая в более позднем сеансе.347Claude Code хранит содержимое за каждым заполнителем `[Pasted text #N]` в `~/.claude/paste-cache/`, поэтому когда вы вызываете подсказку из [истории команд](https://code.claude.com/docs/ru/interactive-mode.md#command-history) и повторно отправляете её, полное вставленное содержимое отправляется снова, включая в более позднем сеансе.

348 348 

349Файлы кэша старше [`cleanupPeriodDays`](https://code.claude.com/docs/ru/settings-reference#cleanupperioddays) удаляются в соответствии с [правилами развёртки очистки](https://code.claude.com/docs/ru/claude-directory.md#cleaned-up-automatically), поэтому вызванная подсказка может ссылаться на вставленный текст, который больше не существует. Когда вы отправляете такую подсказку, Claude Code никогда не отправляет буквальную строку `[Pasted text #N]` и показывает уведомление с названием отсутствующей вставки:349Файлы кэша старше [`cleanupPeriodDays`](https://code.claude.com/docs/ru/settings-reference#cleanupperioddays) удаляются в соответствии с [правилами автоматической очистки](https://code.claude.com/docs/ru/claude-directory.md#cleaned-up-automatically), поэтому вызванный промпт может ссылаться на вставленный текст, который больше не существует. Когда вы отправляете такой промпт, Claude Code не отправляет буквальную строку `[Pasted text #N]` и показывает уведомление с названием отсутствующей вставки:

350 350 

351* В простой подсказке с оставшимся текстом Claude Code удаляет заполнитель и отправляет оставшийся текст.351* В простой подсказке с оставшимся текстом Claude Code удаляет заполнитель и отправляет оставшийся текст.

352* В [команде режима shell](https://code.claude.com/docs/ru/interactive-mode.md#shell-mode-with-prefix) или команде `/`, где удаление изменило бы то, что выполняется, и в любой подсказке, где удаление оставляет пусто, Claude Code отменяет отправку и сохраняет исходный текст в вводе с заполнителем, всё ещё находящимся в нём. Удалите заполнитель или отредактируйте команду, затем повторно отправьте.352* В [команде режима shell](https://code.claude.com/docs/ru/interactive-mode.md#shell-mode-with-prefix) или команде `/`, где удаление изменило бы то, что выполняется, и в любой подсказке, где удаление оставляет пусто, Claude Code отменяет отправку и сохраняет исходный текст в вводе с заполнителем, всё ещё находящимся в нём. Удалите заполнитель или отредактируйте команду, затем повторно отправьте.

Details

29| `EACCES: permission denied` во время установки | [Исправьте права доступа к каталогу установки](#permission-errors-during-installation) |29| `EACCES: permission denied` во время установки | [Исправьте права доступа к каталогу установки](#permission-errors-during-installation) |

30| `TLS connect error` или `SSL/TLS secure channel` | [Обновите сертификаты CA](#tls-or-ssl-connection-errors) |30| `TLS connect error` или `SSL/TLS secure channel` | [Обновите сертификаты CA](#tls-or-ssl-connection-errors) |

31| `CRYPT_E_NO_REVOCATION_CHECK` или `CRYPT_E_REVOCATION_OFFLINE` | [Обойдите заблокированные проверки отзыва](#tls-or-ssl-connection-errors) |31| `CRYPT_E_NO_REVOCATION_CHECK` или `CRYPT_E_REVOCATION_OFFLINE` | [Обойдите заблокированные проверки отзыва](#tls-or-ssl-connection-errors) |

32| `Failed to fetch version` или невозможно достичь сервера загрузки | [Проверьте параметры сети и прокси](#check-network-connectivity) |32| `Failed to fetch version` или невозможно достичь сервера загрузки | [Проверьте параметры сети и прокси](#check-network-connectivity), а при ошибке сертификата [настройте корпоративные сертификаты CA](#tls-or-ssl-connection-errors) |

33| `The connection dropped while downloading the update` или `Download timed out: exceeded the total deadline` | [Запустите обновление повторно или настройте прокси](#the-connection-dropped-while-downloading-the-update) |33| `The connection dropped while downloading the update` или `Download timed out: exceeded the total deadline` | [Запустите обновление повторно или настройте прокси](#the-connection-dropped-while-downloading-the-update) |

34| `Release verification failed for Claude Code` | [Запустите `claude update` или `claude install` повторно](#release-verification-failed) |34| `Release verification failed for Claude Code` | [Запустите `claude update` или `claude install` повторно](#release-verification-failed) |

35| `Auto-update failed · Run claude doctor` красным цветом в нижней строке сессии | [Запустите `claude update` из вашей оболочки](#auto-update-failed) |35| `Auto-update failed · Run claude doctor` красным цветом в нижней строке сессии | [Запустите `claude update` из вашей оболочки](#auto-update-failed) |


94* `403`: обычно прокси или сетевой фильтр, блокирующий хост, или Claude Code [недоступен в вашем регионе](https://www.anthropic.com/supported-countries)94* `403`: обычно прокси или сетевой фильтр, блокирующий хост, или Claude Code [недоступен в вашем регионе](https://www.anthropic.com/supported-countries)

95* `5xx`: обычно временная проблема с сервисом; подождите несколько минут и повторите попытку95* `5xx`: обычно временная проблема с сервисом; подождите несколько минут и повторите попытку

96 96 

97Если вы не видите вывода, `Could not resolve host` или таймаут соединения, ваша сеть блокирует соединение. Распространённые причины:97Если вы не видите вывода или установщик показывает `Could not resolve host` или таймаут соединения, значит, соединение не удалось установить. Проверьте следующие причины:

98 98 

99* Корпоративные брандмауэры или прокси, блокирующие `downloads.claude.ai`99* Корпоративные брандмауэры или прокси, блокирующие `downloads.claude.ai`

100* Региональные ограничения сети: попробуйте VPN или альтернативную сеть100* Региональные ограничения сети: попробуйте VPN или альтернативную сеть

101* Проблемы TLS/SSL: обновите сертификаты CA вашей системы или проверьте, настроен ли `HTTPS_PROXY`101* Проблемы TLS/SSL: см. [Ошибки соединения TLS или SSL](#tls-or-ssl-connection-errors)

102 102 

103Если вы находитесь за корпоративным прокси, установите `HTTPS_PROXY` и `HTTP_PROXY` на адрес вашего прокси перед установкой. Попросите URL прокси у вашей IT-команды, если вы его не знаете, или проверьте параметры прокси вашего браузера.103Если вы находитесь за корпоративным прокси, установите `HTTPS_PROXY` и `HTTP_PROXY` на адрес вашего прокси перед установкой. Попросите URL прокси у вашей IT-команды, если вы его не знаете, или проверьте параметры прокси вашего браузера.

104 104 


566 irm https://claude.ai/install.ps1 | iex566 irm https://claude.ai/install.ps1 | iex

567 ```567 ```

568 568 

5693. **Проверьте помехи прокси или брандмауэра**: корпоративные прокси, выполняющие TLS inspection, могут вызвать эти ошибки, включая `unable to get local issuer certificate` и `SELF_SIGNED_CERT_IN_CHAIN`. Для шага установки настройте загрузку установщика так, чтобы она доверяла CA вашего корпоративного прокси:5693. **Проверьте помехи прокси или брандмауэра**: корпоративные прокси, выполняющие TLS inspection, могут вызвать эти ошибки, включая `unable to get local issuer certificate`, `unable to verify the first certificate` и `SELF_SIGNED_CERT_IN_CHAIN`. Настройте загрузку установщика так, чтобы она доверяла CA вашего корпоративного прокси:

570 570 

571 > [tab] macOS/Linux571 > [tab] macOS/Linux

572 >572 >

573 > Задайте `CURL_CA_BUNDLE` для загрузок `curl` в скрипте установки и [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/ru/network-config#custom-ca-certificates) для команды `claude install`, которую скрипт затем запускает. Если у вас нет PEM-файла с корневым сертификатом CA вашего прокси, попросите его у вашей IT-команды. В этом примере обеим переменным задаётся файл CA вашего прокси, а скрипт запускается в том же терминале:

574 >

573 > ```bash theme={null}575 > ```bash theme={null}

574 > curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash576 > export CURL_CA_BUNDLE=/path/to/corporate-ca.pem

577 > export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem

578 > curl -fsSL https://claude.ai/install.sh | bash

575 > ```579 > ```

580 >

581 > Если установка всё ещё завершается одной из этих ошибок сертификатов, попросите у вашей IT-команды файл, содержащий как публичные корневые сертификаты, так и полную цепочку CA вашего прокси. Затем укажите этот файл в обеих переменных.

576 582 

577 > [tab] Windows PowerShell583 > [tab] Windows PowerShell

578 >584 >


596 > $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'602 > $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'

597 > ```603 > ```

598 604 

599 Попросите файл сертификата у вашей IT-команды, если у вас его нет. Вы также можете попробовать на прямом соединении, чтобы подтвердить, что прокси является причиной.

600 

6014. **На Windows обойдите заблокированные проверки отзыва**. Ошибки `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` и `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` означают, что curl достиг сервера, но ваша сеть блокирует поиск отзыва сертификата, что распространено за корпоративными брандмауэрами. Если не удаётся команда `curl`, которая загружает `install.cmd`, запустите её снова из Command Prompt с добавленным `--ssl-revoke-best-effort`:6054. **На Windows обойдите заблокированные проверки отзыва**. Ошибки `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` и `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` означают, что curl достиг сервера, но ваша сеть блокирует поиск отзыва сертификата, что распространено за корпоративными брандмауэрами. Если не удаётся команда `curl`, которая загружает `install.cmd`, запустите её снова из Command Prompt с добавленным `--ssl-revoke-best-effort`:

602 ```batch theme={null}606 ```batch theme={null}

603 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd607 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd


610 614 

611### `Failed to fetch version from downloads.claude.ai`615### `Failed to fetch version from downloads.claude.ai`

612 616 

613Установщик не смог достичь сервера загрузки. Это обычно означает, что `downloads.claude.ai` заблокирован в вашей сети. См. [Проверка подключения к сети](#check-network-connectivity).617Причина указана в конце сообщения. Если это ошибка сертификата, например `unable to verify the first certificate`, см. [Ошибки подключения TLS или SSL](#tls-or-ssl-connection-errors). При любой другой причине см. [Проверка подключения к сети](#check-network-connectivity).

614 618 

615### The connection dropped while downloading the update619### The connection dropped while downloading the update

616 620 

workflows.md +10 −4

Details

375 375 

376 До v2.1.305 завершённые агенты также могли выполняться снова, когда вы перезапускали неизменённый скрипт, в котором элементы `pipeline()` или задачи `parallel()` запускали более одного агента каждый. Чтобы прекратить такие повторные выполнения для новых запусков, обновите Claude Code.376 До v2.1.305 завершённые агенты также могли выполняться снова, когда вы перезапускали неизменённый скрипт, в котором элементы `pipeline()` или задачи `parallel()` запускали более одного агента каждый. Чтобы прекратить такие повторные выполнения для новых запусков, обновите Claude Code.

377* **Ещё выполнявшийся на момент остановки**: начинает заново. Остановка всего запуска не засчитывает ни одного агента как завершившегося с ошибкой.377* **Ещё выполнявшийся на момент остановки**: начинает заново. Остановка всего запуска не засчитывает ни одного агента как завершившегося с ошибкой.

378* **[Завершившийся с ошибкой из-за лимита использования](#when-a-run-hits-your-usage-limit) в v2.1.318 или новее**: выполняется снова, а завершённые агенты возвращают свои сохранённые результаты. Если после ошибки ваш скрипт вызвал другого агента и тот вернул результат, каждый агент, которого скрипт запускает после завершившегося с ошибкой, также выполняется снова.

378* **Завершившийся с ошибкой**: выполняется снова, как и каждый агент, которого скрипт запускает после него, даже завершённые. Остановка отдельного агента, когда вы выбираете его в [`/workflows`](#watch-the-run) и нажимаете `x`, считается ошибкой.379* **Завершившийся с ошибкой**: выполняется снова, как и каждый агент, которого скрипт запускает после него, даже завершённые. Остановка отдельного агента, когда вы выбираете его в [`/workflows`](#watch-the-run) и нажимаете `x`, считается ошибкой.

379 380 

380Последний случай означает, что ошибка посреди параллельного ветвления приводит к повторному выполнению уже завершённой работы. Если скрипт запускает A, B, C и D в таком порядке и B завершается с ошибкой, перезапуск возвращает A из кэша и снова выполняет B, C и D.381Последний случай означает, что агент в состоянии **Завершившийся с ошибкой** посреди параллельного ветвления приводит к повторному выполнению уже завершённой работы. Если скрипт запускает A, B, C и D в таком порядке и B находится в состоянии **Завершившийся с ошибкой**, перезапуск возвращает A из кэша и снова выполняет B, C и D.

381 382 

382Если вы отредактируете скрипт, запускавший A, B, C и D, так, что он запускает A, C, B и D, то вторым стартующим агентом теперь будет C, тогда как в предыдущем запуске стартовал B. Перезапуск возвращает A из кэша и снова выполняет C, B и D.383Если вы отредактируете скрипт, запускавший A, B, C и D, так, что он запускает A, C, B и D, то вторым стартующим агентом теперь будет C, тогда как в предыдущем запуске стартовал B. Перезапуск возвращает A из кэша и снова выполняет C, B и D.

383 384 


395 396 

396### Когда запуск достигает лимита использования397### Когда запуск достигает лимита использования

397 398 

398Когда агент достигает вашего [лимита использования](https://code.claude.com/docs/ru/interactive-mode.md#wait-for-a-usage-limit-to-reset) claude.ai, запуск приостанавливается, а не завершает этого агента с ошибкой: агенты, достигшие лимита, ждут сброса, и новые агенты не запускаются. Вскоре после сброса лимита ожидающие агенты выполняются снова, и запуск продолжается сам по себе. Требуется Claude Code v2.1.271 или новее; в более ранних версиях затронутые агенты завершаются с ошибкой.399Когда агент достигает вашего [лимита использования](https://code.claude.com/docs/ru/interactive-mode.md#wait-for-a-usage-limit-to-reset) claude.ai, запуск приостанавливается, а не завершает этого агента с ошибкой. Агенты, достигшие лимита, ждут сброса, и новые агенты не запускаются. Вскоре после сброса лимита ожидающие агенты выполняются снова, и запуск продолжается сам по себе. Требуется Claude Code v2.1.271 или новее либо [v2.1.319 или новее](https://code.claude.com/docs/ru/desktop.md#claude-code-version-in-the-code-tab) на [вкладке Code](https://code.claude.com/docs/ru/desktop.md) в Desktop. В более ранних версиях затронутые агенты завершаются с ошибкой.

399 400 

400Пока запуск ожидает, строка его прогресса в панели задач и заголовок [`/workflows`](#watch-the-run) показывают, когда лимит будет сброшен.401Пока запуск ожидает, строка его прогресса в панели задач и заголовок [`/workflows`](#watch-the-run) показывают, когда лимит будет сброшен. На вкладке Code запуск показывает строку вида `Paused at usage limit · continues after 3:45 PM if the app stays open`. Не закрывайте приложение.

401 402 

402Запуск приостанавливается, только если выполняются все следующие условия; если какое-либо из них не выполняется, затронутый агент вместо этого завершается с ошибкой:403Запуск приостанавливается, только если выполняются все следующие условия; если какое-либо из них не выполняется, затронутый агент вместо этого завершается с ошибкой:

403 404 

404* Сессия интерактивная, и вход выполнен с подпиской claude.ai. Запуск не приостанавливается в [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с `claude -p` или в [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md), в [фоновой сессии](https://code.claude.com/docs/ru/agent-view.md), а также в сессии [Remote Control](https://code.claude.com/docs/ru/remote-control.md) или в сессии участника [команды агентов](https://code.claude.com/docs/ru/agent-teams.md).405* Вход в сессию выполнен с подпиской claude.ai без [оплаты по фактическому использованию](https://code.claude.com/docs/ru/interactive-mode.md#start-a-wait-yourself), и сессия относится к одному из следующих типов:

406 * Интерактивная сессия в терминале. Запуск не приостанавливается в [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с `claude -p` или в [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md), в [фоновой сессии](https://code.claude.com/docs/ru/agent-view.md), а также в сессии [Remote Control](https://code.claude.com/docs/ru/remote-control.md) или в сессии участника [команды агентов](https://code.claude.com/docs/ru/agent-teams.md).

407 * Локальная сессия, которую вы начали на вкладке Code. Запуск не приостанавливается в сессии SSH, WSL, [Dispatch](https://code.claude.com/docs/ru/desktop.md#sessions-from-dispatch) или [запланированной задачи](https://code.claude.com/docs/ru/desktop-scheduled-tasks.md), в сессии, начатой из Remote Control или через [корпоративный лаунчер](https://code.claude.com/docs/ru/corporate-launcher.md), а также если задана [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](https://code.claude.com/docs/ru/env-vars#variables).

405* Включена настройка [`autoContinueAtUsageLimit`](https://code.claude.com/docs/ru/settings-reference#autocontinueatusagelimit) — та же настройка, которая позволяет самой сессии [ждать сброса лимита использования](https://code.claude.com/docs/ru/interactive-mode.md#wait-for-a-usage-limit-to-reset). Если вы отключите её во время ожидания, ожидание прекращается, и ожидающие агенты завершаются с ошибкой.408* Включена настройка [`autoContinueAtUsageLimit`](https://code.claude.com/docs/ru/settings-reference#autocontinueatusagelimit) — та же настройка, которая позволяет самой сессии [ждать сброса лимита использования](https://code.claude.com/docs/ru/interactive-mode.md#wait-for-a-usage-limit-to-reset). Если вы отключите её во время ожидания, ожидание прекращается, и ожидающие агенты завершаются с ошибкой.

409* На вкладке Code флажок **Auto-continue when limits reset** на [карточке лимита сессии](https://code.claude.com/docs/ru/errors.md#youve-hit-your-session-limit) установлен, как и по умолчанию. Если вы снимете его, запуски в ваших сессиях на вкладке Code перестанут приостанавливаться, если только управляемые настройки не задают для `autoContinueAtUsageLimit` значение `true`.

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

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

408 412 

413Чтобы завершить запуск, агенты которого завершились с ошибкой из-за лимита, попросите Claude [перезапустить рабочий процесс](#which-agents-run-again) после сброса лимита.

414 

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

410 416 

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

worktrees.md +1 −1

Details

253 253 

254Worktree получает собственные файлы и ветку, но делит следующее с основной копией:254Worktree получает собственные файлы и ветку, но делит следующее с основной копией:

255 255 

256* **Каталог `.git` репозитория**: команды git в worktree записывают в общий каталог `.git` основного репозитория, и [sandboxing](https://code.claude.com/docs/ru/sandboxing.md#filesystem-isolation) позволяет эти записи, поэтому команды, такие как `git commit`, работают из worktree с включённой песочницей.256* **Каталог `.git` репозитория**: команды git в worktree записывают в общий каталог `.git` основного репозитория. При включённой [песочнице](https://code.claude.com/docs/ru/sandboxing.md#filesystem-isolation) команды, такие как `git commit`, работают в сессии, запущенной в корне worktree, — именно там её запускает `--worktree`. По умолчанию они [завершаются с ошибкой `index.lock`, если вы запускаете `claude` в подкаталоге worktree](https://code.claude.com/docs/ru/sandboxing#git-index-lock).

257* **Плагины**: плагины, установленные на [уровне проекта](https://code.claude.com/docs/ru/plugins/loading.md#find-where-a-plugin-is-enabled) из основной копии, также загружаются в worktrees того же репозитория, поэтому вам не нужно переустанавливать их для каждого worktree.257* **Плагины**: плагины, установленные на [уровне проекта](https://code.claude.com/docs/ru/plugins/loading.md#find-where-a-plugin-is-enabled) из основной копии, также загружаются в worktrees того же репозитория, поэтому вам не нужно переустанавливать их для каждого worktree.

258* **Подтверждения разрешений**: выбор "Yes, and don't ask again" для команды Bash в сессии worktree сохраняет правило в `.claude/settings.local.json` основной копии. Правило применяется в основной копии и в каждом другом worktree репозитория и сохраняется после удаления worktree.258* **Подтверждения разрешений**: выбор "Yes, and don't ask again" для команды Bash в сессии worktree сохраняет правило в `.claude/settings.local.json` основной копии. Правило применяется в основной копии и в каждом другом worktree репозитория и сохраняется после удаления worktree.

259 259 

Details

41 41 

42### Что не охватывает ZDR42### Что не охватывает ZDR

43 43 

44ZDR не распространяется на следующее, даже для организаций с включенным ZDR. Эти функции следуют [стандартным политикам хранения данных](https://code.claude.com/docs/ru/data-usage.md#data-retention):44ZDR не распространяется на следующее, даже для организаций с включенным ZDR. Если в строке не указано иное, эти функции следуют [стандартным политикам хранения данных](https://code.claude.com/docs/ru/data-usage.md#data-retention):

45 45 

46| Функция | Детали |46| Функция | Детали |

47| - | - |47| - | - |

48| Chat на claude.ai | Чат-беседы через веб-интерфейс Claude for Enterprise не охватываются ZDR. |48| Chat на claude.ai | Чат-беседы через веб-интерфейс Claude for Enterprise не охватываются ZDR. |

49| Cowork | Сеансы Cowork не охватываются ZDR. |49| Cowork | Сеансы Cowork не охватываются ZDR. |

50| Артефакты | Артефакты в диалогах чата и сессиях Cowork не охватываются ZDR и хранятся до удаления, если только ваша организация не установила для них срок хранения. Артефакты недоступны в Claude Code с ZDR. |

50| Claude Code Analytics | Не сохраняет запросы или ответы модели, но собирает метаданные производительности, такие как адреса электронной почты аккаунтов и статистику использования. Метрики вклада недоступны для организаций ZDR; [панель управления аналитикой](https://code.claude.com/docs/ru/analytics.md) показывает только метрики использования. |51| Claude Code Analytics | Не сохраняет запросы или ответы модели, но собирает метаданные производительности, такие как адреса электронной почты аккаунтов и статистику использования. Метрики вклада недоступны для организаций ZDR; [панель управления аналитикой](https://code.claude.com/docs/ru/analytics.md) показывает только метрики использования. |

51| Управление пользователями и местами | Административные данные, такие как адреса электронной почты аккаунтов и назначения мест, сохраняются в соответствии со стандартными политиками. |52| Управление пользователями и местами | Административные данные, такие как адреса электронной почты аккаунтов и назначения мест, сохраняются в соответствии со стандартными политиками. |

52| Интеграции третьих сторон | Данные, обработанные инструментами третьих сторон, MCP servers или другими внешними интеграциями, не охватываются ZDR. Независимо проверьте практики обработки данных этих сервисов. |53| Интеграции третьих сторон | Данные, обработанные инструментами третьих сторон, MCP servers или другими внешними интеграциями, не охватываются ZDR. Независимо проверьте практики обработки данных этих сервисов. |


60| [Cloud sessions](https://code.claude.com/docs/ru/claude-code-on-the-web.md), включая те, которые запущены из [приложения Desktop](https://code.claude.com/docs/ru/desktop.md#cloud-sessions) | Требует серверного хранилища данных сеанса, включая историю беседы с запросами и завершениями. |61| [Cloud sessions](https://code.claude.com/docs/ru/claude-code-on-the-web.md), включая те, которые запущены из [приложения Desktop](https://code.claude.com/docs/ru/desktop.md#cloud-sessions) | Требует серверного хранилища данных сеанса, включая историю беседы с запросами и завершениями. |

61| [Единый интерфейс Chat и Cowork](https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization) | Требует облачных сессий. |62| [Единый интерфейс Chat и Cowork](https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization) | Требует облачных сессий. |

62| [Claude Tag](https://claude.com/docs/claude-tag) | Сохраняет память канала и стенограммы сеансов. |63| [Claude Tag](https://claude.com/docs/claude-tag) | Сохраняет память канала и стенограммы сеансов. |

63| [Артефакты](https://code.claude.com/docs/ru/artifacts.md) | Требует сохранения опубликованного содержимого страницы на инфраструктуре, управляемой Anthropic. |64| [Артефакты](https://code.claude.com/docs/ru/artifacts.md) в Claude Code | Требует сохранения опубликованного содержимого страницы на инфраструктуре, управляемой Anthropic. |

65| [Claude Docs](https://support.claude.com/en/articles/16923645-get-started-with-claude-docs) | Требует сохранения содержимого документов на инфраструктуре, управляемой Anthropic. |

64| Отправка отзыва (`/feedback`, `/bug`, `/share`) | Отправка отзыва отправляет данные беседы в Anthropic. |66| Отправка отзыва (`/feedback`, `/bug`, `/share`) | Отправка отзыва отправляет данные беседы в Anthropic. |

65| [Remote Control](https://code.claude.com/docs/ru/remote-control.md) | Сохраняет стенограмму сеанса на серверах Anthropic для синхронизации беседы между устройствами. |67| [Remote Control](https://code.claude.com/docs/ru/remote-control.md) | Сохраняет стенограмму сеанса на серверах Anthropic для синхронизации беседы между устройствами. |

66 68